antonio leandro

ia generativa

Sequence to Sequence Learning with Neural Networks

paper · Ilya Sutskever, Oriol Vinyals, Quoc V. Le ·

a tese

dá para traduzir sem pipeline: um lstm comprime a frase inteira num vetor de tamanho fixo e outro a reescreve na língua de destino — e inverter as palavras da origem rende quase 5 pontos de bleu de graça

o que fica

  1. Uma frase de qualquer tamanho cabe num vetor de tamanho fixo — aqui, 8.000 números — e o decoder é só um language model condicionado nesse vetor.
  2. Inverter a ordem das palavras da frase de origem, sem mexer na de destino, derrubou a perplexidade de 5,8 para 4,7 e subiu o BLEU de 25,9 para 30,6, sem tocar na arquitetura.
  3. Um LSTM sozinho não bateu o sistema estatístico: fez 30,59 contra 33,30 do baseline. O 34,81 anunciado é um ensemble de cinco modelos.
  4. Beam search largo importa pouco: com beam 2 o ensemble já chega a 34,50 dos 34,81 obtidos com beam 12, e mesmo com beam 1 fica em 33,00.
  5. O melhor número do paper (36,5) veio de reordenar as 1.000 hipóteses do sistema SMT — ou seja, ainda dependia do sistema que pretendia substituir.
  6. A forma de codificar os dados pode valer mais que a arquitetura: a conclusão dos autores é procurar a formulação do problema com o maior número de dependências de curto prazo.

o problema

Rede neural profunda, em 2014, era uma função de vetor fixo para vetor fixo. Você entrega 224x224 pixels e recebe 1.000 probabilidades de classe. Isso resolve visão e boa parte de fala, e não resolve nada onde o comprimento da entrada e o da saída não são conhecidos de antemão — tradução, resposta a pergunta, legendagem. Uma RNN estende a ideia para sequências, mas só quando o alinhamento entre entrada e saída é conhecido e as duas têm o mesmo tamanho: um passo de entrada, um passo de saída. Tradução quebra as duas condições. As frases têm tamanhos diferentes e o alinhamento não é monotônico: a ordem das palavras muda entre as línguas.

O estado da arte era outra coisa: sistemas estatísticos baseados em frases, um encadeado de tabelas de alinhamento, modelos de linguagem, pesos ajustados e um decoder próprio. Redes neurais entravam como peça auxiliar desse encadeado — o uso mais confiável era reordenar a lista de n melhores hipóteses que o sistema estatístico já tinha produzido. Ninguém tinha mostrado uma rede treinada de ponta a ponta traduzindo sozinha e ganhando.

a ideia

Duas redes, não uma. A primeira lê a frase de origem palavra por palavra e não produz nada; quando chega ao fim, o último estado escondido dela é a frase inteira, comprimida. A segunda começa desse estado e escreve a tradução palavra por palavra, cada uma condicionada ao vetor e ao que já escreveu. Um símbolo de fim de frase, o <EOS>, encerra as duas pontas — é ele que permite ao modelo definir uma distribuição sobre sequências de qualquer comprimento, em vez de exigir um tamanho combinado antes.

Nada disso pressupõe estrutura linguística. Não há tabela de frases, não há alinhamento, não há gramática. O objetivo de treino é maximizar o log da probabilidade da tradução correta dada a frase de origem, e só.

como funciona

O encoder e o decoder são LSTMs separados, com pesos próprios: dobra os parâmetros a um custo computacional desprezível e deixa natural treinar vários pares de línguas ao mesmo tempo. Cada um tem 4 camadas de 1.000 células e embeddings de 1.000 dimensões — cada camada extra tirou perto de 10% da perplexidade. O estado que atravessa da leitura para a escrita são 8.000 números. O total dá 384 milhões de parâmetros, dos quais 64 milhões são conexões recorrentes de fato.

O vocabulário é fixo: 160.000 palavras na origem, 80.000 no destino, tudo fora disso vira UNK. A saída é um softmax ingênuo sobre as 80.000 a cada passo.

Três detalhes de engenharia carregam o resultado. Primeiro, a frase de origem entra invertida — c, b, a para produzir α, β, γ. A distância média entre palavras correspondentes não muda, mas as primeiras palavras da origem passam a ficar coladas nas primeiras do destino, o que reduz o “minimal time lag” e dá ao backpropagation por onde começar. Segundo, o decoding é um beam search da esquerda para a direita: mantém B hipóteses parciais, estende cada uma com todas as palavras do vocabulário, descarta tudo menos as B mais prováveis, e tira da beam qualquer hipótese que receba <EOS>. Terceiro, SGD sem momentum com taxa fixa de 0,7 até a época 5, depois metade a cada meia época, 7,5 épocas no total; inicialização uniforme entre -0,08 e 0,08; clipping duro da norma do gradiente em 5. Minibatches de 128 montados com frases de comprimento parecido — só isso deu 2x de velocidade. Uma GPU fazia 1.700 palavras por segundo; com 8 GPUs, uma camada em cada e quatro só para o softmax, chegou a 6.300, e o treino levou cerca de dez dias sobre 12 milhões de pares de frases.

o que isso custou

O número de manchete é um ensemble. Um LSTM invertido sozinho fez 30,59 BLEU, abaixo dos 33,30 do sistema estatístico; foram precisos cinco modelos, diferindo só na inicialização e na ordem dos minibatches, para chegar a 34,81. E 34,81 continua abaixo dos 37,0 do melhor sistema do WMT’14. O 36,5 é melhor, mas é reordenação das 1.000 hipóteses do baseline — não é tradução direta, e o oracle da mesma lista fica perto de 45, o que mostra quanto ainda ficou na mesa.

O vocabulário fixo é uma perda real: toda palavra fora das 80.000 vira UNK, e o BLEU é penalizado por isso enquanto o sistema estatístico opera sem limite de vocabulário. O softmax ingênuo sobre 80.000 palavras é caro a ponto de consumir metade da máquina.

E os autores não explicam a inversão. Dizem que não têm explicação completa e oferecem uma hipótese sobre dependências de curto prazo. Também admitem que esperavam o contrário do que aconteceu em frases longas, e que não chegaram a verificar se uma RNN comum treinaria com a origem invertida.

onde isso aparece hoje

O formato pegou: encoder, decoder, <EOS>, beam search, treino de ponta a ponta. É o desenho que a tradução neural adotou e que o transformer herdou — trocando a recorrência por attention, mas mantendo a divisão entre quem lê e quem escreve.

O gargalo do vetor único foi atacado quase ao mesmo tempo. O paper cita Bahdanau et al. como trabalho concorrente que usa attention justamente para escapar do vetor de tamanho fixo, e aponta 28,45 de BLEU para eles à época. Attention venceu, e o truque de inverter a origem morreu junto: era um remendo para um problema que attention removeu. O UNK também caiu depois, com vocabulários de subpalavras. O que sobreviveu foi a tese de fundo — se há dados o bastante, o mapeamento sequência a sequência aprende sozinho a estrutura que os sistemas anteriores codificavam à mão.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·