Entre em contato

EfficientViT: transformador de visão com eficiência de memória para visão computacional de alta resolução

Inteligência artificial

EfficientViT: transformador de visão com eficiência de memória para visão computacional de alta resolução

mm

Devido à sua alta capacidade de modelo, os modelos Vision Transformer têm desfrutado de grande sucesso nos últimos tempos. Apesar de seu desempenho, os modelos de transformadores de visão têm uma falha importante: sua notável capacidade computacional acarreta altos custos computacionais e é a razão pela qual os transformadores de visão não são a primeira escolha para aplicações em tempo real. Para resolver esse problema, um grupo de desenvolvedores lançou o EfficientViT, uma família de transformadores de visão de alta velocidade. 

Ao trabalhar no EfficientViT, os desenvolvedores observaram que a velocidade dos modelos de transformadores atuais é frequentemente limitada por operações de memória ineficientes, especialmente funções elemento a elemento e remodelagem de tensor em MHSA ou rede Multi-Head Self Attention. Para lidar com essas operações de memória ineficientes, os desenvolvedores do EfficientViT trabalharam em um novo bloco de construção usando um layout sanduíche, ou seja, o modelo EfficientViT faz uso de uma única rede de autoatenção multi-cabeça vinculada à memória entre camadas FFN eficientes que ajudam a melhorar a eficiência da memória e também melhorando a comunicação geral do canal. Além disso, o modelo também descobre que os mapas de atenção muitas vezes têm grandes semelhanças entre cabeças, o que leva à redundância computacional. Para resolver o problema de redundância, o modelo EfficientViT apresenta um módulo de atenção de grupo em cascata que alimenta os chefes de atenção com diferentes divisões do recurso completo. O método não só ajuda a economizar custos computacionais, mas também melhora a diversidade de atenção do modelo. 

Experimentos abrangentes realizados no modelo EfficientViT em diferentes cenários indicam que o EfficientViT supera os modelos eficientes existentes para visão computacional ao mesmo tempo que consegue um bom compromisso entre precisão e velocidade. Então, vamos nos aprofundar e explorar o modelo EfficientViT com um pouco mais de profundidade. 

Uma introdução aos transformadores de visão e ao EfficientViT

Os Vision Transformers continuam sendo uma das estruturas mais populares na indústria de visão computacional porque oferecem desempenho superior e altos recursos computacionais. No entanto, com a melhoria constante da precisão e do desempenho dos modelos de transformadores de visão, os custos operacionais e a sobrecarga computacional também aumentam. Por exemplo, os modelos atuais conhecidos por fornecer desempenho de última geração em conjuntos de dados ImageNet como SwinV2 e V-MoE usam parâmetros 3B e 14.7B, respectivamente. O tamanho desses modelos, juntamente com os custos e requisitos computacionais, tornam-nos praticamente inadequados para dispositivos e aplicações em tempo real. 

O modelo EfficientNet visa explorar como aumentar o desempenho de modelos de transformadores de visãoe encontrar os princípios envolvidos no projeto de arquiteturas de estrutura baseadas em transformadores eficientes e eficazes. O modelo EfficientViT é baseado em estruturas de transformadores de visão existentes, como Swim e DeiT, e analisa três fatores essenciais que afetam as velocidades de interferência dos modelos, incluindo redundância computacional, acesso à memória e uso de parâmetros. Além disso, o modelo observa que os modelos de transformadores de velocidade de visão estão vinculados à memória, o que significa que a utilização total do poder de computação em CPUs/GPUs é proibida ou restringida pelo atraso de acesso à memória, o que resulta em impacto negativo na velocidade de tempo de execução dos transformadores . Funções elementares e remodelagem de tensor na rede MHSA ou Multi-Head Self Attention são as operações mais ineficientes em termos de memória. O modelo observa ainda que o ajuste ideal da relação entre FFN (rede feed forward) e MHSA pode ajudar a reduzir significativamente o tempo de acesso à memória sem afetar o desempenho. No entanto, o modelo também observa alguma redundância nos mapas de atenção como resultado da tendência da cabeça de atenção em aprender projeções lineares semelhantes. 

