O que é um modelo de codificadores-decodificadores?

Autores

Jacob Murel Ph.D.

Senior Technical Content Creator

Joshua Noble

Data Scientist

Codificadores-decodificadores é um tipo de arquitetura de redes neurais utilizada para processamento de dados e geração de dados.

Em deep learning, a arquitetura de codificadores-decodificadores é um tipo de rede neural mais amplamente associada à arquitetura de transformação e utilizada no aprendizado de sequência a sequência. Portanto, a literatura se refere a codificadores-decodificadores às vezes como uma forma de modelo de sequência para sequência (modelo seq2sea). Grande parte da pesquisa sobre aprendizado de máquina se concentra em modelos de codificadores-decodificadores para tarefas de processamento de linguagem natural (NLP) que envolvem grandes modelos de linguagem (LLMs).

Modelos de codificadores-decodificadores são usados para lidar com dados sequenciais, mapeando especificamente sequências de entrada para sequências de saída de diferentes comprimentos, como tradução automática neural, sumarização de texto, legendas de imagens e reconhecimento de fala. Nessas tarefas, o mapeamento de um token na entrada para um na saída geralmente é indireto. Por exemplo, considere a tradução automática: em alguns idiomas, o verbo aparece próximo ao início da frase (como em inglês), em outros no final (como o alemão) e, em alguns, a localização do verbo pode ser mais variável (por exemplo, latim). Uma rede de codificadores-decodificadores gera sequências de saída de comprimento variável, mas contextualmente apropriadas, para corresponder a uma determinada sequência de entrada.1

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

A arquitetura de codificadores-decodificadores

Como pode ser inferido a partir de seus respectivos nomes, o codificador codifica uma determinada entrada em uma representação vetorial, e o decodificador decodifica esse vetor no mesmo tipo de dado do conjunto de dados de entrada original.

Tanto o codificador quanto o decodificador são redes neurais separadas e totalmente conectadas. Podem ser redes neurais recorrentes (RNNs) — mais suas variantes memória de longo prazo (LSTM), unidades recorrentes fechadas (GRUs) — e redes neurais convolucionais (CNNs), bem como modelos de transformadores. Um modelo de codificadores-decodificadores normalmente contém vários codificadores e vários decodificadores.

Diagrama de arquitetura de codificadores-decodificadores

Cada codificador consiste em duas camadas: a camada de autoatenção (ou mecanismo de autoatenção) e a rede neural feed-forward. A primeira camada orienta o codificador no levantamento e foco em outras palavras relacionadas em um determinada entrada, pois codifica uma palavra específica nela. A rede neural feed-forward processa ainda mais as codificações para que sejam aceitáveis para as camadas de codificadores ou decodificadores subsequentes.

A parte do decodificador também consiste em uma camada de autoatenção e uma rede neural feed-forward, bem como uma terceira camada adicional: a camada de atenção de codificadores-decodificadores. Essa camada concentra a atenção da rede em partes específicas da saída do codificador. A camada de atenção de várias cabeças mapeia tokens de duas sequências diferentes.2

Diagrama de partes de stacks de codificadores e decodificadores

Como funcionam os modelos de codificadores-decodificadores

A literatura amplamente apresenta os modelos de codificadores-decodificadores como composto por três componentes: o codificador, o vetor de contexto e o decodificador.3

Codificador

O componente principal do codificador é o mecanismo de autoatenção. O mecanismo de autoatenção determina os pesos do token em uma entrada de texto para refletir as relações entre tokens. Em contraste com a embedding tradicional que ignora a ordem das palavras, a autoatenção processa toda a sequência de texto de entrada para calcular a embedding média ponderada de cada token, que leva em conta a distância desse token de todos os outros tokens na sequência de texto. Ele calcula essa embedding média como uma combinação linear de todas as embeddings para a sequência de entrada de acordo com a seguinte fórmula:

O codificador de entrada de fórmula de sequência matemática descrevendo x prime sub i igual à soma de j igual a 1 a n de w sub ji vezes x sub j

