¿Qué es un modelo codificador-decodificador?

Autores

Jacob Murel Ph.D.

Senior Technical Content Creator

Joshua Noble

Data Scientist

El codificador-decodificador es un tipo de arquitectura de red neuronal utilizada para el procesamiento secuencial de datos y la generación de datos.

En aprendizaje profundo, la arquitectura codificador-decodificador es un tipo de red neuronal más ampliamente asociada con la arquitectura transformadora y utilizada en el aprendizaje de secuencia a secuencia. Por lo tanto, la literatura se refiere a los codificadores-decodificadores a veces como una forma de modelo de secuencia a secuencia (modelo seq2seq). Gran parte de la investigación en machine learning se centra en modelos codificador-decodificador para tareas de procesamiento de lenguaje natural que involucran modelos de lenguaje grandes (LLM).

Los modelos de codificador-decodificador se emplean para manejar datos secuenciales, específicamente mapeando secuencias de entrada a secuencias de resultados de diferentes longitudes, como traducción automática neuronal, resumen de texto, subtítulos de imágenes y reconocimiento de voz. En tales tareas, asignar un token en la entrada a uno en la salida suele ser indirecto. Por ejemplo, tomemos la traducción automática: en algunos idiomas, el verbo aparece cerca del comienzo de la oración (como en inglés), en otros al final (como el alemán) y en algunos, la ubicación del verbo puede ser más variable (por ejemplo, latín). Una red de codificador-decodificador genera secuencias de salida de longitud variable, pero contextualmente apropiadas para corresponder a una secuencia de entrada determinada.1

Las últimas tendencias de IA presentadas por expertos

Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

La arquitectura codificador-decodificador

Como se puede inferir de sus respectivos nombres, el codificador codifica una entrada determinada en una representación vectorial, y el decodificador decodifica este vector en el mismo tipo de datos que el conjunto de datos de entrada original.

Tanto el codificador como el decodificador son redes neuronales separadas y completamente conectadas. Pueden ser redes neuronales recurrentes (RNN),además de sus variantes de memoria a corto plazo (LSTM), unidades recurrentes cerradas (GRU) y redes neuronales convolucionales (CNN), así como modelos de transformadores. Un modelo de codificador-decodificador suele contener varios codificadores y varios decodificadores.

Diagrama de la arquitectura de codificador-decodificador

Cada codificador consta de dos capas: la capa de autoatención (o mecanismo de autoatención) y la red neuronal de retroalimentación. La primera capa guía al codificador en la encuesta y el enfoque en otras palabras relacionadas en una entrada determinada, ya que codifica una palabra específica en ella. La red neuronal de adelante procesa aún más las codificaciones para que sean aceptables para las capas de codificador o decodificador posteriores.

La parte del decodificador también consta de una capa de autoatención y redes neuronales, así como una tercera capa adicional: la capa de atención del codificador-decodificador. Esta capa enfoca la atención de la red en partes específicas de la salida del codificador. La capa de atención de múltiples cabezales asigna tokens de dos secuencias diferentes.2

Diagrama de partes de pilas de codificador y decodificador

Cómo funcionan los modelos codificador-decodificador

La literatura presenta ampliamente los modelos codificador-decodificador que constan de tres componentes: el codificador, el vector de contexto y el decodificador.3

Codificador

El componente principal del codificador es el mecanismo de autoatención. El mecanismo de autoatención determina las ponderaciones de los tokens en una entrada de texto para reflejar las relaciones entre tokens. A diferencia de una incorporación tradicional que ignora el orden de las palabras, la autoatención procesa toda la secuencia de texto de entrada para calcular la incorporación promedio ponderada de cada token que tiene en cuenta la distancia de ese token de todos los demás tokens en la secuencia de texto. Calcula esta incorporación promedio como una combinación lineal de todas las incorporaciones para la secuencia de entrada según la siguiente fórmula:

Fórmula de secuencia matemática de entrada del codificador que representa x primo sub i es igual a la suma de j es igual a 1 a n de w sub ji veces x sub j

Aquí, xj es un token de entrada dado en la posición j en la cadena de texto de entrada y xi es el token de salida correspondiente en la posición i en la cadena de texto de entrada. El coeficiente wij es el peso de atención, que se calcula mediante lo que se denomina función softmax y representa la importancia de ese token en el texto de salida para la secuencia fuente correspondiente. En otras palabras, este coeficiente indica cuánta atención debe prestar el codificador a cada token en el texto de salida con respecto a la importancia del token original en el texto de origen.4

Diagrama que muestra incorporaciones de palabras combinadas con codificación posicional para crear incorporaciones con señal temporal para tres palabras: Alas, poor, Yorick

El codificador pasa esta incorporación de token a la capa de retroalimentación, que agrega una codificación posicional (o incorporación posicional) a la incorporación de token. Esta codificación posicional da cuenta del orden de los tokens en un texto, específicamente la distancia entre los tokens. En conjunto, esta incorporación de token y la incorporación posicional comprenden el estado oculto que se pasa al decodificador.5

Vector de contexto

La literatura denomina ampliamente el estado oculto final del codificador como vector de contexto. Es una representación numérica condensada del texto de entrada inicial del codificador. Más simplemente, es la incorporación y la codificación posicional producida por el codificador para cada palabra en la secuencia de entrada.

La literatura a menudo define el vector de contexto utilizando la siguiente función, en la que el vector de contexto X se define como cada token (x) en la i-ésima posición en la secuencia de entrada:6

Fórmula de función vectorial de contexto que muestra que C es igual a una secuencia de valores x de 1 a n sub x

