Inteligência artificial
EfficientViT: Transformador de Visão Eficiente em Memória para Visão Computacional de Alta Resolução

Devido à sua alta capacidade de modelo, os modelos de Transformador de Visão têm desfrutado de um grande sucesso nos tempos recentes. Apesar de seu desempenho, os modelos de transformadores de visão têm uma grande falha: sua notável capacidade de computação vem com altos custos de computação, e é o motivo pelo qual os transformadores de visão não são a primeira escolha para aplicações em tempo real. Para lidar com 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 transformador atuais é frequentemente limitada por operações de memória ineficientes, especialmente funções elementares e reorganização de tensores na rede de autoatenção multi-cabeçal (MHSA). 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 de sanduíche, ou seja, o modelo EfficientViT usa uma rede de autoatenção multi-cabeçal (MHSA) com limitação de memória entre camadas de rede neural feedforward (FFN) eficientes, o que ajuda a melhorar a eficiência de memória e também a melhorar a comunicação geral de canal. Além disso, o modelo também descobriu que as mapas de atenção frequentemente têm semelhanças altas entre cabeças, o que leva à redundância computacional. Para lidar com o problema de redundância, o modelo EfficientViT apresenta um módulo de atenção em cascata que alimenta as cabeças de atenção com diferentes divisões do recurso completo. O método não apenas 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 enquanto mantém um bom equilíbrio entre precisão e velocidade. Então, vamos mergulhar mais fundo e explorar o modelo EfficientViT com um pouco mais de profundidade.
Introdução ao Transformador de Visão e EfficientViT
Os Transformadores de Visão permanecem uma das estruturas mais populares na indústria de visão computacional porque oferecem desempenho superior e capacidades computacionais altas. No entanto, com a precisão e o desempenho constantemente melhorados dos modelos de transformador de visão, os custos operacionais e a sobrecarga computacional também aumentam. Por exemplo, os modelos atuais conhecidos por fornecer desempenho de estado da arte em conjuntos de dados ImageNet, como SwinV2 e V-MoE, usam 3B e 14,7B parâmetros, respectivamente. O tamanho desses modelos, combinado com os custos computacionais e requisitos, os torna praticamente inadequados para dispositivos e aplicações em tempo real.
O modelo EfficientNet visa explorar como melhorar o desempenho dos modelos de transformador de visão e encontrar os princípios envolvidos na criação de arquiteturas de framework de transformador baseado em eficiência e eficácia. O modelo EfficientViT é baseado em frameworks de transformador 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 a velocidade dos modelos de transformador de visão é limitada pela memória, o que significa que a utilização completa do poder computacional em CPUs/GPUs é proibida ou restrita pelo atraso de acesso à memória, resultando em um impacto negativo na velocidade de execução dos transformadores. As funções elementares e a reorganização de tensores na rede de autoatenção multi-cabeçal (MHSA) são as operações mais ineficientes em termos de memória. O modelo também observa que ajustar otimamente a razão entre FFN (rede neural feedforward) 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 das cabeças de atenção a aprender projeções lineares semelhantes.
O modelo é um cultivo final das descobertas durante o trabalho de pesquisa para o EfficientViT. O modelo apresenta um novo bloco com um layout de sanduíche que aplica uma camada de autoatenção multi-cabeçal (MHSA) com limitação de memória entre camadas de rede neural feedforward (FFN) eficientes. A abordagem não apenas reduz o tempo necessário para executar operações limitadas por memória em MHSA, mas também torna o processo mais eficiente em termos de memória, permitindo que mais camadas FFN facilitem a comunicação entre diferentes canais. O modelo também usa um novo módulo de atenção em cascata (CGA) 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 uma capacidade de modelo elevada. Finalmente, o modelo expande a largura do canal de componentes de rede essenciais, incluindo projeções de valor, enquanto reduz a largura do canal de componentes de rede com baixo valor, como dimensões ocultas nas redes neurais feedforward, para redistribuir os parâmetros no framework.

Como pode ser visto na imagem acima, o framework EfficientViT apresenta um desempenho melhor do que os modelos CNN e ViT atuais em termos de precisão e velocidade. Mas como o framework EfficientViT conseguiu superar alguns dos frameworks atuais de estado da arte? Vamos descobrir.
EfficientViT: Melhorando a Eficiência dos Transformadores de Visão
O modelo EfficientViT visa melhorar a eficiência dos modelos de transformador de visão existentes por meio de três perspectivas,
- Redundância Computacional.
- Acesso à Memória.
- Uso de Parâmetros.
O modelo visa descobrir como os parâmetros acima afetam a eficiência dos modelos de transformador de visão e como solucioná-los para alcançar melhores resultados com melhor eficiência. Vamos falar sobre eles em um pouco mais de detalhe.
Acesso à Memória e Eficiência
Um dos fatores essenciais que afetam a velocidade de um modelo é o acesso à memória ou MAO. Como pode ser visto na imagem abaixo, vários operadores no transformador, incluindo adição elementar, normalização e reorganização frequente, são operações ineficientes em termos de memória, pois requerem acesso a diferentes unidades de memória, o que é um processo demorado.