O modelo é um cultivo final dos resultados durante o trabalho de pesquisa do EfficientViT. O modelo apresenta um novo preto com um layout sanduíche que aplica uma única camada MHSA vinculada à memória entre as camadas Feed Forward Network ou FFN. A abordagem não apenas reduz o tempo necessário para executar operações vinculadas à memória no MHSA, mas também torna todo o processo mais eficiente em termos de memória, permitindo mais camadas FFN para facilitar a comunicação entre diferentes canais. O modelo também faz uso de um novo módulo CGA ou Cascaded Group Attention que visa tornar os cálculos mais eficazes, reduzindo a redundância computacional não apenas nas cabeças de atenção, mas também aumentando a profundidade da rede resultando em elevada capacidade do modelo. Finalmente, o modelo expande a largura do canal dos componentes essenciais da rede, incluindo projeções de valor, enquanto reduz os componentes da rede com baixo valor, como dimensões ocultas nas redes feed forward para redistribuir os parâmetros na estrutura. 

Como pode ser visto na imagem acima, a estrutura EfficientViT tem um desempenho melhor do que os modelos CNN e ViT de última geração em termos de precisão e velocidade. Mas como a estrutura EfficientViT conseguiu superar algumas das estruturas atuais de última geração? Vamos descobrir isso. 

EfficientViT: Melhorando a eficiência dos transformadores de visão

O modelo EfficientViT visa melhorar a eficiência dos modelos existentes de transformadores de visão usando três perspectivas,

  1. Redundância Computacional. 
  2. Acesso à memória. 
  3. Uso de parâmetros. 

O modelo visa descobrir como os parâmetros acima afetam a eficiência dos modelos de transformadores de visão e como resolvê-los para obter melhores resultados com melhor eficiência. Vamos falar sobre eles com um pouco mais de profundidade. 

Acesso e eficiência à memória

Um dos fatores essenciais que afetam a velocidade de um modelo é a sobrecarga de acesso à memória ou MAO. Como pode ser visto na imagem abaixo, vários operadores no transformador, incluindo adição elemento a elemento, normalização e remodelagem frequente, são operações ineficientes de memória, porque requerem acesso a diferentes unidades de memória, o que é um processo demorado. 

Embora existam alguns métodos que possam simplificar os cálculos padrão de autoatenção softmax, como aproximação de baixa classificação e atenção esparsa, eles geralmente oferecem aceleração limitada e degradam a precisão. 

Por outro lado, a estrutura EfficientViT visa reduzir o custo de acesso à memória, reduzindo a quantidade de camadas ineficientes de memória na estrutura. O modelo reduz o DeiT-T e o Swin-T para pequenas sub-redes com uma taxa de transferência de interferência mais alta de 1.25X e 1.5X e compara o desempenho dessas sub-redes com proporções das camadas MHSA. Como pode ser visto na imagem abaixo, quando implementada, a abordagem aumenta a precisão das camadas MHSA em cerca de 20 a 40%. 

Eficiência computacional

As camadas MHSA tendem a incorporar a sequência de entrada em vários subespaços ou cabeças e calculam os mapas de atenção individualmente, uma abordagem que é conhecida por aumentar o desempenho. No entanto, os mapas de atenção não são computacionalmente baratos e, para explorar os custos computacionais, o modelo EfficientViT explora como reduzir a atenção redundante em modelos ViT menores. O modelo mede a similaridade máxima de cosseno de cada cabeça e das cabeças restantes dentro de cada bloco, treinando os modelos DeiT-T e Swim-T com largura reduzida com aceleração de inferência de 1.25×. Como pode ser observado na imagem abaixo, há um grande número de semelhanças entre os cabeçotes de atenção, o que sugere que o modelo incorre em redundância computacional porque vários cabeçotes tendem a aprender projeções semelhantes do recurso completo exato. 

Para encorajar as cabeças a aprenderem diferentes padrões, o modelo aplica explicitamente uma solução intuitiva em que cada cabeça é alimentada apenas com uma parte da característica completa, uma técnica que se assemelha à ideia de convolução de grupo. O modelo treina diferentes aspectos dos modelos reduzidos que apresentam camadas MHSA modificadas. 

Eficiência do parâmetro

Os modelos ViT médios herdam suas estratégias de design, como usar uma largura equivalente para projeções, definir a taxa de expansão para 4 em FFN e aumentar as cabeças sobre os estágios dos transformadores NLP. As configurações destes componentes precisam ser cuidadosamente reprojetadas para módulos leves. O modelo EfficientViT implanta poda estruturada de Taylor para encontrar automaticamente os componentes essenciais nas camadas Swim-T e DeiT-T e explora ainda mais os princípios subjacentes de alocação de parâmetros. Sob certas restrições de recursos, os métodos de poda removem canais sem importância e mantêm os canais críticos para garantir a maior precisão possível. A figura abaixo compara a proporção de canais com os embeddings de entrada antes e depois da poda na estrutura Swin-T. Observou-se que: Precisão basal: 79.1%; precisão podada: 76.5%.

