A autoatenção é um tipo de mecanismo de atenção usado em modelos de aprendizado de máquina. Esse mecanismo é usado para ponderar a importância de tokens ou palavras em uma sequência de entrada, para entender melhor as relações entre eles. É uma parte crucial dos modelos de transformadores, uma poderosa arquitetura de inteligência artificial que é essencial para tarefas de processamento de linguagem natural (NLP). A arquitetura de transformação é a base para a maioria dos grandes modelos de linguagem (LLMs) modernos.
O mecanismo de autoatenção foi introduzido por meio do transformador, um modelo de arquitetura de redes neurais proposto pelos pesquisadores. O objetivo da arquitetura proposta era lidar com os desafios dos modelos tradicionais de aprendizado de máquina que utilizam redes neurais de convolução (CNNs) e redes neurais recorrentes (RNNs).1
Os modelos sequenciais tradicionais seguem a mesma arquitetura de codificador-decodificador dos modelos de transformadores, mas processam os dados passo a passo ou de sequência para sequência (seq2seq). Essa função representa um desafio para a paralelização, que é a capacidade de reduzir o tempo de computação e aprimorar a geração de produção calculando pesos de atenção em todas as partes da entrada simultaneamente.
A autoatenção desempenhou um papel fundamental no avanço dos LLMs, permitindo a paralelização dentro de exemplos de treinamento. Esse método é útil porque quanto maior o comprimento da sequência, mais as restrições de memória limitam o lote em exemplos de treinamento. Usando autoatenção, os dados de treinamento do LLM podem ser divididos em lotes e processados simultaneamente em várias GPUs.1 A autoatenção reduz o poder computacional necessário para treinar modelos de aprendizado de máquina com lotes eficientes processados em paralelo.
A autoatenção não só contribui para a distribuição eficiente da carga computacional, mas também possibilita a capacidade de processar pesos de atenção simultaneamente. Essa capacidade permite que o modelo foque em partes relevantes de uma sequência de entrada para prever dinamicamente a importância de cada elemento em uma sequência. A autoatenção é boa para tarefas de NLP, como tradução automática, análise de sentimento e sumarização.
A autoatenção em modelos de aprendizado de máquina é semelhante ao conceito comportamental humano, pois ambos envolvem focar em elementos relevantes dentro de um contexto mais amplo para processar informações com precisão. Em psicologia, trata-se de focar em seus próprios pensamentos ou comportamentos, enquanto em deep learning trata de focar nas partes relevantes de uma sequência de entrada.
A arquitetura de transformação inclui uma camada de autoatenção onde o processo de atenção é integrado. As etapas são explicadas conforme apresentado no artigo de Ashish Vaswani et al. apresentando a camada de autoatenção “Attention is All You Need.”
Uma sequência de entrada é uma série de pontos de dados vetorizados em embeddings, ou representações numéricas, que o algoritmo de aprendizado de máquina pode utilizar para calcular as pontuações de atenção necessárias para produzir uma sequência de saída.
Na tradução automática, uma frase seria considerada uma sequência de entrada, onde cada parte da frase é considerada um ponto de dados ou token de entrada. Os tokens são convertidos em embeddings que atuam como unidades semânticas que o modelo pode processar.2 As embeddings são usadas para calcular os pesos de atenção que ajudam o modelo a priorizar (ou atender) os dados de entrada mais relevantes.
O modelo usa essas embeddings para gerar três vetores de chave para cada token: consulta (Q), chave (K) e valor (V). Esses valores serão usados para ajudar o modelo a fazer as correspondências semânticas mais fortes dentro da frase de entrada.
As multiplicações de matrizes são realizadas para obter os vetores de consulta, chave e valor. O mecanismo de atenção calcula uma soma ponderada dos valores com base nas matrizes de peso e entradas incorporadas dos respectivos componentes de consulta, chave e valor.1 Esse processo é conhecido como transformação linear.
Depois que as embeddings são transformadas, as pontuações de atenção para cada elemento na sequência são calculadas. As pontuações de atenção são obtidas colocando as pontuações de atenção do produto escalar entre os vetores de consulta e os vetores de chave. Esses pesos de atenção representam quanto foco (ou atenção) um token específico deve dar a outros tokens em uma sequência.
Em seguida, a pontuação de atenção é dimensionada pela raiz quadrada da dimensionalidade dos vetores de chave. Esse processo ajuda a estabilizar os gradientes e a evitar que fiquem muito grandes para serem computados de forma eficiente à medida que a dimensionalidade dos vetores aumenta.
As pontuações de atenção obtidas por meio do produto escalar dos vetores de consulta e vetores de chave são transformadas em probabilidades usando a função softmax. Esse processo é chamado de normalização.
Com essas probabilidades normalizadas, o bloco de atenção softmax permite que a arquitetura de transformação avalie a importância de elementos de entrada individuais durante a geração da saída.3 Essas probabilidades são usadas para encontrar a importância relativa de cada elemento na sequência. O modelo de atenção usa esses pesos normalizados para decidir em quais partes da entrada se concentrar.
Finalmente, os pesos de atenção derivados desse processo contribuem para a soma ponderada final do vetor de valor. Quanto maior a pontuação de atenção, maior o peso de atenção da sequência. Isso significa que ele terá mais influência na produção final da soma ponderada do vetor de valores.
Os modelos de atenção são eficazes para capturar dependências de longo alcance, independentemente da distância entre cada elemento, ou token, em uma sequência. A atenção multihead é uma extensão crucial da autoatenção que aprimora essa funcionalidade primária ao atender simultaneamente a diferentes elementos do conjunto de dados de entrada. Os modelos podem atender a aspectos ou relacionamentos distintos nos dados de uma só vez, permitindo que mais contexto seja extraído entre dependências ou tokens.
Os modelos bidirecionais iniciais, como as representações de codificadores bidirecionais de transformadores (BERT), melhoraram a compreensão do contexto, permitindo que o modelo considere as informações da sequência direta e reversa. Na atenção bidirecional, o modelo visa entender o significado de uma palavra com base em suas palavras ao redor.4
Os modelos GPT popularizaram a autoatenção, destacando os benefícios de uma janela de contexto expandida para tarefas generativas. A capacidade de processar mais informações de uma só vez leva a uma maior precisão e compreensão.
Os modelos de IA usam a autoatenção para processar sequências longas de entrada de forma eficiente, trocando informações de atenção em escala e reduzindo o uso de memória.5 A autoatenção permite que o modelo obtenha uma compreensão contextual mais profunda usando a janela de contexto dentro do modelo. Quanto maior a janela de contexto, maior o número de tokens nos quais o modelo pode prestar atenção ao mesmo tempo.
Tarefas de NLP: o mecanismo de autoatenção aprimora os recursos linguísticos dos modelos de aprendizado de máquina, permitindo a análise eficiente e completa de um texto inteiro. A pesquisa mostrou avanços na classificação de sentimento.6 Os modelos podem executar bem tarefas de NLP porque a camada de atenção permite calcular a relação entre palavras, independentemente da distância entre elas.7
Computer vision: os mecanismos de autoatenção não são exclusivos das tarefas de NLP. Pode ser usado para focar em partes específicas de uma imagem. Desenvolvimentos em modelos de reconhecimento de imagens sugerem que a autoatenção é um componente crucial para aumentar sua robustez e generalização.8
1. “Attention Is All You Need,” Ashish Vaswani et al., Proceedings of the 31st International Conference on Neural Information Processing Systems, arXiv:1706.03762v7, revisado em 2 de agosto de 2023.
2. “Tokenization,” essay, in Introduction to Information Retrieval, Christopher Manning, Prabhakar Raghavan and Hinrich Schutze, 2008.
3. “Rethinking Softmax: Self-Attention with Polynomial Activations,” Hemanth Saratchandran et al., Australian Institute of Machine Learning, University of Adelaide, arXiv:2410.18613v1, 24 de outubro de 2024.
4. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,” Jacob Devlin et al., arXiv:1810.04805v2, revisado em 24 de maio de 2019.
5. “Scaling of Search and Learning: A Roadmap to Reproduce o1 from Reinforcement Learning Perspective,” Zhiyuan Zeng et al., arXiv:2412.14135, 18 de dezembro de 2024.
6. “Bidirectional LSTM with self-attention mechanism and multi-channel features for sentiment classification,” Weijiang Li et al., Neurocomputing Vol 387, 28 de abril de 2020.
7. “Parallel Scheduling Self-attention Mechanism: Generalization and Optimization,” Mingfei Yu and Masahiro Fujita, arXiv:2012.01114v1, 2 de dezembro de 2020.
8. “Exploring Self-attention for Image Recognition,” Hengshuang Zhao, Jiaya Jia and Vladlen Koltun, Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, 2020.