Embora existam alguns métodos existentes que podem simplificar os cálculos de autoatenção padrão, como aproximação de baixa ordem e atenção esparsa, eles frequentemente oferecem aceleração limitada e degradam a precisão.
Por outro lado, o framework EfficientViT visa reduzir o custo de acesso à memória, reduzindo a quantidade de camadas ineficientes em termos de memória no framework. O modelo reduz a escala do DeiT-T e Swin-T para sub-redes menores com um throughput de interferência mais alto de 1,25X e 1,5X, e compara o desempenho dessas sub-redes com as proporções das camadas MHSA. Como pode ser visto na imagem abaixo, quando implementado, 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 múltiplos subespaços ou cabeças e calculam os mapas de atenção individualmente, uma abordagem conhecida por aumentar o desempenho. No entanto, os mapas de atenção não são baratos em termos computacionais, e para explorar os custos computacionais, o modelo EfficientViT explora como reduzir a redundância de atenção em modelos ViT menores. O modelo mede a similaridade de cosseno máxima de cada cabeça e as cabeças restantes dentro de cada bloco, treinando os modelos DeiT-T e Swim-T com redução de largura com um aumento de velocidade de inferência de 1,25 vezes. Como pode ser observado na imagem abaixo, há um número alto de similaridade entre as cabeças de atenção, o que sugere que o modelo incorre em redundância computacional porque muitas cabeças tendem a aprender projeções semelhantes da mesma característica completa.

Para encorajar as cabeças a aprender padrões diferentes, o modelo aplica explicitamente uma solução intuitiva, na qual cada cabeça é alimentada apenas com uma porção da característica completa, uma técnica que se assemelha à ideia de convolução em grupo. O modelo treina diferentes aspectos dos modelos com redução de largura que apresentam camadas MHSA modificadas.
Eficiência de Parâmetros
Os modelos ViT médios herdam suas estratégias de design, como usar uma largura equivalente para projeções, definir a razão de expansão para 4 em FFN e aumentar as cabeças sobre os estágios a partir de transformadores NLP. As configurações desses componentes precisam ser redesenhadas cuidadosamente para módulos leves. O modelo EfficientViT implanta a poda estruturada de Taylor para encontrar os componentes essenciais nas camadas Swim-T e DeiT-T automaticamente e explora os princípios subjacentes de alocação de parâmetros. Sob certas restrições de recursos, os métodos de poda removem canais não importantes e mantêm os críticos para garantir a precisão mais alta possível. A figura abaixo compara a razão de canais para as incorporações de entrada antes e após a poda no framework Swin-T. Foi observado que: Precisão de referência: 79,1%; precisão podada: 76,5%.

A imagem acima indica que os dois primeiros estágios do framework preservam mais dimensões, enquanto os dois últimos estágios preservam muito menos dimensões. Isso pode significar que uma configuração de canal típica que dobra 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 nas descobertas obtidas 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 modelo EfficientViT. Vamos dar uma olhada mais detalhada na estrutura do framework EfficientViT. A figura abaixo fornece uma ideia geral do framework EfficientViT.
Blocos de Construção do Framework EfficientViT
O bloco de construção para a rede de transformador de visão mais eficiente é ilustrado na figura abaixo.

O framework consiste em um módulo de atenção em cascata, um layout de sanduíche eficiente em termos 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âmetro, respectivamente. Vamos falar sobre eles em mais detalhes.
Layout de Sanduíche
O modelo usa um novo layout de sanduíche para construir um bloco de memória mais eficaz e eficiente para o framework. O layout de sanduíche usa menos camadas de autoatenção limitadas por memória e usa mais redes neurais feedforward eficientes para comunicação de canal. Para ser mais específico, o modelo aplica uma camada de autoatenção única para mistura espacial que é sandwichada entre as camadas FFN. O design não apenas ajuda a reduzir o tempo de consumo de memória devido às camadas de autoatenção, mas também permite uma comunicação eficaz entre diferentes canais dentro da rede, graças ao uso de camadas FFN. O modelo também aplica uma camada de token de interação extra antes de cada camada de rede neural feedforward usando uma DWConv ou Convolução Deceptiva e aumenta a capacidade do modelo, introduzindo viés indutivo de informações estruturais locais.
Atenção em Cascata
Um dos principais problemas com as camadas MHSA é a redundância nas cabeças de atenção, o que torna os cálculos mais ineficientes. Para solucionar o problema, o modelo propõe a Atenção em Cascata (CGA) para transformadores de visão, um novo módulo de atenção que se inspira nas convoluções em grupo nas CNNs eficientes. Nessa abordagem, o modelo alimenta as cabeças individuais com divisões da característica completa e, portanto, decomponha explicitamente o cálculo de atenção entre as cabeças. Dividir as características em vez de alimentar as cabeças com a característica completa economiza cálculos e torna o processo mais eficiente, e o modelo continua a trabalhar na melhoria da precisão e capacidade ainda mais, encorajando as camadas a aprender projeções em características com 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 de módulos críticos, enquanto reduz a largura do canal de módulos não tão importantes. Com base na análise de Taylor, o modelo define dimensões de canal pequenas para projeções em cada cabeça durante cada estágio ou permite que as projeções tenham a mesma dimensão que a incorporação de entrada. A razão de expansão da rede neural feedforward também é reduzida para 2, de 4, para ajudar com a redundância de parâmetros. A estratégia de realocação proposta que o framework EfficientViT implementa aloca mais canais para módulos importantes, permitindo que eles aprendam representações em um espaço de alta dimensionalidade melhor, minimizando a perda de informações de características. Além disso, para acelerar o processo de interferência e melhorar a eficiência do modelo ainda mais, o modelo remove automaticamente os parâmetros redundantes em módulos não importantes.