A imagem acima indica que os dois primeiros estágios da estrutura preservam mais dimensões, enquanto os dois últimos estágios preservam muito menos dimensões. Isso pode significar que uma configuração típica de canal que duplica o canal após cada estágio ou usa canais equivalentes para todos os blocos pode resultar em redundância substancial nos blocos finais. 

Transformador de Visão Eficiente: Arquitetura

Com base nos aprendizados obtidos durante a análise acima, os desenvolvedores trabalharam na criação de um novo modelo hierárquico que oferece velocidades de interferência rápidas, o EficienteViT modelo. Vamos dar uma olhada detalhada na estrutura do framework EfficientViT. A figura abaixo dá uma ideia genérica da estrutura EfficientViT. 

Blocos de construção da estrutura EfficientViT

O alicerce para uma rede de transformadores de visão mais eficiente é ilustrado na figura abaixo. 

A estrutura consiste em um módulo de atenção de grupo em cascata, um layout sanduíche com uso eficiente de memória e uma estratégia de realocação de parâmetros que se concentra em melhorar a eficiência do modelo em termos de computação, memória e parâmetros, respectivamente. Vamos falar sobre eles com mais detalhes. 

Layout sanduíche

O modelo usa um novo layout sanduíche para construir um bloco de memória mais eficaz e eficiente para a estrutura. O layout sanduíche usa menos camadas de autoatenção vinculadas à memória e faz uso de redes feed forward com maior eficiência de memória para comunicação de canal. Para ser mais específico, o modelo aplica uma única camada de autoatenção para mistura espacial que fica imprensada entre as camadas FFN. O design não só ajuda a reduzir o consumo de tempo de memória devido às camadas de autoatenção, mas também permite a comunicação eficaz entre os diferentes canais da rede graças ao uso de camadas FFN. O modelo também aplica uma camada extra de token de interação antes de cada camada de rede feed forward usando um DWConv ou Convolução Enganosa, e aumenta a capacidade do modelo introduzindo viés indutivo das informações estruturais locais. 

Atenção de grupo em cascata

Um dos principais problemas das camadas MHSA é a redundância nas cabeças de atenção, o que torna os cálculos mais ineficientes. Para resolver o problema, o modelo propõe CGA ou Cascaded Group Attention para transformadores de visão, um novo módulo de atenção que se inspira em convoluções de grupo em CNNs eficientes. Nesta abordagem, o modelo alimenta cabeças individuais com divisões de todos os recursos e, portanto, decompõe explicitamente o cálculo da atenção entre as cabeças. Dividir os recursos em vez de fornecer recursos completos para cada cabeçote economiza computação e torna o processo mais eficiente, e o modelo continua trabalhando para melhorar ainda mais a precisão e sua capacidade, incentivando as camadas a aprenderem projeções em recursos que possuem informações mais ricas. 

Realocação de parâmetros

Para melhorar a eficiência dos parâmetros, o modelo realoca os parâmetros na rede, expandindo a largura do canal dos módulos críticos e diminuindo a largura do canal dos módulos não tão importantes. Com base na análise de Taylor, o modelo define pequenas dimensões de canal para projeções em cada cabeçote durante cada estágio ou permite que as projeções tenham a mesma dimensão da entrada. A taxa de expansão da rede feed forward também foi reduzida de 2 para 4 para ajudar na redundância de parâmetros. A estratégia de realocação proposta que a estrutura EfficientViT implementa aloca mais canais para módulos importantes para permitir que eles aprendam melhor as representações em um espaço de alta dimensão, o que minimiza a perda de informações de recursos. Além disso, para acelerar o processo de interferência e aumentar ainda mais a eficiência do modelo, o modelo remove automaticamente os parâmetros redundantes em módulos sem importância. 

A visão geral da estrutura EfficientViT pode ser explicada na imagem acima onde as partes,

  1. Arquitetura do EfficientViT,
  2. Bloco de layout sanduíche,
  3. Atenção de grupo em cascata.

 

EfficientViT: Arquiteturas de Rede