Aqui, xj é um token de entrada fornecido na j-ésima posição na string de texto de entrada, e xi é o token de saída correspondente na i-ésima posição na string de texto de entrada. O coeficiente wij é o peso de atenção, que é calculado usando o que é chamado de função softmax e representa o quão importante é aquele token no texto de saída para a sequência de origem correspondente. Em outras palavras, esse coeficiente sinaliza quanta atenção o codificador deve dar a cada token no texto de saída em relação à importância do token original no texto de origem.4

Diagrama mostrando embeddings de palavras combinadas com codificação posicional para criar embeddings com sinal de tempo para três palavras: Alas, poor, Yorick

O codificador passa essa embedding de token para a camada feed-forward, que adiciona uma codificação posicional (ou embedding posicional) à embedding do token. Essa codificação posicional é responsável pela ordem dos tokens em um texto, especificamente a distância entre os tokens. Juntas, essa embedding de token e a embedding posicional compõem o estado oculto transmitido ao decodificador.5

Vetores de contexto

A literatura chama amplamente o estado oculto final do codificador de vetor de contexto. É uma representação numérica condensada do texto de entrada inicial do codificador. Mais simplesmente, é a embedding e a codificação posicional produzidas pelo codificador para cada palavra na sequência de entrada.

A literatura frequentemente define o vetor de contexto usando a seguinte função, na qual o vetor de contexto X é definido como cada token (x) na iª posição na sequência de entrada:6

Fórmula de função de vetores de contexto mostrando C igual a uma sequência de valores x de 1 a n sub x

Decodificador

Assim como o codificador, o decodificador é composto por uma camada de autoatenção e uma rede feed-forward. Entre eles, o decodificador contém uma camada de mascaramento de atenção de várias cabeças. Isso marca a diferença entre o codificador e o decodificador. Enquanto o codificador gera embeddings de token contextualizados simultaneamente, a camada de atenção de várias cabeças do decodificador utiliza mascaramento autorregressivo.

Primeiro, o decodificador recebe o vetor de contexto do codificador. O decodificador usa esses embeddings posicionais para calcular as pontuações de atenção para cada token. Essas pontuações de atenção determinam em que grau cada token da sequência de entrada afetará tokens posteriores nele; em outras palavras, as pontuações determinam quanto peso cada token tem nas determinações de outros tokens ao gerar sequências de saída.

Uma funcionalidade importante disso, no entanto, é que o decodificador não usará tokens futuros para determinar tokens anteriores na mesma sequência. A saída gerada por cada token depende apenas dos tokens anteriores; em outras palavras, ao gerar a saída de um token, o decodificador não considera as próximas palavras ou tokens após o atual. Como acontece com muitas técnicas de inteligência artificial, ela visa imitar os entendimentos convencionais de como os humanos processam informações, especificamente a linguagem. Essa abordagem do processamento de informações é chamada de autorregressiva.7

Diagrama de mascaramento autorregressivo de citação de Hamlet

Por que usar modelos de codificadores-decodificadores em NLP?

Uma das principais vantagens dos modelos de codificadores-decodificadores para tarefas de NLP posteriores, como análise de sentimento ou modelagem de linguagem mascarada, é sua saída de embeddings contextualizadas. Essas embeddings são distintas das embeddings de palavras fixas usadas nos modelos de bag of words.

Primeiro, as embeddings fixas não levam em conta a ordem das palavras. Assim, eles ignoram as relações entre tokens em uma sequência de texto. As embeddings contextualizadas, no entanto, levam em conta a ordem das palavras por meio de codificações posicionais. Além disso, as embeddings contextualizadas tentam capturar a relação entre os tokens por meio do mecanismo de atenção que considera a distância entre os tokens em uma determinada sequência ao produzir as embeddings.