A visão geral do framework EfficientViT pode ser explicada na imagem acima, onde as partes,
- Arquitetura do EfficientViT,
- Bloco de layout de sanduíche,
- Atenção em Cascata.
EfficientViT: Arquiteturas de Rede

A imagem acima resume a arquitetura de rede do framework EfficientViT. O modelo apresenta uma incorporação de patch sobreposta [20,80] que incorpora patches de 16×16 em tokens de dimensão C1, o que melhora a capacidade do modelo de aprender representações visuais de baixo nível. A arquitetura do modelo consiste em três estágios, onde cada estágio empilha os blocos de construção propostos do framework EfficientViT, e o número de tokens em cada camada de subsampling (2× subsampling da resolução) é reduzido por 4X. Para tornar o subsampling mais eficiente, o modelo propõe um bloco de subsampling que também tem o layout de sanduíche proposto, com a exceção de que um bloco de resíduo invertido substitui a camada de atenção para reduzir a perda de informações durante a amostragem. Além disso, em vez de usar a normalização de camada convencional (LN), o modelo usa a normalização de lote (BN), pois a BN pode ser incorporada às camadas lineares ou convolucionais anteriores, o que lhe dá uma vantagem de tempo de execução sobre a 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 número fixo de cabeças é alocado para cada estágio. Os modelos usam menos blocos nos estágios iniciais em comparação com os estágios finais, um processo semelhante ao seguido pelo framework MobileNetV3, pois o processo de processamento de estágios iniciais com resoluções maiores é demorado. A largura é aumentada sobre os estágios com um fator pequeno para reduzir a redundância nos estágios posteriores. A tabela anexa 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ças no estágio específico.

EfficientViT: Implementação do Modelo e Resultados
O modelo EfficientViT tem um tamanho de lote total de 2.048, é construído com Timm e PyTorch, é treinado do zero por 300 épocas usando 8 GPUs Nvidia V100, usa um agendador de taxa de aprendizado cosseno, um otimizador AdamW e realiza o experimento de classificação de imagem no ImageNet-1K. As imagens de entrada são recortadas aleatoriamente e redimensionadas para uma resolução de 224×224. Para os experimentos que envolvem classificação de imagem downstream, o framework EfficientViT ajusta o modelo por 300 épocas e usa um otimizador AdamW com um tamanho de lote de 256. O modelo usa RetineNet para detecção de objetos no COCO e procede a treinar os modelos por mais 12 épocas com as 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 abaixo. Como pode ser visto, a família de modelos EfficientViT supera os frameworks 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 frameworks CNN padrão, como MobileNets. Como pode ser visto, quando comparado com os frameworks MobileNet, os modelos EfficientViT obtêm uma pontuação de precisão superior, enquanto executam 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 estado da arte que executam no conjunto de dados ImageNet-1K.
Classificação de Imagem Downstream
O modelo EfficientViT é aplicado em várias tarefas downstream para estudar as habilidades de aprendizado de transferência do modelo, e a imagem abaixo resume os resultados do experimento. Como pode ser observado, o modelo EfficientViT-M5 consegue alcançar resultados melhores ou semelhantes em todos os conjuntos de dados, enquanto mantém um throughput muito mais alto. A única exceção é o conjunto de dados Cars, onde o modelo EfficientViT falha em entregar em 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.

Pensamentos Finais
Neste artigo, falamos sobre o EfficientViT, uma família de modelos de transformador de visão rápidos que usam atenção em cascata e fornecem operações de memória eficientes. Experimentos abrangentes realizados para analisar o desempenho do EfficientViT mostraram resultados promissores, pois o modelo EfficientViT supera os modelos CNN e ViT atuais na maioria dos casos. Também tentamos fornecer uma análise dos fatores que desempenham um papel na velocidade de interferência dos transformadores de visão.