A imagem acima resume a arquitetura de rede da estrutura EfficientViT. O modelo introduz uma incorporação de patches sobrepostos [20,80] que incorpora patches de 16 × 16 em tokens de dimensão C1 que aumentam a capacidade do modelo de ter melhor desempenho no aprendizado de representação visual de baixo nível. A arquitetura do modelo compreende três estágios onde cada estágio empilha os blocos de construção propostos da estrutura EfficientViT, e o número de tokens em cada camada de subamostragem (2× subamostragem da resolução) é reduzido em 4X. Para tornar a subamostragem mais eficiente, o modelo propõe um bloco de subamostra que também possui o layout sanduíche proposto, com a exceção de que um bloco residual invertido substitui a camada de atenção para reduzir a perda de informações durante a amostragem. Além disso, em vez do LayerNorm(LN) convencional, o modelo faz uso do BatchNorm(BN) porque o BN pode ser dobrado nas camadas lineares ou convolucionais anteriores, o que lhe confere uma vantagem de tempo de execução sobre o LN. 

 

Família de modelos EfficientViT

A família de modelos EfficientViT consiste em 6 modelos com diferentes escalas de profundidade e largura, e um determinado número de cabeçotes é alocado para cada estágio. Os modelos utilizam menos blocos nos estágios iniciais quando comparados aos estágios finais, processo semelhante ao seguido pelo framework MobileNetV3 porque o processo de processamento em estágio inicial com resoluções maiores é demorado. A largura é aumentada ao longo dos estágios com um pequeno fator para reduzir a redundância nos estágios posteriores. A tabela anexada abaixo fornece os detalhes arquitetônicos da família de modelos EfficientViT, onde C, L e H se referem à largura, profundidade e número de cabeçotes no estágio específico. 

EfficientViT: Implementação e Resultados do Modelo

O modelo EfficientViT tem um tamanho total de lote de 2,048, é construído com Timm & PyTorch, é treinado do zero por 300 épocas usando 8 GPUs Nvidia V100, usa um agendador de taxa de aprendizagem de cosseno, um otimizador AdamW e conduz seu experimento de classificação de imagens no ImageNet -1K. As imagens de entrada são cortadas aleatoriamente e redimensionadas para uma resolução de 224×224. Para os experimentos que envolvem classificação de imagens downstream, a estrutura EfficientViT ajusta o modelo para 300 épocas e usa o otimizador AdamW com um tamanho de lote de 256. O modelo usa RetineNet para detecção de objetos no COCO e prossegue treinando os modelos para mais 12 épocas com configurações idênticas. 

Resultados no ImageNet

Para analisar o desempenho do EfficientViT, ele é comparado com os modelos ViT e CNN atuais no conjunto de dados ImageNet. Os resultados da comparação são relatados na figura a seguir. Como pode ser visto, a família de modelos EfficientViT supera as estruturas atuais na maioria dos casos e consegue alcançar um equilíbrio ideal entre velocidade e precisão. 

Comparação com CNNs eficientes e ViTs eficientes

O modelo primeiro compara seu desempenho com CNNs eficientes, como EfficientNet, e estruturas CNN simples, como MobileNets. Como pode ser visto que, quando comparados aos frameworks MobileNet, os modelos EfficientViT obtêm uma melhor pontuação de precisão top-1, enquanto rodam 3.0X e 2.5X mais rápido em CPU Intel e GPU V100, respectivamente.  

A figura acima compara o desempenho do modelo EfficientViT com modelos ViT de grande escala de última geração executados no conjunto de dados ImageNet-1K. 

Classificação de imagens downstream

O modelo EfficientViT é aplicado em várias tarefas posteriores para estudar as habilidades de aprendizagem por transferência do modelo, e a imagem abaixo resume os resultados do experimento. Como pode ser observado, o modelo EfficientViT-M5 consegue obter resultados melhores ou semelhantes em todos os conjuntos de dados, mantendo um rendimento muito maior. A única exceção é o conjunto de dados Carros, onde o modelo EfficientViT falha em fornecer precisão. 

Detecção de Objetos

Para analisar a capacidade do EfficientViT de detectar objetos, ele é comparado com modelos eficientes na tarefa de detecção de objetos COCO, e a imagem abaixo resume os resultados da comparação. 

Considerações Finais

Neste artigo, falamos sobre o EfficientViT, uma família de modelos de transformadores de visão rápida que usam atenção de grupo em cascata e fornecem operações com uso eficiente de memória. Extensos experimentos conduzidos para analisar o desempenho do EfficientViT mostraram resultados promissores, pois o modelo EfficientViT supera os modelos atuais de CNN e transformadores de visão na maioria dos casos. Também tentamos fornecer uma análise sobre os fatores que desempenham um papel na influência da velocidade de interferência dos transformadores de visão. 

"Engenheiro de profissão, escritor de coração". Kunal é um escritor técnico com profundo amor e compreensão de IA e ML, dedicado a simplificar conceitos complexos nesses campos por meio de sua documentação envolvente e informativa.