Depois de trazer mudanças no campo da linguagem, o Transformer está entrando no campo visual, mas também tem o problema do alto custo computacional. Recentemente, uma equipe de pesquisa da Universidade de Wisconsin-Madison propôs o Eventful Transformer, que pode economizar custos ao utilizar redundância de tempo no Transformer visual.
Fonte da imagem: gerada por Unbounded AI
O Transformer foi originalmente projetado para tarefas de processamento de linguagem natural, mas agora é amplamente utilizado para tarefas de visão. O Vision Transformer alcança excelente precisão em uma variedade de tarefas de reconhecimento visual e desempenho de última geração em tarefas como classificação de imagens, classificação de vídeo e detecção de objetos.
Uma grande desvantagem do Transformer visual é seu alto custo computacional. Redes convolucionais típicas (CNN) requerem dezenas de GFlops por imagem para serem processadas, enquanto os transformadores visuais geralmente exigem uma ordem de magnitude a mais, atingindo centenas de GFlops por imagem. Ao processar vídeo, esse problema é ainda mais grave devido à enorme quantidade de dados. O alto custo computacional dificulta a implantação do Visual Transformer em dispositivos com recursos limitados ou requisitos rígidos de latência, o que limita os cenários de aplicação desta tecnologia, caso contrário já teríamos algumas aplicações interessantes.
Em um artigo recente, três pesquisadores da Universidade de Wisconsin-Madison, Matthew Dutson, Yin Li e Mohit Gupta, propuseram pela primeira vez que a redundância temporal entre entradas subsequentes pode ser usada para reduzir o custo de transformadores visuais em aplicações de vídeo. Eles também lançaram o código do modelo, que inclui o módulo PyTorch usado para construir o Eventful Transformer.
* Endereço do papel:
*endereço do projeto:
Redundância temporal: primeiro suponha que exista um transformador visual que possa processar uma sequência de vídeo quadro a quadro ou videoclipe por videoclipe. Este transformador pode ser um modelo simples de processamento quadro a quadro (como um detector de objetos) ou uma etapa intermediária de um modelo espaço-temporal (como a primeira etapa do modelo decomposto do ViViT). Ao contrário do Transformer de processamento de linguagem, onde uma entrada é uma sequência completa, os pesquisadores aqui fornecem múltiplas entradas diferentes (quadros ou videoclipes) ao Transformer ao longo do tempo.
Os vídeos naturais contêm redundância temporal significativa, ou seja, as diferenças entre os quadros subsequentes são pequenas. No entanto, redes profundas, incluindo Transformers, normalmente computam cada quadro “do zero”. Este método descarta informações potencialmente relevantes obtidas através de raciocínio prévio, o que é extremamente dispendioso. Portanto, esses três pesquisadores se perguntaram: os resultados intermediários dos cálculos das etapas de cálculo anteriores podem ser reutilizados para melhorar a eficiência do processamento de sequências redundantes?
Inferência adaptativa: Para transformadores visuais e redes profundas em geral, o custo da inferência é frequentemente ditado pela arquitetura. Contudo, em aplicações reais, os recursos disponíveis podem mudar ao longo do tempo, por exemplo devido a processos concorrentes ou mudanças de energia. Como resultado, pode haver necessidade de modificar o custo de cálculo do modelo em tempo de execução. Um dos principais objetivos de design definidos pelos pesquisadores neste novo esforço foi a adaptabilidade – sua abordagem permitiu o controle em tempo real dos custos computacionais. A Figura 1 abaixo (parte inferior) dá um exemplo de modificação do orçamento computacional durante o processamento de vídeo.
Eventful Transformer: Este artigo propõe o Eventful Transformer, que pode explorar a redundância temporal entre as entradas para obter um raciocínio eficiente e adaptativo. O termo agitado é inspirado em câmeras de eventos, sensores que gravam imagens discretamente conforme a cena muda. O Eventful Transformer rastreia as mudanças no nível do token ao longo do tempo e atualiza seletivamente as representações do token e os mapas de autoatenção a cada intervalo de tempo. O módulo do Eventful Transformer contém um módulo de controle que é usado para controlar o número de tokens que são atualizados durante o tempo de execução.
Este método pode ser usado com modelos prontos para uso (geralmente sem retreinamento) e é compatível com muitas tarefas de processamento de vídeo. Os pesquisadores também realizaram demonstrações experimentais, e os resultados mostram que o Eventful Transformer pode ser usado nos melhores modelos existentes, reduzindo bastante seus custos computacionais, mantendo sua precisão original.
Transformador agitado
O objetivo desta pesquisa é acelerar o Vision Transformer para reconhecimento de vídeo. Neste cenário, o transformador visual precisa processar repetidamente quadros de vídeo ou videoclipes.Tarefas específicas incluem detecção de alvo de vídeo e reconhecimento de ação de vídeo. A ideia chave proposta aqui é explorar a redundância temporal, ou seja, reutilizar os resultados dos cálculos de intervalos de tempo anteriores. A seguir será descrito em detalhes como modificar o módulo Transformer para torná-lo capaz de detectar redundância de tempo.
gate de token: detectando redundância
Esta seção apresentará dois novos módulos propostos pelos pesquisadores: token gate e token buffer. Esses módulos permitem que o modelo identifique e atualize tokens que mudaram significativamente desde a última atualização.
Módulo Gate: Este portão selecionará uma parte M do token de entrada N e a enviará para a camada downstream para cálculo. Ele mantém um token de referência definido em sua memória, denotado como você. Este vetor de referência contém o valor de cada token no momento de sua atualização mais recente. A cada intervalo de tempo, cada token é comparado com seu valor de referência correspondente e o token que é significativamente diferente do valor de referência é atualizado.
Agora deixe a entrada atual para a porta ser c. A cada passo de tempo, o seguinte processo é seguido para atualizar o status do portão e determinar sua saída (veja a Figura 2 abaixo):
1. Calcule o erro total e = u − c.
Use uma estratégia de seleção para erro e. A estratégia de seleção retorna uma máscara binária m (equivalente a uma lista de índices de tokens), indicando quais M tokens devem ser atualizados.
Extraia o token selecionado pela estratégia acima. Isto é descrito na Figura 2 como o produto c × m; na prática, isso é conseguido realizando uma operação de "reunião" ao longo do primeiro eixo de c. Os tokens coletados são registrados aqui como
, que é a saída do portão.
Atualize o token de referência para o token selecionado. A Figura 2 descreve este processo como
;A operação utilizada na prática é "dispersão". No primeiro passo de tempo, a porta atualiza todos os tokens (inicializando u ← c e retornando c˜ = c).
Módulo buffer: O módulo buffer mantém um tensor de estado
, que rastreia cada token de entrada
Quando , o buffer dispersa os tokens de f (c˜) para suas posições correspondentes em b. Em seguida, ele retorna o b atualizado como saída, veja a Figura 3 abaixo.
Os pesquisadores emparelharam cada porta com um amortecedor atrás dela. Aqui está um padrão de uso simples: a saída do portão
é passado para uma série de operações f (c˜) em cada token; então o tensor resultante
Passado para um buffer, que irá restaurar a forma completa.
Crie um transformador com reconhecimento de redundância
Para aproveitar a redundância de tempo acima, os pesquisadores propuseram um esquema de modificação do módulo Transformer. A Figura 4 abaixo mostra o design do módulo Eventful Transformer. Este método pode acelerar as operações em tokens individuais (como MLP), bem como o valor da chave de consulta e a multiplicação do valor de atenção.
No módulo Operation Transformer para cada token, muitas operações são realizadas para cada token, o que significa que não envolvem troca de informações entre tokens, incluindo transformações lineares em MLP e MSA. Para economizar custos computacionais, os pesquisadores afirmaram que as operações orientadas a tokens de tokens não selecionados pelo portão podem ser ignoradas. Devido à independência entre os tokens, isso não altera o resultado da operação no token selecionado. Veja a Figura 3.
Especificamente, os pesquisadores usaram um par de buffers de porta para a sequência contínua de operações em cada token (incluindo transformação W_qkv, transformação W_p e MLP). Observe que eles também adicionaram um buffer antes da conexão de salto para garantir que os tokens dos dois operandos de adição estejam alinhados corretamente.
O custo da operação para cada token é proporcional ao número de tokens. A porta pode reduzir esse número de N para M, o que também reduz o custo computacional das operações downstream para cada token em N/M vezes.
Produto de valor-chave de consulta: agora vamos dar uma olhada no produto de valor-chave de consulta B = qk^T.
A Figura 5 abaixo mostra um método para atualizar esparsamente um subconjunto de elementos no produto de valor-chave de consulta B.
O custo geral dessas atualizações é 2NMD, comparado ao custo de calcular B do zero, que é N^2D. Observe que o custo do novo método é proporcional a M, o número de tokens selecionados pelo portão. Quando M < N/2 (os tokens atualizados neste momento são menos da metade do total), o valor do cálculo pode ser salvo.
Produto de valor de atenção: O pesquisador propôs uma estratégia de atualização baseada no incremento Δ.
A Figura 6 abaixo mostra o método recentemente proposto para calcular eficientemente três termos incrementais.
Da mesma forma, quando M < N/2, o valor do cálculo pode ser salvo.
estratégia de seleção de tokens
Um projeto importante do Eventful Transformer é sua estratégia de seleção de tokens. Dado um tensor de erro de porta e, o objetivo de tal política é gerar uma máscara m indicando os tokens que devem ser atualizados. Estratégias específicas incluem:
Estratégia Top-r: Esta estratégia seleciona r tokens com o maior erro e (a norma L2 é usada aqui).
Estratégia de limite: Esta estratégia seleciona todos os tokens cuja norma de erro e excede um limite h.
Outras estratégias: Estratégias de seleção de tokens mais complexas e sofisticadas podem alcançar melhores compensações entre precisão e custo.Por exemplo, uma rede política leve pode ser usada para aprender uma estratégia. Contudo, treinar o mecanismo de tomada de decisão da política pode ser difícil porque a máscara binária m é geralmente não diferenciável. Outra ideia é utilizar a pontuação de importância como informação de referência para seleção. Mas essas ideias ainda aguardam pesquisas futuras.
Experimente
Os pesquisadores avaliaram experimentalmente o método recém-proposto nas tarefas de detecção de objetos de vídeo e reconhecimento de ações de vídeo.
A Figura 7 abaixo mostra os resultados experimentais da detecção de alvos de vídeo. O eixo positivo é a taxa de economia computacional e o eixo negativo é a redução relativa na pontuação mAP50 do novo método. Pode-se observar que o novo método alcança economias computacionais significativas com um pequeno sacrifício de precisão.
A Figura 8 abaixo mostra a comparação de métodos e resultados experimentais de ablação na tarefa de detecção de alvo de vídeo.
A Figura 9 abaixo mostra os resultados experimentais do reconhecimento de ação de vídeo.
A Tabela 2 abaixo mostra os resultados do tempo de execução (milissegundos) em uma CPU (Xeon Silver 4214, 2,2 GHz) e uma GPU (NVIDIA RTX3090).Pode-se observar que o aumento de velocidade trazido pela redundância de tempo na GPU pode ser de até 1,74. vezes, e a melhoria na CPU pode chegar a 2,47 vezes.
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
Como reduzir o custo computacional do Transformer visual? A abordagem da redundância temporal é surpreendente
O Transformer foi originalmente projetado para tarefas de processamento de linguagem natural, mas agora é amplamente utilizado para tarefas de visão. O Vision Transformer alcança excelente precisão em uma variedade de tarefas de reconhecimento visual e desempenho de última geração em tarefas como classificação de imagens, classificação de vídeo e detecção de objetos.
Uma grande desvantagem do Transformer visual é seu alto custo computacional. Redes convolucionais típicas (CNN) requerem dezenas de GFlops por imagem para serem processadas, enquanto os transformadores visuais geralmente exigem uma ordem de magnitude a mais, atingindo centenas de GFlops por imagem. Ao processar vídeo, esse problema é ainda mais grave devido à enorme quantidade de dados. O alto custo computacional dificulta a implantação do Visual Transformer em dispositivos com recursos limitados ou requisitos rígidos de latência, o que limita os cenários de aplicação desta tecnologia, caso contrário já teríamos algumas aplicações interessantes.
Em um artigo recente, três pesquisadores da Universidade de Wisconsin-Madison, Matthew Dutson, Yin Li e Mohit Gupta, propuseram pela primeira vez que a redundância temporal entre entradas subsequentes pode ser usada para reduzir o custo de transformadores visuais em aplicações de vídeo. Eles também lançaram o código do modelo, que inclui o módulo PyTorch usado para construir o Eventful Transformer.
Redundância temporal: primeiro suponha que exista um transformador visual que possa processar uma sequência de vídeo quadro a quadro ou videoclipe por videoclipe. Este transformador pode ser um modelo simples de processamento quadro a quadro (como um detector de objetos) ou uma etapa intermediária de um modelo espaço-temporal (como a primeira etapa do modelo decomposto do ViViT). Ao contrário do Transformer de processamento de linguagem, onde uma entrada é uma sequência completa, os pesquisadores aqui fornecem múltiplas entradas diferentes (quadros ou videoclipes) ao Transformer ao longo do tempo.
Os vídeos naturais contêm redundância temporal significativa, ou seja, as diferenças entre os quadros subsequentes são pequenas. No entanto, redes profundas, incluindo Transformers, normalmente computam cada quadro “do zero”. Este método descarta informações potencialmente relevantes obtidas através de raciocínio prévio, o que é extremamente dispendioso. Portanto, esses três pesquisadores se perguntaram: os resultados intermediários dos cálculos das etapas de cálculo anteriores podem ser reutilizados para melhorar a eficiência do processamento de sequências redundantes?
Inferência adaptativa: Para transformadores visuais e redes profundas em geral, o custo da inferência é frequentemente ditado pela arquitetura. Contudo, em aplicações reais, os recursos disponíveis podem mudar ao longo do tempo, por exemplo devido a processos concorrentes ou mudanças de energia. Como resultado, pode haver necessidade de modificar o custo de cálculo do modelo em tempo de execução. Um dos principais objetivos de design definidos pelos pesquisadores neste novo esforço foi a adaptabilidade – sua abordagem permitiu o controle em tempo real dos custos computacionais. A Figura 1 abaixo (parte inferior) dá um exemplo de modificação do orçamento computacional durante o processamento de vídeo.
Este método pode ser usado com modelos prontos para uso (geralmente sem retreinamento) e é compatível com muitas tarefas de processamento de vídeo. Os pesquisadores também realizaram demonstrações experimentais, e os resultados mostram que o Eventful Transformer pode ser usado nos melhores modelos existentes, reduzindo bastante seus custos computacionais, mantendo sua precisão original.
Transformador agitado
O objetivo desta pesquisa é acelerar o Vision Transformer para reconhecimento de vídeo. Neste cenário, o transformador visual precisa processar repetidamente quadros de vídeo ou videoclipes.Tarefas específicas incluem detecção de alvo de vídeo e reconhecimento de ação de vídeo. A ideia chave proposta aqui é explorar a redundância temporal, ou seja, reutilizar os resultados dos cálculos de intervalos de tempo anteriores. A seguir será descrito em detalhes como modificar o módulo Transformer para torná-lo capaz de detectar redundância de tempo.
gate de token: detectando redundância
Esta seção apresentará dois novos módulos propostos pelos pesquisadores: token gate e token buffer. Esses módulos permitem que o modelo identifique e atualize tokens que mudaram significativamente desde a última atualização.
Módulo Gate: Este portão selecionará uma parte M do token de entrada N e a enviará para a camada downstream para cálculo. Ele mantém um token de referência definido em sua memória, denotado como você. Este vetor de referência contém o valor de cada token no momento de sua atualização mais recente. A cada intervalo de tempo, cada token é comparado com seu valor de referência correspondente e o token que é significativamente diferente do valor de referência é atualizado.
Agora deixe a entrada atual para a porta ser c. A cada passo de tempo, o seguinte processo é seguido para atualizar o status do portão e determinar sua saída (veja a Figura 2 abaixo):
Use uma estratégia de seleção para erro e. A estratégia de seleção retorna uma máscara binária m (equivalente a uma lista de índices de tokens), indicando quais M tokens devem ser atualizados.
Extraia o token selecionado pela estratégia acima. Isto é descrito na Figura 2 como o produto c × m; na prática, isso é conseguido realizando uma operação de "reunião" ao longo do primeiro eixo de c. Os tokens coletados são registrados aqui como
Módulo buffer: O módulo buffer mantém um tensor de estado
Crie um transformador com reconhecimento de redundância
Para aproveitar a redundância de tempo acima, os pesquisadores propuseram um esquema de modificação do módulo Transformer. A Figura 4 abaixo mostra o design do módulo Eventful Transformer. Este método pode acelerar as operações em tokens individuais (como MLP), bem como o valor da chave de consulta e a multiplicação do valor de atenção.
Especificamente, os pesquisadores usaram um par de buffers de porta para a sequência contínua de operações em cada token (incluindo transformação W_qkv, transformação W_p e MLP). Observe que eles também adicionaram um buffer antes da conexão de salto para garantir que os tokens dos dois operandos de adição estejam alinhados corretamente.
O custo da operação para cada token é proporcional ao número de tokens. A porta pode reduzir esse número de N para M, o que também reduz o custo computacional das operações downstream para cada token em N/M vezes.
Produto de valor-chave de consulta: agora vamos dar uma olhada no produto de valor-chave de consulta B = qk^T.
A Figura 5 abaixo mostra um método para atualizar esparsamente um subconjunto de elementos no produto de valor-chave de consulta B.
Produto de valor de atenção: O pesquisador propôs uma estratégia de atualização baseada no incremento Δ.
A Figura 6 abaixo mostra o método recentemente proposto para calcular eficientemente três termos incrementais.
estratégia de seleção de tokens
Um projeto importante do Eventful Transformer é sua estratégia de seleção de tokens. Dado um tensor de erro de porta e, o objetivo de tal política é gerar uma máscara m indicando os tokens que devem ser atualizados. Estratégias específicas incluem:
Estratégia Top-r: Esta estratégia seleciona r tokens com o maior erro e (a norma L2 é usada aqui).
Estratégia de limite: Esta estratégia seleciona todos os tokens cuja norma de erro e excede um limite h.
Outras estratégias: Estratégias de seleção de tokens mais complexas e sofisticadas podem alcançar melhores compensações entre precisão e custo.Por exemplo, uma rede política leve pode ser usada para aprender uma estratégia. Contudo, treinar o mecanismo de tomada de decisão da política pode ser difícil porque a máscara binária m é geralmente não diferenciável. Outra ideia é utilizar a pontuação de importância como informação de referência para seleção. Mas essas ideias ainda aguardam pesquisas futuras.
Experimente
Os pesquisadores avaliaram experimentalmente o método recém-proposto nas tarefas de detecção de objetos de vídeo e reconhecimento de ações de vídeo.
A Figura 7 abaixo mostra os resultados experimentais da detecção de alvos de vídeo. O eixo positivo é a taxa de economia computacional e o eixo negativo é a redução relativa na pontuação mAP50 do novo método. Pode-se observar que o novo método alcança economias computacionais significativas com um pequeno sacrifício de precisão.