A arquitetura transformer é um tipo de rede neural construída em torno da autoatenção. Em vez de depender principalmente de um processamento passo a passo, ela permite que cada token reúna informações de outros tokens relevantes na sequência.
É por isso que transformers funcionam bem para linguagem e outras tarefas sequenciais. Se uma palavra depende de outra palavra que está muito distante, a atenção dá ao modelo um caminho direto entre elas.
O que significa arquitetura transformer
Um bloco transformer faz mais do que aplicar uma única fórmula, mas a autoatenção é a ideia central. Na autoatenção, cada token produz três vetores:
- uma query, que representa o que esse token está procurando
- uma key, que representa o que esse token oferece para correspondência
- um value, que é a informação que pode ser transmitida
Se as representações dos tokens estiverem organizadas em uma matriz , uma cabeça de atenção normalmente forma
onde , e são matrizes aprendidas.
A fórmula padrão da atenção por produto escalar escalado é
Aqui, é a dimensão das keys. O escalonamento por ajuda a evitar que os escores brutos do produto escalar fiquem grandes demais à medida que a dimensão cresce.
O softmax é aplicado linha por linha. Cada linha responde à pergunta de um token: "Quanta atenção devo dar aos outros tokens?"
Como a autoatenção funciona em linguagem simples
A autoatenção normalmente não escolhe um token e ignora o resto. Ela constrói uma média ponderada dos vetores de valor.
Se um token corresponde fortemente à key de outro token, esse token recebe um peso maior. Se a correspondência é fraca, o peso é menor. A saída para um token é, portanto, uma mistura de informações da sequência que leva o contexto em conta.
Isso ajuda com concordância entre sujeito e verbo, referência pronominal e outras relações de longo alcance. O modelo não precisa que a informação passe por muitas etapas intermediárias antes de ficar disponível.
Exemplo resolvido de autoatenção
Considere uma query e dois tokens candidatos em uma única cabeça de atenção. Para manter a aritmética simples, use .
Suponha que o token atual tenha a query
e que os dois tokens candidatos tenham
com values
Os escores brutos de atenção são os produtos escalares:
Como , o fator de escala é , então os escores escalados continuam sendo e .
Agora aplique softmax a esses dois escores:
A saída da atenção é a combinação ponderada
A ideia principal é simples: a saída fica mais próxima de porque a query correspondeu a mais fortemente do que a .
Esse é o padrão básico dentro de um modelo muito maior. Transformers reais fazem isso em dimensões mais altas e com muitos tokens ao mesmo tempo, mas a ideia aritmética é a mesma.
O que mais existe dentro de um bloco transformer
Um transformer é mais do que uma fórmula de atenção. Um bloco padrão geralmente contém:
- atenção multi-head, para que o modelo possa aprender vários tipos de relações ao mesmo tempo
- uma rede feedforward aplicada por posição, que transforma cada representação de token após a atenção
- conexões residuais, que ajudam a preservar e refinar informações entre camadas
- normalização de camada, que ajuda a estabilizar o treinamento
Na arquitetura transformer original para tarefas sequência a sequência, o modelo tinha uma pilha de encoder e uma pilha de decoder.
- O encoder usa autoatenção sobre a sequência de entrada.
- O decoder usa autoatenção mascarada para que uma posição não possa olhar para tokens futuros da saída.
- O decoder também pode usar atenção cruzada, em que as queries vêm do decoder e as keys e values vêm da saída do encoder.
Muitos modelos de linguagem modernos usam apenas o lado do decoder. A ideia central de atenção continua presente, mas a arquitetura geral é especializada para prever o próximo token.
Por que transformers precisam de informação posicional
A atenção sozinha é equivariante a permutações em relação aos tokens de entrada. Em linguagem simples, se você aplicar apenas atenção ao mesmo conjunto de vetores de tokens sem adicionar posição, o modelo não sabe inerentemente qual token veio primeiro.
É por isso que transformers adicionam informação posicional, como embeddings de posição aprendidos ou codificações posicionais. Sem esse sinal extra, tarefas sensíveis à ordem, como linguagem, seriam muito mais difíceis de modelar corretamente.
Erros comuns sobre a arquitetura transformer
Pensar que atenção é o transformer inteiro
Ela é a ideia central, mas a arquitetura também depende de camadas feedforward, caminhos residuais, normalização e informação posicional.
Confundir autoatenção com atenção cruzada
Na autoatenção, , e vêm da mesma sequência. Na atenção cruzada, eles não vêm todos da mesma fonte.
Esquecer o papel do mascaramento
Modelos de linguagem somente com decoder precisam de mascaramento causal durante o treinamento e a inferência para que um token não possa prestar atenção a tokens futuros.
Tratar os pesos de atenção como uma explicação completa
Os pesos de atenção podem ser informativos, mas não são uma prova completa do raciocínio do modelo. O comportamento final também depende dos vetores de valor, das camadas posteriores e de transformações não lineares.
Quando modelos transformer são usados
Transformers são amplamente usados em modelagem de linguagem, tradução, sumarização, geração de código, fala e muitas tarefas de visão computacional. Eles funcionam especialmente bem quando relações ao longo de uma sequência ou conjunto importam mais do que padrões puramente locais.
Eles não são mágicos para qualquer cenário. Para conjuntos de dados muito pequenos, restrições rígidas de tempo real ou problemas em que a estrutura indutiva local importa mais, outra arquitetura ainda pode ser mais adequada.
Tente um problema parecido
Pegue uma frase de três palavras e foque em uma delas. Decida quais das outras palavras devem receber peso alto de atenção e por quê, depois esboce um pequeno exemplo de query-key-value que combine com essa intuição.
Se quiser ir um passo além, calcule manualmente uma pequena saída de atenção. Esse costuma ser o caminho mais rápido para sair de "eu conheço a fórmula" e chegar a "eu entendo o que a arquitetura está fazendo".
Precisa de ajuda com um problema?
Envie sua pergunta e receba uma solução verificada, passo a passo, em segundos.
Abrir GPAI Solver →