Porém, IAs são programas que estão em constante desenvolvimento e, assim como uma criança, eles aprendem e precisam ter seus conhecimentos avaliados. Dessa forma, a Qualcomm preparou uma apresentação, o Benchmark AI Workshop, para mostrar quais parâmetros um programa de benchmark deve utilizar para avaliar uma IA e como os programas mais populares realizam esse procedimento.
A avaliação dos programas de benchmark de IA
Normalmente IAs são capazes de realizar TOPS (Tera Operations Per Second, Tera Operações por Segundo, em inglês). Isso quer dizer que o programa pode fazer milhões de cálculos em apenas um segundo, e essa é uma importante medida que um benchmark precisa avaliar. Porém, nem todos os TOPS de IAs são iguais. É preciso levar em conta que tal medida pode ser informada de forma arbitrária (sem nenhum respaldo de avaliação científica), não ser a medida real (dados manipulados pelas empresas), ou não passar de um vaporware (um software anunciado por um desenvolvedor com características únicas mas que nunca é, de fato, lançado). Dessa forma, é essencial que o programa de benchmark utilize como entrada de testes um modelo de informações público e bem conhecido (como o “Inception v3” ou outros) e que será capaz de medir a performance de uma forma igualitária e justa para qualquer IA. No entanto, mesmo essa alternativa possui algumas desvantagens, como a incapacidade de indicar a melhor performance que o hardware pode atingir; o fato de alguns modelos serem irrelevantes para casos de uso comerciais; e a dificuldade de utilizar esse método para comparar IAs de diferentes desenvolvedores. Isso impõe uma série de desafios para a criação e desenvolvimento de um programa de benchmark de IA para fins comerciais. Tais programas costumam utilizar redes legadas (modelos consolidados, mas antigos) ao invés de “estado-da-arte” (modelos atualizados). Além disso, novos hardwares e IAs estão surgindo e os programas de benchmark não acompanham essa evolução dinâmica, muitas vezes não tendo os requisitos necessários para avaliar a IA de uma forma satisfatória. A Qualcomm lista três categorias de fatores principais (tipo de dado, framework de execução e peso do score) que um programa de benchmark precisa levar em conta:
Inteiros vs. Ponto flutuante: Inteiros são tipos de dados numéricos que estão na faixa de 0 a 65535, enquanto números em ponto flutuante estão na faixa de 3,4 x 10^(-38) a 3,4 x 10^(38) (são números com quase quarenta dígitos). Por causa dessa enorme diferença nos tipos de dados, a performance e poder de um programa de benchmark de IA pode ser afetado.SDK do vendedor vs. Neural Networks API: Muitas vezes os sistemas operacionais de smartphones e outros dispositivos inteligentes baseados em Android utilizam a SDK do próprio vendedor para realizar as tarefas que necessitam do uso da Inteligência Artificial. Isso cria uma diferença muito grande entre os tipos de análises efetuadas por um programa de benchmark de IA, uma vez que padronizar com o uso do API de Redes Neurais do Android resolveria esse problema.Diferenças significativas no score: a pontuação final de uma IA ao ser analisada por um programa de benchmark pode ser altamente influenciada pelo caso de teste utilizado ou uma categoria específica de dados. A utilização de um conjunto de testes padronizado evitaria tais diferenças tão grandes no score quando se observa o desempenho de uma mesma IA em diferentes programas de benchmark.
Em relação aos problemas de score, a Qualcomm sugere fortemente que programas de benchmark devem ser verificados se estão praticando uma pontuação ponderada justa que reflete usos no mundo real. Exemplos de casos de uso são entre redes de computadores, comparar dados inteiros com dados em ponto flutuante, núcleos de CPU/GPU, etc. Além disso, a composição dessa pontuação precisa ser transparente (de interpretação clara) e utilizar os tipos de redes e casos de teste mais atuais (sem diferenças significativas para os chipsets ou redes e casos de teste obsoletos). O melhor exemplo que podemos utilizar para contextualizar o problema das diferenças na pontuação seria se realizássemos um teste envolvendo dois conjunto de dados: maçãs e laranjas. Como se tratam de duas frutas diferentes, não é possível comparar esses dois conjuntos entre si e, qualquer análise, não iria representar a realidade.
Programas exibidos no Benchmark AI Workshop da Qualcomm
Durante o workshop, a Qualcomm focou em dois dos programas mais utilizados por empresas e desenvolvedores para avaliar a performance da IA presente em seus processadores: o AImark e AItutu (atualmente bloqueado na Play Store). A seguir vamos conhecer esses programas mais a fundo e entender suas principais características e diferenças.
AImark
O programa desenvolvido pela Ludashi Holdigns Software Company utiliza uma série de modelos para IAs e casos de teste. Para classificação de dados ele utiliza os modelos InceptionV3 e Resnet34, para detecção de objetos, o MobilenetV1_SSD e para segmentação de dados o DeeplabV3. Ao utilizar modelos comuns de teste que a maioria dos vendedores de chipsets utilizam para a aceleração de seus processadores, o AImark garante uma avaliação com o mínimo possível de viéses em sua pontuação. Além disso o AImark permite que, ao utilizar o Qualcomm Neural Processing SDK é possível usar de forma concorrente o Qualcomm Hexagon Vector eXtensions junto do Hexagon Tensor Accelerator para exibir toda a capacidade de performance das tecnologias de IA da Qualcomm.
AItutu
O AItutu, desenvolvido pela Antutu, é outro programa popular que realiza o benchmark de IAs e é especializado em casos de teste que envolvem classificação e detecção de objetos. Sendo assim, o programa possui apenas dois modelos de teste: o InceptionV3 (classificação) e o MobilenetV2_SSD (detecção de objetos). Além de permitir a execução simultânea do Qualcomm Hexagon Vector eXtensions junto do Hexagon Tensor Accelerator, o AItutu ainda inclui uma ferramenta que permite organizar os scores das IAs em termos de precisão (o quanto a IA foi capaz de acertar nos testes).
Desempenho da IA nos processadores da Qualcomm
Ao realizar testes utilizando um mesmo SDK (pacote de ferramentas) como referência, tanto no AImark quanto no AItutu, os processadores Snapdragon 865 e 765 da Qualcomm obtiveram uma performance excelente, se destacando pelo seu desempenho acima da média quando comparados com outros chipsets.
Como escolher o melhor programa de benchmark para IAs?
Infelizmente a resposta para essa pergunta é: depende. Não existe uma solução perfeita para comparar hardware baseado em IA, mas alguns programas de benchmark podem representar com maior exatidão a performance verdadeira do que outros. É preciso levar em conta os modelos utilizados, casos de teste e se não existe uma diferenciação muito significativa ocorrendo na pontuação final da IA. Porém, certamente entre as sugestões de uso da Qualcomm podemos recomendar com segurança o uso do IAmark e o IAtutu.