Sequência a sequência (frequentemente abreviada como seq2seq) é uma família de abordagens de aprendizado de máquina usadas para processamento de linguagem natural e outras tarefas de transdução de sequências. O framework transforma uma sequência em outra, como converter uma frase em inglês para francês, gerar uma legenda a partir de uma imagem ou produzir um resumo a partir de um texto mais longo. Originalmente desenvolvido por Lê Viết Quốc, um cientista da computação vietnamita e pioneiro em aprendizado de máquina no Google Brain, o seq2seq tornou-se fundamental em muitos sistemas modernos de IA, incluindo grandes modelos de linguagem e agentes conversacionais.
A ideia central do seq2seq é usar duas redes neurais: um codificador que processa a sequência de entrada e comprime suas informações em um vetor de comprimento fixo (ou um conjunto de vetores de contexto), e um decodificador que gera a sequência de saída passo a passo a partir dessa representação. Essa arquitetura foi proposta pela primeira vez em 2014 e, desde então, evoluiu, com a introdução de mecanismos de atenção e do modelo transformer, para abordar limitações como o problema do gargalo e a falta de paralelização.
Raízes Históricas
As raízes conceituais do seq2seq estão na teoria da informação e no modelo de canal ruidoso da tradução automática. Já em 1947, Warren Weaver, pioneiro em tradução automática, observou: "Naturalmente, pergunta-se se o problema da tradução poderia ser tratado como um problema de criptografia. Quando olho para um artigo em russo, digo: 'Isto está realmente escrito em inglês, mas foi codificado em alguns símbolos estranhos. Agora vou proceder à decodificação.'" Esse ponto de vista enquadrou a tradução como um processo de codificar-transmitir-decodificar, que inspirou diretamente a estrutura codificador-decodificador.
No início dos anos 2010, pesquisadores começaram a desenvolver modelos codificador-decodificador baseados em redes neurais para transdução de sequências. Os dois artigos mais comumente citados como originadores do seq2seq foram ambos publicados em 2014. Um foi de Ilya Sutskever, Oriol Vinyals e Quoc V. Le, trabalhando no Google Brain, e o outro de Kyunghyun Cho, Bart van Merriënboer, Dzmitry Bahdanau e Yoshua Bengio, da Universidade de Montreal e da Universidade Jacobs. Esses artigos propuseram o uso de redes neurais recorrentes (RNNs), especificamente redes de memória de longo prazo (LSTM), tanto para o codificador quanto para o decodificador.
O Problema do Gargalo e a Atenção
Os modelos seq2seq originais usavam um vetor de codificação de comprimento fixo, o que criava um problema de "gargalo": para sequências de entrada longas, a informação tendia a ser perdida porque era difícil comprimir todos os detalhes necessários em um único vetor. Para resolver isso, Bahdanau et al. introduziram o mecanismo de atenção em 2014. Seu modelo, chamado RNNsearch, permitia que o decodificador "buscasse" através da frase de origem durante a decodificação, efetivamente emulando o processo de olhar de volta para partes relevantes da entrada. A atenção calcula uma soma ponderada dos estados ocultos do codificador, produzindo um vetor de contexto para cada etapa de decodificação, o que resolveu o gargalo ao dar ao decodificador acesso direto a todas as posições de entrada.
A Revolução do Transformer
Uma limitação significativa dos modelos seq2seq baseados em RNN era sua dificuldade de paralelização, pois o processamento recorrente é inerentemente sequencial. A publicação de 2017 da arquitetura transformer por Vaswani et al. (com contribuidores-chave incluindo Jakob Uszkoreit e Lukasz Kaiser) resolveu esse problema substituindo o codificador recorrente por blocos transformer de autoatenção (chamados "blocos codificadores") e o decodificador recorrente por blocos transformer de atenção cruzada com mascaramento causal ("blocos decodificadores"). Isso permitiu um treinamento muito mais rápido em hardware paralelo e levou ao desenvolvimento de modelos em larga escala, como grandes modelos de linguagem e sistemas de IA generativa.
Arquitetura
A arquitetura seq2seq consiste em dois componentes principais: o codificador e o decodificador.
Codificador
O codificador processa a sequência de entrada, tipicamente uma sequência de tokens ou palavras, e captura suas informações essenciais. Em um codificador baseado em RNN, essas informações são armazenadas no estado oculto da rede. Com atenção, o codificador também produz um conjunto de estados ocultos para cada posição de entrada, que são usados para calcular vetores de contexto. O codificador pode ser bidirecional, o que significa que ele lê a entrada em ambas as direções para capturar melhor o contexto.
Decodificador
O decodificador recebe os vetores de contexto e os estados ocultos do codificador e gera a sequência de saída autoregressivamente, produzindo um elemento por vez. Em cada etapa, ele considera elementos gerados anteriormente, o vetor de contexto e as informações de entrada para prever o próximo elemento. Em modelos com atenção, o vetor de contexto e o estado oculto do decodificador são concatenados para formar um vetor oculto de atenção, que é usado como entrada para a próxima etapa. O decodificador é frequentemente mascarado causalmente para impedir que ele olhe adiante para tokens futuros durante o treinamento.
Treinamento vs. Predição
Há uma diferença sutil entre treinamento e predição em modelos seq2seq. Durante o treinamento, tanto a sequência de entrada quanto a de saída são conhecidas, permitindo o uso de uma técnica chamada "teacher forcing". No teacher forcing, a entrada do decodificador em cada etapa é o token de saída de referência dos dados de treinamento, independentemente do que o modelo previu. Isso acelera a convergência e estabiliza o treinamento.
Durante a predição (inferência), a saída de referência não está disponível, então o decodificador deve usar seus próprios tokens gerados anteriormente como entrada para a próxima etapa. Isso pode levar ao acúmulo de erros, pois um erro no início da sequência pode se propagar. Para mitigar isso, técnicas como busca em feixe são frequentemente usadas para explorar múltiplas sequências candidatas e selecionar a mais provável.
Aplicações
Modelos seq2seq foram aplicados a uma ampla gama de tarefas. Em tradução automática, eles permitiram a reformulação do Google Translate no Google Neural Machine Translation em 2016. Outras aplicações incluem legendagem de imagens, onde o codificador processa uma imagem (via uma rede neural convolucional) e o decodificador gera uma descrição textual; modelos conversacionais, como chatbots; reconhecimento de fala, mapeando sequências de áudio para texto; e sumarização de texto, comprimindo documentos longos em resumos concisos. A arquitetura também sustenta muitos modelos modernos baseados em transformer usados em sistemas de inteligência artificial.
Disputa de Prioridade
Uma disputa de prioridade notável envolve a invenção do seq2seq. Tomáš Mikolov, conhecido por desenvolver word2vec e RNNLM, afirma ter concebido a ideia de usar um modelo de linguagem neural em pares de frases e gerar tradução após ver a primeira frase, o que ele equipara à tradução automática seq2seq. Ele declarou que mencionou essa ideia a Ilya Sutskever e Quoc Le enquanto estava no Google Brain, mas eles não o reconheceram em seu artigo de 2014. O artigo de Sutskever et al. é amplamente creditado como um originador-chave, mas as contribuições de Mikolov permanecem um tema de debate na comunidade de pesquisa.
Legado e Impacto
O seq2seq teve um impacto profundo no campo do aprendizado de máquina. Ele introduziu o paradigma codificador-decodificador que agora é padrão em tarefas de transdução de sequências. O mecanismo de atenção, inicialmente desenvolvido para seq2seq, tornou-se um componente fundamental da arquitetura transformer, que alimenta grandes modelos de linguagem modernos, como aqueles desenvolvidos por OpenAI, Anthropic e Google DeepMind. Os princípios do seq2seq também são aplicados em hardware especializado e serviços em nuvem, como AWS Trainium e Azure, que são otimizados para treinamento e inferência de tais modelos. A partir do início dos anos 2020, o seq2seq permanece um conceito central em currículos e pesquisas de aprendizado profundo, embora muitos sistemas de produção tenham migrado para arquiteturas baseadas em transformer que se constroem sobre seus fundamentos.