Avançando a IA com Modelos Específicos de Hardware para VPU
Explorando os benefícios da Busca por Arquitetura Neural para o VPU Movidius da Intel.
― 6 min ler
Índice
A Busca por Arquitetura Neural (NAS) é um jeito de criar modelos de IA automaticamente. Ela ajuda a fazer modelos que funcionam melhor em hardwares específicos, tipo o VPU da Intel, que é uma unidade de processamento de visão. Essa tecnologia tem a intenção de melhorar tanto a qualidade dos modelos quanto a velocidade deles nas previsões.
Métodos tradicionais normalmente criam modelos de IA gerais que podem não ser otimizados para hardwares específicos. Isso pode resultar em desempenho mais lento ou menor precisão. Com o uso do NAS, a gente consegue fazer modelos que funcionam melhor e mais rápido no VPU.
A Necessidade de Modelos Específicos para Hardware
A maioria dos modelos de IA é criada sem levar em conta o hardware específico que vão rodar. Modelos gerais podem não aproveitar totalmente as capacidades de dispositivos como o VPU da Movidius. Isso abre uma chance de desenhar modelos que conseguem processar dados mais rápido ou oferecer maior precisão sem perder desempenho.
Porém, o espaço de designs de rede possíveis é enorme e complexo, tornando a criação manual desafiadora, até mesmo para os experts.
Usando a Busca por Arquitetura Neural com VPU
Nessa abordagem, o NAS é adaptado para focar no VPU da Movidius. Pra isso, é importante medir quanto tempo o modelo leva pra rodar no hardware. Esse atraso, chamado de latência, é incluído no processo de design. A gente introduz duas maneiras de medir a latência:
- Custo de hardware pré-coletado no dispositivo: Isso envolve usar dados coletados de medições anteriores no VPU.
- Modelo de custo de hardware específico do dispositivo (VPUNN): Esse é um modelo que estima custos com base em parâmetros de hardware específicos.
Aproveitando o NAS, dá pra melhorar o desempenho das tarefas no VPU. Por exemplo, em tarefas de classificação, temos um aumento de velocidade de 1,3 vezes comparado ao Mobilenet-v2-1.4 e 2,2 vezes mais rápido que o Resnet50, mantendo a mesma precisão. Em tarefas de super resolução, conseguimos uma melhoria de 1,08 vezes na qualidade da imagem e um aumento de 6 vezes na velocidade comparado a um modelo existente.
Busca por Arquitetura Neural Consciente do Hardware
Pra otimizar diretamente pro VPU, o processo incorpora latência nos critérios de design. Isso significa que os designs escolhidos focam tanto em velocidade quanto em precisão.
ProxylessNAS é um método usado aqui pra criar modelos sem depender de etapas intermediárias. Ele permite um conjunto mais amplo de escolhas de design, garantindo que os modelos resultantes sejam adequados pro hardware alvo. O método já mostrou sucesso em outras plataformas e agora tá sendo ampliado pro VPU.
Profiling de Latência
Medir quanto tempo cada componente de um modelo leva pra rodar no hardware é crucial. As informações ajudam a garantir que os modelos escolhidos não só funcionem bem na teoria, mas também no hardware de verdade.
Medição Precisa
Pra avaliar a latência, a forma mais simples é rodar um modelo com apenas um operador e medir quanto tempo leva. Porém, esse método pode trazer resultados inconsistentes por conta de outros fatores que influenciam o tempo de início. Pra contornar isso, uma técnica de empilhar múltiplos operadores é usada quando eles têm a mesma entrada e saída. Essa abordagem minimiza variações e fornece uma medição de latência mais estável.
Usando VPUNN pra Estimativa
Outra forma de medir latência é usando o VPUNN, um modelo baseado em rede neural. Ele pega informações relevantes sobre as tarefas de uma rede e prevê quanto tempo elas vão demorar pra executar. Esse modelo tem mostrado um bom desempenho comparado aos métodos de medição tradicionais.
Implementando ProxylessNAS
Combinando ProxylessNAS com os métodos de profiling de latência, dá pra procurar redes eficazes adaptadas pra tarefas como classificação de imagens e super resolução. Os modelos gerados através desse processo podem ser convertidos em formatos adequados pro VPU, levando a um desempenho mais rápido e preciso.
Resultados de Classificação de Imagens
Em tarefas de classificação, a gente usa ProxylessNAS junto com o método de profiling de hardware. O foco é construir uma rede baseada em um bloco de construção eficiente conhecido como MBConv do Mobilenet-v2.
Quando testadas no VPU da Movidius, essas redes alcançaram melhorias significativas em relação aos modelos existentes. Os resultados mostraram uma melhoria de velocidade de 1,3 vezes em comparação com modelos estabelecidos, mantendo níveis de precisão comparáveis.
Resultados de Super Resolução
Pra tarefas de super resolução, o ProxylessNAS foi aplicado junto com o VPUNN pra identificar os melhores modelos. Esses modelos evitaram usar métodos que são mais lentos no VPU, como certas funções de ativação e técnicas de upsampling. Os resultados mostraram um aumento notável de 6 vezes na velocidade no VPU mais recente.
Insights pra Criar Redes Amigáveis com o VPU
Depois de analisar os resultados, alguns insights chave surgem pra criar modelos que funcionem bem no VPU:
- Evitar operações que diminuem o desempenho, como funções de ativação complexas ou certos métodos de upsampling.
- Buscar um tamanho de canal de saída que seja múltiplo de 16, já que isso ajuda a otimizar os cálculos no VPU.
- Usar convoluções separáveis por profundidade sempre que possível, já que elas podem alcançar desempenho similar com menos tempo de computação.
Trabalho Futuro
Embora os métodos apresentados nessa abordagem sejam eficazes, ainda existem desafios, especialmente com designs de rede mais complexos. O trabalho futuro vai focar em enfrentar as limitações dos métodos existentes, especialmente em relação ao modo como diferentes camadas interagem e como as tarefas são agendadas.
Trabalhando em ferramentas e métodos mais eficientes pra compilar e simular redes, breakthroughs adicionais na otimização de modelos de IA pra hardwares como o VPU podem ser alcançados.
Conclusão
Essa investigação mostra a importância de criar modelos conscientes do hardware que possam oferecer tanto velocidade quanto precisão. Aplicando métodos como ProxylessNAS e desenvolvendo ferramentas eficazes de profiling de latência, os modelos de IA podem ser ajustados pra aproveitar ao máximo as capacidades oferecidas por dispositivos como o VPU da Intel. O progresso feito aqui abre novas possibilidades pra desenhar soluções de IA eficientes que atendam às demandas de várias aplicações em visão computacional e inteligência artificial.
Título: Neural Architecture Search for Intel Movidius VPU
Resumo: Hardware-aware Neural Architecture Search (NAS) technologies have been proposed to automate and speed up model design to meet both quality and inference efficiency requirements on a given hardware. Prior arts have shown the capability of NAS on hardware specific network design. In this whitepaper, we further extend the use of NAS to Intel Movidius VPU (Vision Processor Units). To determine the hardware-cost to be incorporated into the NAS process, we introduced two methods: pre-collected hardware-cost on device and device-specific hardware-cost model VPUNN. With the help of NAS, for classification task on VPU, we can achieve 1.3x fps acceleration over Mobilenet-v2-1.4 and 2.2x acceleration over Resnet50 with the same accuracy score. For super resolution task on VPU, we can achieve 1.08x PSNR and 6x higher fps compared with EDSR3.
Autores: Qian Xu, Victor Li, Crews Darren S
Última atualização: 2023-05-04 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2305.03739
Fonte PDF: https://arxiv.org/pdf/2305.03739
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.
Ligações de referência
- https://doi.org/10.48550/arxiv.2101.09336
- https://doi.org/10.48550/arxiv.1910.11609
- https://doi.org/10.48550/arxiv.2103.10584
- https://doi.org/10.48550/arxiv.2205.04586
- https://doi.org/10.48550/arxiv.1704.04861
- https://doi.org/10.48550/arxiv.1512.03385
- https://doi.org/10.48550/arxiv.1707.02921
- https://doi.org/10.48550/arxiv.1812.00332