Arquitetura Transformer

Ponderar relações entre posições de uma sequência

Data
2017
Época
Época moderna
Etapa
V Era elétrica
Dificuldade
Índice
Legenda
  1. 1Representações e posições de entrada
  2. 2Codificador com autoatenção
  3. 3Saídas anteriores e posições
  4. 4Descodificador com autoatenção mascarada
  5. 5Atenção às saídas do codificador
  6. 6Projeção e probabilidades de saída

O Transformer é uma arquitetura de rede neuronal publicada em 2017 por Ashish Vaswani e os seus coautores. Processa sequências através de atenção, transformações numéricas e informação de posição; o modelo original inclui um codificador e um descodificador, estudados sobretudo para a tradução automática.

O que é

Um Transformer transforma uma sequência de representações numéricas noutra sequência. Para o texto, as unidades processadas, ou tokens, recebem vetores: listas de números que a rede modifica. Na arquitetura de tradução publicada em 2017, o codificador processa a entrada e o descodificador constrói a saída a partir dos elementos já disponíveis.

A rede aprende parâmetros com exemplos de treino. Depois de fixados os parâmetros, uma entrada determina um cálculo; a produção de texto depende também da forma de escolher as saídas. As redes neuronais, a tradução automática e os mecanismos de atenção já tinham uma história quando surgiu esta combinação. O seu contributo diz respeito a uma arquitetura precisa de processamento de sequências.

Como funciona

Esquema frontal de uma consulta que compara duas chaves e depois combina os valores associados Em cada par, a chave fica à esquerda e o valor à direita. Os valores ponderados combinam-se na saída.

A atenção forma consultas, chaves e valores a partir das representações. O produto escalar da consulta com cada chave dá uma pontuação, dividida pela raiz quadrada da dimensão das chaves. O softmax calcula as exponenciais e divide-as pela sua soma. Os pesos obtidos permitem somar os valores ponderados. Uma consulta pode assim reunir informação proveniente de várias posições.

Na autoatenção, consultas, chaves e valores provêm da mesma sequência, através de projeções aprendidas distintas. Várias cabeças trabalham com projeções diferentes; as suas saídas são concatenadas e transformadas. O codificador relaciona as posições de entrada. O descodificador mascara as posições futuras da saída e consulta também as representações do codificador através de uma atenção separada.

A arquitetura inclui redes aplicadas a cada posição, ligações residuais que adicionam a entrada de uma subcamada ao seu resultado e normalizações. A informação de posição completa os vetores, porque as comparações de conteúdo, por si só, não fornecem a ordem da sequência. O modelo base descreve seis camadas de codificador, seis de descodificador e oito cabeças nas suas subcamadas de atenção com várias cabeças.

Na atenção entre codificador e descodificador, as consultas vêm do descodificador, enquanto as chaves e os valores vêm da saída do codificador. No modelo original, a normalização segue cada soma residual. Estas operações repetem-se em cada camada, cujos pesos aprendidos podem ser diferentes.

Durante o treino, os elementos conhecidos da saída esperada são deslocados antes de entrarem no descodificador. A máscara impede cada posição de usar elementos futuros, mesmo quando se calculam várias posições em conjunto. Durante a geração, o descodificador recebe os elementos já produzidos e calcula as probabilidades do elemento seguinte.

Como fazer

Um computador e uma calculadora chegam para experimentar uma operação de atenção. Escolha uma dimensão de chave igual a 1, uma consulta igual a 1, duas chaves ln(3) e 0, e dois valores 2 e 6. Aqui, ln significa logaritmo natural. Os números são escolhidos para o cálculo, sem treino prévio.

Uma matriz quadrada de três linhas e três colunas com as casas acima da diagonal tracejadas Uma máscara causal bloqueia as posições futuras acima da diagonal: as linhas são consultas e as colunas são chaves.

As pontuações são ln(3) e 0, pois a raiz quadrada de 1 é 1. As suas exponenciais valem 3 e 1, cuja soma é 4. Os pesos são, portanto, 3/4 e 1/4. A saída vale (3/4 × 2) + (1/4 × 6) = 3. O peso maior não elimina automaticamente a outra contribuição.

Repita o cálculo proibindo a segunda chave. Atribua à sua pontuação menos infinito antes do softmax: a sua exponencial passa a valer 0. Os pesos tornam-se 1 e 0 e a saída vale 2. Numa sequência, esta regra impede uma posição de consultar elementos seguintes. Uma máscara triangular mantém acessíveis a posição atual e as anteriores.

Treinar uma rede completa exige definir as representações, todas as camadas, os dados, o objetivo de aprendizagem e os ajustes dos parâmetros.

História e evolução

Bahdanau, Cho e Bengio propuseram em 2014 um mecanismo de alinhamento aprendido para tradução neuronal, apresentado na ICLR em 2015. O seu descodificador podia ponderar diferentes partes da frase de origem. A autoatenção também foi explorada antes do Transformer, como reconhece o artigo de 2017.

A 12 de junho de 2017, Vaswani e sete coautores depositaram Attention Is All You Need no arXiv. Construíram um codificador e um descodificador sem recorrência nem convolução para relacionar posições. O cálculo das representações permitia maior paralelismo, enquanto a geração autorregressiva continuava a produzir elementos sucessivamente.

Desenvolvimentos posteriores utilizam codificadores, descodificadores ou ambos para outras tarefas. Estas variantes alteram utilizações e treino. A arquitetura publicada em 2017 continua a ser o ponto de partida da família Transformer.


Escreva um nome, uma data, um material, um domínio…