Curso
A linguagem é fundamental para a comunicação humana, e automatizá-la pode trazer imensos benefícios. Os modelos de processamento de linguagem natural (PLN) lutaram durante anos para capturar com eficácia as nuances da linguagem humana, até que houve um avanço: o mecanismo de atenção.
O mecanismo de atenção foi apresentado em 2017 no artigo Attention Is All You Need. Diferentemente dos métodos tradicionais que tratam as palavras isoladamente, a atenção atribui pesos a cada palavra com base em sua relevância para a tarefa atual. Isso permite que o modelo capte dependências de longo alcance, analise contextos locais e globais simultaneamente e resolva ambiguidades atendendo a partes informativas da frase.
Considere a seguinte frase: "Miami, conhecida como a 'cidade mágica', tem belas praias de areia branca." Os modelos tradicionais processariam cada palavra em ordem. O mecanismo de atenção, no entanto, funciona mais como nosso cérebro. Ele atribui uma pontuação a cada palavra com base em sua relevância para a compreensão do foco atual. Palavras como "Miami" e "praias" tornam-se mais importantes ao considerar a localização, portanto, receberiam pontuações mais altas.
Neste artigo, forneceremos uma explicação intuitiva do mecanismo de atenção. Você também pode encontrar uma abordagem mais técnica neste tutorial sobre como os transformadores funcionam. Vamos mergulhar de cabeça!
Modelos tradicionais de idiomas
Vamos começar nossa jornada para entender o mecanismo de atenção considerando o contexto mais amplo dos modelos de linguagem.
Noções básicas de processamento de idiomas
Os modelos de linguagem processam a linguagem tentando entender a estrutura gramatical (sintaxe) e o significado (semântica). O objetivo é produzir uma linguagem com a sintaxe e a semântica corretas que sejam relevantes para a entrada.
Os modelos de linguagem dependem de uma série de técnicas para decompor e entender o texto:
- Análise: Essa técnica analisa a estrutura da frase, atribuindo classes gramaticais (substantivo, verbo, adjetivo etc.) a cada palavra e identificando relações gramaticais.
- Tokenização: O modelo divide as frases em palavras individuais (tokens), criando os blocos de construção para a realização da análise semântica (você pode saber mais sobre tokenização em uma postagem de artigo separada).
- Derivação: Essa etapa reduz as palavras à sua forma de raiz (por exemplo, "walking" torna-se "walk"). Isso garante que o modelo trate palavras semelhantes de forma consistente.
- Reconhecimento de entidades e extração de relacionamentos: Essas técnicas trabalham juntas para identificar e categorizar entidades específicas (como pessoas ou lugares) no texto e descobrir seus relacionamentos.
- Embeddings de palavras: Por fim, o modelo cria uma representação numérica para cada palavra (um vetor), capturando seu significado e conexões com outras palavras. Isso permite que o modelo processe o texto e execute tarefas como tradução ou resumo.
As limitações dos modelos tradicionais
Embora os modelos de linguagem tradicionais tenham preparado o caminho para os avanços na PNL, eles enfrentaram desafios para compreender totalmente as complexidades da linguagem natural:
- Contexto limitado: Os modelos tradicionais geralmente representavam o texto como um conjunto de tokens individuais, deixando de capturar o contexto mais amplo de uma frase. Isso dificultava a compreensão de como as palavras distantes em uma frase poderiam estar relacionadas.
- Contexto breve: A janela de contexto que esses modelos consideravam durante o processamento geralmente era limitada. Isso significa que eles não conseguiam capturar dependências de longo alcance, em que palavras distantes em uma frase influenciam o significado umas das outras.
- Problemas de desambiguação de palavras: Os modelos tradicionais tiveram dificuldades para desambiguar palavras com vários significados com base apenas nas palavras ao redor. Eles não tinham a capacidade de considerar o contexto mais amplo para determinar o significado pretendido.
- Desafios de generalização: Devido às limitações da arquitetura de rede e à quantidade de dados de treinamento disponíveis, esses modelos geralmente têm dificuldade para se adaptar a situações novas ou inéditas (dados fora do domínio).
O que é atenção nos modelos de linguagem?
Ao contrário dos modelos tradicionais que tratam as palavras isoladamente, a atenção permite que os modelos de linguagem considerem o contexto. Vamos ver do que se trata!
Atenção é tudo o que você precisa
A mudança de jogo para o campo da PNL ocorreu em 2017, quando o artigo Attention Is All You Need apresentou o mecanismo de atenção.
Este documento propôs uma nova arquitetura chamada de transformador. Diferentemente dos métodos mais antigos, como as redes neurais recorrentes (RNNs) e as redes neurais convolucionais (CNNs), os transformadores usam mecanismos de atenção.
Ao resolver muitos dos problemas dos modelos tradicionais, os transformadores (e a atenção) se tornaram a base de muitos dos modelos de linguagem grandes (LLMs) mais populares da atualidade, como o GPT-4 e o ChatGPT da OpenAI.
Como funciona a atenção?
Vamos considerar a palavra "bat" nessas duas frases:
- "Balance o taco!"
- "O morcego voava à noite."
Os métodos tradicionais de incorporação atribuem uma única representação vetorial ao "bastão", limitando sua capacidade de distinguir o significado. Os mecanismos de atenção, no entanto, resolvem isso calculando pesos dependentes do contexto.
Eles analisam as palavras ao redor ("swing" versus "flew") e calculam as pontuações de atenção que determinam a relevância. Essas pontuações são então usadas para ponderar os vetores de incorporação, resultando em representações distintas para "bat" como uma ferramenta esportiva (peso alto em "swing") ou uma criatura voadora (peso alto em "flew").
Isso permite que o modelo capture nuances semânticas e melhore a compreensão.
O significado da atenção nos LLMs
Vamos agora nos basear em nosso entendimento intuitivo da atenção e aprender como o mecanismo vai além da tradicional incorporação de palavras para aprimorar a compreensão do idioma. Também veremos algumas aplicações da atenção no mundo real.
Além da incorporação de palavras tradicional
As técnicas tradicionais de incorporação de palavras, como Word2Vec e GloVe, representam palavras como vetores de dimensão fixa em um espaço semântico com base em estatísticas de co-ocorrência em um grande corpus de texto.
Embora esses embeddings capturem algumas relações semânticas entre as palavras, eles não são sensíveis ao contexto. Isso significa que a mesma palavra terá a mesma incorporação, independentemente de seu contexto em uma frase ou documento.
Essa limitação apresenta desafios em tarefas que exigem uma compreensão diferenciada da linguagem, especialmente quando as palavras têm significados contextuais diferentes. O mecanismo de atenção resolve esse problema, permitindo que os modelos se concentrem seletivamente em partes relevantes das sequências de entrada, incorporando, assim, a sensibilidade ao contexto no processo de aprendizado de representação.
Aprimorar a compreensão do idioma
A atenção permite que os modelos entendam as nuances e ambiguidades da linguagem, tornando-os mais eficientes no processamento de textos complexos. Alguns de seus principais benefícios são:
- Ponderação dinâmica: A atenção permite que os modelos ajustem dinamicamente a importância de determinadas palavras com base na relevância do contexto atual.
- Dependências de longo prazo: Ele possibilita a captura de relações entre palavras situadas a uma longa distância.
- Compreensão contextual: Além de representações contextualizadas, ele ajuda a resolver ambiguidades e torna os modelos adaptáveis a várias tarefas posteriores.
Aplicações e impactos
O impacto dos modelos de linguagem baseados em atenção tem sido enorme. Milhares de pessoas usam aplicativos criados com base em modelos baseados em atenção. Alguns dos aplicativos mais populares são:
- Tradução automática: Modelos como o Google Translate utilizam a atenção para se concentrar em partes relevantes da frase de origem e produzir traduções mais precisas do ponto de vista contextual.
- Resumo de texto: As frases ou sentenças importantes em um documento podem ser encontradas com atenção, facilitando resumos mais informativos e concisos.
- Resposta à pergunta: A atenção ajuda os modelos de aprendizagem profunda a alinhar as palavras da pergunta com partes relevantes do contexto, permitindo a extração precisa de respostas.
- Análise de sentimento: Os modelos de análise de sentimento empregam a atenção para capturar palavras que contêm sentimentos e seu significado contextual.
- Geração de conteúdo: Os modelos de geração de conteúdo utilizam a atenção para gerar conteúdo coerente e contextualmente relevante, garantindo que o texto gerado permaneça consistente com o contexto de entrada.
Mecanismos avançados de atenção
Agora que você já está mais familiarizado com o funcionamento da atenção, vamos dar uma olhada na autoatenção e na atenção de várias cabeças.
Auto-atenção e atenção a várias cabeças
A autoatenção permite que um modelo atenda a diferentes posições de sua sequência de entrada para calcular uma representação dessa sequência. Ele permite que o modelo pese a importância de cada palavra na sequência em relação às outras, capturando as dependências entre as diferentes palavras na entrada. O mecanismo tem três elementos principais:
- Consulta: Esse é um vetor que representa o foco atual ou a pergunta que o modelo tem sobre uma palavra específica na sequência. É como uma lanterna que o modelo ilumina em uma palavra específica para entender seu significado no contexto.
- Chave: Cada palavra tem um rótulo ou ponto de referência - o vetor-chave funciona como esse rótulo. O modelo compara o vetor de consulta com todos os vetores-chave para ver quais palavras são mais relevantes para responder à pergunta sobre a palavra em foco.
- Valor: Esse vetor contém as informações reais associadas a cada palavra. Depois que o modelo identifica as palavras relevantes por meio das principais comparações, ele recupera os vetores de valores correspondentes para obter os detalhes reais necessários para a compreensão.
As pontuações de atenção podem ser calculadas por meio de um produto escalonado de pontos entre a consulta e os vetores-chave. Por fim, essas pontuações são multiplicadas pelos vetores de valores para gerar uma soma ponderada de valores.
A atenção de várias cabeças é uma extensão do mecanismo de autoatenção. Ele aumenta a capacidade do modelo de capturar diversas informações contextuais ao atender simultaneamente a diferentes partes da sequência de entrada. Você consegue isso executando várias operações paralelas de autoatenção, cada uma com seu próprio conjunto de transformações aprendidas de consulta, chave e valor.
A atenção de várias cabeças leva a uma compreensão contextual mais refinada, maior robustez e expressividade.
Atenção: Desafios e soluções
Embora a implementação do mecanismo de atenção tenha vários benefícios, ela também traz seu próprio conjunto de desafios, que podem ser abordados por pesquisas em andamento.
Complexidade computacional
Os mecanismos de atenção envolvem a computação de semelhanças de pares entre todos os tokens na sequência de entrada, resultando em uma complexidade quadrática em relação ao comprimento da sequência. Isso pode ser computacionalmente caro, especialmente para sequências longas.
Várias técnicas foram propostas para reduzir a complexidade computacional, como mecanismos de atenção esparsos, métodos de atenção aproximados e mecanismos de atenção eficientes, como o hashing sensível à localidade do modelo Reformer.
Atenção ao overfitting
Os mecanismos de atenção podem se ajustar excessivamente a informações ruidosas ou irrelevantes na sequência de entrada, levando a um desempenho abaixo do ideal em dados não vistos.
As técnicas de regularização, como dropout e normalização de camadas, podem ajudar a evitar o ajuste excessivo em modelos baseados em atenção. Além disso, foram propostas técnicas como o abandono da atenção e o mascaramento da atenção para incentivar o modelo a se concentrar em informações relevantes.
Interpretabilidade e explicabilidade
Compreender como os mecanismos de atenção operam e interpretam seus resultados pode ser um desafio, principalmente em modelos complexos com várias camadas e cabeças de atenção. Isso levanta preocupações sobre a ética dessa nova tecnologia - você pode saber mais sobre a ética da IA em nosso curso ou ouvindo este podcast com o pesquisador de IA Dr. Joy Buolamwini.
Métodos para visualizar os pesos da atenção e interpretar seu significado foram desenvolvidos para aumentar a interpretabilidade dos modelos baseados em atenção. Além disso, técnicas como a atribuição de atenção visam identificar as contribuições de tokens individuais para as previsões do modelo, melhorando a explicabilidade.
Escalabilidade e restrições de memória
Os mecanismos de atenção consomem recursos computacionais e de memória significativos, o que torna difícil dimensioná-los para modelos e conjuntos de dados maiores.
As técnicas de dimensionamento de modelos baseados em atenção, como atenção hierárquica, atenção com eficiência de memória e atenção esparsa, visam reduzir o consumo de memória e a sobrecarga computacional, mantendo o desempenho do modelo.
Atenção: Resumo
Vamos resumir o que aprendemos até agora, concentrando-nos nas diferenças entre os modelos tradicionais e os baseados em atenção:
Recurso |
Modelos baseados em atenção |
Modelos tradicionais de PNL |
Representação de palavras |
Vetores de incorporação com reconhecimento de contexto (ponderados dinamicamente com base em pontuações de atenção) |
Vetores de incorporação estáticos (um único vetor por palavra, sem considerar o contexto) |
Foco |
Considera o significado das palavras ao redor (observando o contexto mais amplo) |
Trata cada palavra de forma independente |
Pontos fortes |
Captura dependências de longo alcance, resolve ambiguidades, compreende nuances |
Mais simples, computacionalmente mais barato |
Pontos fracos |
Pode ser computacionalmente caro |
Capacidade limitada de entender linguagem complexa, dificuldades com o contexto |
Mecanismo subjacente |
Redes de codificador-decodificador com atenção (várias arquiteturas) |
Técnicas como análise, stemming, reconhecimento de entidades nomeadas, incorporação de palavras |
Conclusão
Neste artigo, exploramos o mecanismo de atenção, uma inovação que revolucionou a PNL. Diferentemente dos métodos anteriores, a atenção permite que os modelos de linguagem se concentrem em partes cruciais de uma frase, considerando o contexto. Isso permite que eles compreendam a linguagem complexa, as conexões de longo alcance e a ambiguidade das palavras.
Você pode continuar aprendendo sobre o mecanismo de atenção:
- Para entender o contexto mais amplo, você pode fazer nosso curso Large Language Models (LLMs).
- Construindo um transformador com o PyTorch.