Por que Vision Transformers (ViT) precisam de tokens de registro
(openreview.net)- Os tokens de norma alta nos mapas de características de ViT aparecem principalmente em regiões de fundo com pouca informação, sendo interpretados como um fenômeno em que tokens de patch são reaproveitados como espaço de armazenamento para cálculos internos
- A solução é adicionar tokens de registro à sequência de entrada, separados dos patches da imagem, isolando em tokens dedicados a função de cálculo interno
- Tanto em ViTs com aprendizado supervisionado quanto em auto-supervisionado, os artefatos diminuem e os mapas de características e attention maps ficam mais suaves, o que favorece tarefas visuais downstream
- Foram reportadas melhorias em object discovery e dense prediction, mas no OpenCLIP o desempenho de object localization caiu ligeiramente, então a formulação de que há “melhoria em todos os modelos” foi corrigida
- Inserir de 4 a 16 tokens de registro gera 2% a 6% de computação adicional, e aumentar o número de tokens nem sempre melhora o desempenho em dense tasks
Artefatos revelados em mapas de características de ViT
- Vision Transformer é usado como uma ferramenta poderosa para aprendizado de representações visuais, mas foram identificados artefatos nos mapas de características de ViTs com aprendizado supervisionado e auto-supervisionado
- Os artefatos são observados como tokens de norma alta durante a inferência
- Ocorrem principalmente em regiões de fundo da imagem com pouca informação
- Parecem ser uma forma de a rede reaproveitar esses tokens para cálculos internos
- Esses tokens vêm de patches de fundo semelhantes aos patches vizinhos e são avaliados como contendo pouca informação local do patch e mais informação global da imagem
- No DINOv2 e em outros ViTs, a redução da resolução espacial e da precisão do attention map pode afetar o desempenho de object discovery e localization downstream
Abordagem com tokens de registro
- A solução proposta é adicionar tokens de registro à sequência de entrada do Vision Transformer, separados dos patches da imagem
- Os registros são organizados como tokens separados dos tokens de patch da imagem, como o CLS token, mas não são usados diretamente no cálculo da loss
- O objetivo é fazer com que tokens dedicados assumam essa função, evitando que tokens de patch existentes sejam usados como “espaço de armazenamento” para cálculos internos
- Essa abordagem está relacionada ao Memory Transformer existente, mas a inserção de novos tokens para analisar e corrigir artefatos de características é específica da análise deste artigo
Mudanças nos mapas de características e nas tarefas downstream
- É reportado que, ao adicionar registros, esses artefatos são removidos tanto em modelos com aprendizado supervisionado quanto auto-supervisionado
- Os mapas de características e attention maps ficam mais suaves, o que favorece o downstream visual processing
- A abordagem é descrita como tendo alcançado um novo state of the art em dense visual prediction tasks de modelos visuais auto-supervisionados
- Também passa a ser possível usar métodos de object discovery em modelos maiores
- No DINOv2 e no DeiT-III, o desempenho de object discovery aumenta, enquanto o desempenho em tarefas no nível da imagem é em geral mantido
Exceções por modelo e análises adicionais
- No OpenCLIP, adicionar registros não melhorou os resultados de object localization e, pelos números da tabela, houve uma pequena queda de desempenho
- A resposta dos autores reconhece que a afirmação de que “o desempenho de object discovery melhora em todos os modelos” não é sustentada pelos números
- Esse conteúdo foi corrigido na Section 3.3
- No OpenCLIP, a Figure 7 mostra redução da norma, mas é discutida uma inconsistência por isso não levar à melhoria de object localization na Table 3
- Na avaliação LOST, escolhe-se, para cada modelo, o embedding de melhor desempenho entre keys, queries e values
- No CLIP, values foi o melhor; os artifacts aparecem em keys ou queries, mas não em values, o que é consistente com a Table 3 e a análise qualitativa
- No MAE, os mesmos “outlier patches” aparentemente não aparecem
- Isso pode ocorrer porque o MAE é treinado apenas com uma loss local, tendo pouca ou nenhuma necessidade de reunir informações globais
- A acurácia de classificação ImageNet com linear probing do MAE-ViT-Large é de 75%, menor que a de outros métodos de SSL
Desempenho, custo e limitações
- Registros são um método simples, mas aumentam a computação por causa dos tokens adicionais
- Ao adicionar de 4 a 16 tokens de registro, foi reportado aumento de 2% a 6% na computação
- Aumentar o número de registros nem sempre leva a melhorias em dense tasks
- Ao passar de 0 para 1 registro, os artefatos são removidos e segmentation e depth prediction melhoram
- Depois de 1, mesmo adicionando mais registros, o feature map já está limpo, então o desempenho de segmentation e depth prediction não aumenta muito
- O desempenho de classification tendia a melhorar adicionalmente com mais registros, mas ainda não há uma intuição clara sobre o motivo
- No NYU depth dataset, ao aumentar de 8 para 16 registros, o RMSE sobe ligeiramente
- O aumento do comprimento da sequência pode ter alterado os hyperparameters ideais
- A diferença de 0,03 RMSE ao passar de 8 para 16 pode ser apenas ruído, pois é pequena em comparação com a diferença de 0,1 RMSE ao passar de 0 para 1
Aceite no OpenReview e pontos debatidos na revisão
- A decisão no OpenReview foi Accept (oral)
- Na meta review, todos os quatro revisores deram nota 8, e a contribuição técnica do artigo foi reconhecida
- Os revisores levantaram preocupações sobre inconsistências de desempenho, a relação entre dataset bias e modelos SSL, a escolha das configurações de otimização e o impacto de gradient clipping
- Os autores acrescentaram experimentos adicionais e análises no appendix durante o processo de rebuttal
- Nas discussões posteriores, foram reforçadas análises de mecanismos internos, como se os registros herdam o comportamento dos outliers, se image tokens voltam a ter caráter mais local e como a norma do CLS token muda
1 comentários
Comentários do Hacker News
Segundo o artigo, register é um token adicional treinável anexado à sequência de entrada durante o treinamento de modelos Vision Transformer.
Ele é adicionado como um valor treinável após a camada de embedding de patches, de forma parecida com o token [CLS], e, ao final do Vision Transformer, os tokens register são descartados, usando-se apenas o token [CLS] e os tokens de patches como representação da imagem.
Esse token oferece ao modelo um espaço para armazenar, processar e consultar informações globais durante a propagação direta, sem precisar forçar os tokens de patches a cumprir esse papel.
Como resultado, artefatos e tokens outliers de norma alta que aparecem nos mapas de características de Vision Transformers treinados desaparecem, os mapas de características ficam mais suaves, e também melhoram o desempenho em dense prediction e a descoberta não supervisionada de objetos.
Como o custo de inferência aumenta só 2% e melhora bastante o desempenho do ViT, parece um resultado elegante, quase um almoço grátis.
Expressões regulares probabilísticas já são uma coisa, mas isso é um nível totalmente diferente de libertinagem matemática.
Ainda assim, é realmente impressionante que funcione assim.
Soa parecido com attention sink ou pause token.
Fico curioso se alguém investigou passar a saída bruta de um passe diretamente como a próxima entrada.
Parece relacionado: "Let's Think Dot by Dot: Hidden Computation in Transformer Language Models" https://arxiv.org/abs/2404.15758
Esse artigo considera que não está claro se a melhoria de desempenho de chain-of-thought em modelos de linguagem vem de uma decomposição de tarefas semelhante à humana ou simplesmente da computação extra fornecida por tokens adicionais.
Ele mostrou que Transformers conseguem resolver tarefas algorítmicas difíceis que não conseguiam responder sem tokens intermediários, mesmo usando apenas tokens de preenchimento sem significado, como
......; porém, para ensinar o uso desses tokens de preenchimento, seria necessária uma supervisão específica e densa.Por isso, fico curioso se também haveria ganhos ao inserir tokens especiais de computação/register em LLMs de texto.
Discussão adicional: https://news.ycombinator.com/item?id=40182695, https://www.reddit.com/r/LocalLLaMA/comments/1cf2w5a/transfo...
Nos últimos anos, testei dezenas, talvez mais de 100, artigos e ideias na área de visão e reconhecimento multimodal, e este foi um caso raro em que tudo funcionou bem.
Por exemplo, este modelo é treinado usando 4 tokens register junto com uma perda no estilo Matryoshka e produz um embedding de 64 dimensões muito pequeno, que pode ser útil para quem procura uma alternativa ao CLIP: https://huggingface.co/unum-cloud/uform3-image-text-english-...
Vi no ICLR e foi um dos melhores artigos do ano; isso também ficou bem claro na sessão de pôsteres.
Parabéns aos autores.
Estou usando DinoV2 há alguns meses e também testei o modelo com 4 tokens register junto com [CLS] + tokens de patches.
Como vários tokens de embedding vindos do modelo antigo sem register já faziam parte da solução, e o token [CLS] não fica alinhado entre o modelo com 0 register e o modelo com 4 registers, acabei não adotando o novo modelo com registers.
Seria bom se [CLS] e os tokens de patches ficassem alinhados de alguma forma entre os dois modelos.
Parece um attention sink para modelos de visão