Decodificador

Al igual que el codificador, el decodificador se compone de una capa de autoatención y una red de retroalimentación. Entre estos, el decodificador contiene una capa de enmascaramiento de atención de múltiples cabezales. Esto marca la diferencia entre el codificador y el decodificador. Mientras que el codificador genera incorporaciones de token contextualizadas simultáneamente, la capa de atención multicabezal del decodificador utiliza un enmascaramiento autorregresivo.

Primero, el decodificador recibe el vector de contexto del codificador. El decodificador utiliza estas incorporaciones posicionales para calcular las puntuaciones de atención para cada token. Estas puntuaciones de atención determinan en qué medida cada token de la entrada afectará a los tokens posteriores; en otras palabras, las puntuaciones determinan cuánto peso tiene cada token en las determinaciones de otros tokens al generar resultados.

Sin embargo, una característica importante de esto es que el decodificador no utilizará tokens futuros para determinar tokens anteriores en esa misma secuencia. La resultados generados por cada token dependen solo de los tokens anteriores; en otras palabras, al generar los resultados de un token, el decodificador no considera las siguientes palabras o tokens después del actual. Como es el caso de muchas técnicas de inteligencia artificial, esto tiene como objetivo imitar la comprensión convencional de cómo los humanos procesan la información, específicamente el lenguaje. Este enfoque del procesamiento de la información se denomina autorregresivo.7

Diagrama de enmascaramiento autorregresivo de la cita de Hamlet

¿Por qué usar modelos codificador-decodificador en NLP?

Una de las principales ventajas de los modelos codificador-decodificador para tareas de PLN posteriores, como el análisis de sentimientos o el modelado de lenguaje enmascarado, es su producción de incorporaciones contextualizadas. Estas incorporaciones son distintas de las incorporaciones de palabras fijas utilizadas en los modelos bag of words.

En primer lugar, las incorporaciones fijas no tienen en cuenta el orden de las palabras. Por lo tanto, ignoran las relaciones entre los tokens en una secuencia de texto. Sin embargo, las incorporaciones contextualizadas explican el orden de las palabras a través de codificaciones posicionales. Además, las incorporaciones contextualizadas intentan capturar la relación entre los tokens a través del mecanismo de atención que considera la distancia entre los tokens en una secuencia determinada al producir las incorporaciones.

Las incorporaciones fijas generan una incorporación para un token determinado, fusionando todas las instancias de ese token. Los modelos de codificador-decodificador producen incorporaciones contextualizadas para cada instancia de token de un token. Como resultado, las incorporaciones contextualizadas manejan de manera más hábil las palabras polisémicas, es decir, palabras con múltiples significados. Por ejemplo, flies puede significar una acción o un insecto. Una incorporación fija de palabra colapsa los múltiples significados de esta palabra creando una única incorporación para el token o la palabra. Pero un modelo de codificador-decodificador genera incorporaciones contextualizadas individuales para cada aparición de la palabra flies, y así captura sus múltiples significados a través de múltiples incorporaciones distintas.8

Mixture of Experts | 28 de agosto, episodio 70

Decodificación de la IA: Resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el revuelo de la IA para ofrecerle las últimas noticias e insights al respecto.

Tipos de variantes de codificador-decodificador

Como era de esperar, la arquitectura de codificador-decodificador tiene muchas variantes, cada una con sus propios casos de uso principales en ciencia de datos y machine learning.

Solo codificador. Estos modelos (también descritos como autocodificadores) utilizan solo la pila de codificadores, evitando los decodificadores. Por lo tanto, dichos modelos carecen de modelado autorregresivo enmascarado y tienen acceso a todos los tokens en la entrada inicial. Como tales, estos modelos se describen como bidireccionales, ya que utilizan todos los tokens circundantes, tanto anteriores como posteriores, para hacer predicciones para un token determinado. Los modelos de codificador más conocidos son la familia de modelos BERT, como BERT,9 RoBERTa,10 y ELECTRA,11 así como los modelos IBM® Slate. Los modelos de solo codificador a menudo se utilizan para tareas que requieren comprender una entrada completa, como la clasificación de texto o el reconocimiento de entidades nombradas.

Solo decodificador. Estos modelos (también llamados modelos autorregresivos) utilizan solo la pila de decodificadores, prescindiendo de cualquier codificador. Por lo tanto, al hacer predicciones de tokens, las capas de atención del modelo solo pueden acceder a los tokens que preceden al token en consideración. Los modelos de solo decodificadores se utilizan a menudo para tareas de generación de texto, como respuesta a preguntas, escritura de código o chatbots como ChatGPT. Un ejemplo de modelo de solo decodificador es la familia IBM® Granite de modelos fundacionales.12

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente los flujos de trabajo y las operaciones críticas añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Conozca los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida del desarrollo de IA. Produzca potentes soluciones de IA con interfaces fáciles de usar, flujos de trabajo y acceso a API y SDK estándar de la industria.

Explore watsonx.ai Reserve una demostración en vivo
Notas de pie de página

Jurafsky, D. and 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. and 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. and Polosukhin I. “Attention Is All You Need”, 2017.
Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022

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

4 Tunstall, L., Werra, L. and 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. and Grootendorst, M. “Hands-on Large Language Models”, O’Reilly, 2024.

6
Goodfellow, I., Bengio, Y. and Courville, A. “Deep Learning”, MIT Press, 2016.
Jurafsky, D. and 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. and Martin, J. Speech and Language Processing”, Third Edition, 2023.

8 Tunstall, L., Werra, L. and 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.  and 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.