As embeddings fixas geram uma embedding para um determinado token, combinando todas as instâncias desse token. Os modelos de codificadores-decodificadores produzem embeddings contextualizados para cada instância de token de um token. Como resultado, as embeddings contextualizadas lidam de forma mais hábil com palavras polissêmicas, ou seja, palavras com múltiplos significados. Por exemplo, moscas podem significar uma ação ou um inseto. Uma embedding de palavra fixa recolhe os múltiplos significados dessa palavra criando uma única embedding para o token ou palavra. Mas um modelo de codificadores-decodificadores gera embeddings contextualizadas individuais para cada ocorrência da palavra flies, e, assim, captura uma infinidade de significados por meio de múltiplas embeddings distintas.8

Mixture of Experts | 28 de agosto, episódio 70

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Tipos de variantes de codificadores-decodificadores

Como pode ser esperado, a arquitetura de codificadores-decodificadores tem muitas variantes, cada uma com seu caso de uso principal em ciência de dados e aprendizado de máquina.

Somente codificador. Esses modelos (também descritos como autocodificadores) usam apenas a stack de codificadores, evitando decodificadores. Esses modelos, portanto, não têm modelagem mascarada autorregressiva e têm acesso a todos os tokens na entrada inicial. Dessa forma, esses modelos são descritos como bidirecionais, pois usam todos os tokens circundantes (tanto anteriores quanto posteriores) para fazer previsões para um determinado token. Modelos de codificadores bem conhecidos são a família de modelos BERT, como BERT,9 RoBERTa,10 e ELECTRA,11 bem como os modelos IBM Slate. Modelos somente de codificador são frequentemente utilizados para tarefas que exigem a compreensão de uma entrada de texto inteiro, como classificação de texto ou named entity recognition.

Somente decodificadores. Esses modelos (também chamados de modelos autorregressivos) usam apenas a stack de decodificadores, renunciando a quaisquer codificadores. Assim, ao fazer previsões de tokens, as camadas de atenção do modelo só podem acessar os tokens que precedem o token em consideração. Os modelos somente de decodificadores são frequentemente usados para tarefas de geração de texto, como responder a perguntas, escrever código ou chatbots, como o ChatGPT. Um exemplo de modelo somente de decodificadores é a família IBM Granite de modelos de base da IBM.12

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real
Notas de rodapé

Jurafsky, D. e Martin, J.,  “Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition”, Third edition, 2023.

Telmo, P., Lopes, A. V., Assogba, Y. e Setiawan, H. “One Wide Feedforward Is All You Need” , 2023.
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L. e Polosukhin I. “Attention Is All You Need”, 2017.
Tunstall, L., Werra, L. and Wolf e T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022

3 Goodfellow, I., Bengio, Y. e Courville, A. “Deep Learning”, MIT Press, 2016.
Jurafsky, D. e Martin, J. “Speech and Language Processing”, Third Edition, 2023.
Tunstall, L., Werra, L. e Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022.

4 Tunstall, L., Werra, L. e Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022.
Goldberg, Y. “Neural network methods for Natural Language Processing”, Springer, 2022.

5 Alammar, J. e Grootendorst, M. “Hands-on Large Language Models”, O’Reilly, 2024.

6
Goodfellow, I., Bengio, Y. e Courville, A. “Deep Learning”, MIT Press, 2016.
Jurafsky, D. e Martin, J. “Speech and Language Processing”, Third Edition, 2023.

7 Foster, D. “Generative Deep Learning”, Second Edition, O’Reilly, 2023.
Rothman, D. “Transformers for Natural Language Processing”, Second Edition, 2022. 
Jurafsky, D. e Martin, J. Speech and Language Processing”, Third Edition, 2023.

8 Tunstall, L., Werra, L. e Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022. 

9 Devlin, J. et all. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”, 2019.

10 Liu, Y., Ott, M., Goyal, N., Du, J.,  Joshi, M., Chen,  D., Levy, O., Lewis, M. ,  Zettlemoyer,  L.  e Stoyanov, V. “RoBERTa: A Robustly Optimized BERT Pretraining Approach”,  2019.

11 Clark, K. et all. “ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators”,  2020.

12 Mayank, M. et all. “Granite Code Models: A Family of Open Foundation Models for Code Intelligence” 2024.
Ruiz, A. “IBM Granite Large Language Models Whitepaper” 2024.