¿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 proceso de datos secuencial y la generación.

En el deep learning, la arquitectura de codificador-decodificador es un tipo de red neuronal más ampliamente asociada con la arquitectura del transformador 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 ( modeloseq2seq). Gran parte de la investigación de machine learning se centra en modelos codificadores-decodificadores para tareas de procesamiento del lenguaje natural (PLN) que implican modelos de lenguaje de gran tamaño (LLM).

Los modelos de codificador-decodificador se utilizan para manejar datos secuenciales, específicamente asignando secuencias de entrada a secuencias de output de diferentes longitudes, como traducción automática neuronal, resumen de texto, subtítulos de imágenes y reconocimiento de voz. En tales tareas, la asignación de un token en la entrada a uno en el output suele ser indirecta. Por ejemplo, la traducción automática: en algunos idiomas, el verbo aparece cerca del principio 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 codificador-decodificador genera secuencias de output de longitud variable pero contextualmente apropiadas para corresponder a una secuencia de entrada determinada.1

Las últimas tendencias en IA, presentadas por expertos

Obtenga conocimientos organizados 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! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. 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 puede deducirse 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 independientes y totalmente conectadas. Pueden ser redes neuronales (RNN) recurrentes, junto con sus variantes de memoria a largo y corto plazo (LSTM), unidades recurrentes cerradas (GRUs) y redes neuronales convolucionales (CNNs), así como modelos de transformadores. Un modelo de codificador-decodificador suele contener varios codificadores y varios decodificadores.

Diagrama de la arquitectura codificador-decodificador

Cada codificador consta de dos capas: la capa de autoatención (o mecanismo de autoatención) y la red neuronal de avance. 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 avance 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 de una tercera capa adicional: la capa de atención del codificador-decodificador. Esta capa centra la atención de la red en partes específicas de la output del codificador. La capa de atención multitesta asigna tokens de dos secuencias diferentes.2

Diagrama de las partes de las pilas de codificadores y decodificadores

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 los pesos de los tokens en una entrada de texto para reflejar las relaciones entre tokens. A diferencia de un embedding tradicional de palabras que ignora el orden de las palabras, la autoatención procesa toda la secuencia de texto de entrada para calcular el embedding promedio ponderado de cada token que tiene en cuenta la distancia de ese token de todos los demás tokens de la secuencia de texto. Calcula este embedding promedio como una combinación lineal de todos los embeddings para la secuencia de entrada de acuerdo con la siguiente fórmula:

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

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

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

El codificador pasa este embedding de token a la capa de retroalimentación, que agrega una codificación posicional (o embedding posicional) al embedding de token. Esta codificación posicional explica el orden de los tokens en un texto, específicamente la distancia entre los tokens. Juntos, este embedding de tokens y el embedding posicional conforman el estado oculto que se transmite al decodificador.5

Vector de contexto

La literatura especializada suele denominar "vector de contexto" al estado oculto final del codificador. Es una representación numérica condensada del texto de entrada inicial del codificador. En términos más sencillos, se trata del embedding y la codificación posicional producidos por el codificador para cada palabra de la secuencia de entrada.

La literatura suele definir 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 de la secuencia de entrada:6

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

Decodificador

Al igual que el codificador, el decodificador se compone de una capa de autoatención y una red de avance. Entre ellas, el decodificador contiene una capa de enmascaramiento de atención multitesta. Esto marca la diferencia entre el codificador y el decodificador. Mientras que el codificador genera embeddings de token contextualizados simultáneamente, la capa de atención multitesta del decodificador utiliza un enmascaramiento autorregresivo.

En primer lugar, el decodificador recibe el vector de contexto del codificador. El decodificador utiliza estos embeddings posicionales para calcular las puntuaciones de atención de cada token. Estas puntuaciones de atención determinan en qué medida cada token de la secuencia de 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 secuencias de output.

Sin embargo, una característica importante de esto es que el decodificador no utilizará tokens futuros para determinar tokens anteriores en esa misma secuencia. El output generado por cada token depende solo de los tokens anteriores; en otras palabras, al generar la output 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é utilizar modelos codificadores-decodificadores en PLN?

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 embeddings contextualizados. Estos embeddings son distintos de los embeddings de palabras fijas utilizados en los modelos Bag of words.

En primer lugar, los embeddings fijos 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, los embeddings contextualizados tienen en cuenta el orden de las palabras mediante codificaciones posicionales. Además, los embeddings contextualizados 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 los embeddings.

Los embeddings fijos generan una embedding para un token determinado, fusionando todas las instancias de ese token. Los modelos codificador-decodificador producen embeddings contextualizados para cada instancia de un token. Como resultado, los embeddings contextualizados manejan mejor las palabras polisémicas, es decir, las palabras con múltiples significados. Por ejemplo, la palabra en inglés "fly" puede significar una acción ("volar") o un insecto ("mosca"). Una palabra fija de embedding colapsa los múltiples significados de esta palabra creando una única palabra de embedding para el token o la palabra. Pero un modelo codificador-decodificador genera embeddings individuales contextualizados para cada aparición de la palabra "fly", por lo que captura innumerables significados a través de múltiples embeddings distintos.8

Mixture of Experts | 12 de diciembre, episodio 85

Descifrar 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 bullicio de la IA para ofrecerle las últimas noticias y conocimientos 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, estos 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 basados únicamente en codificadores se utilizan a menudo para tareas que requieren comprender todo el texto de entrada, como la clasificación de textos 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 anteriores al token que se está considerando. Los modelos 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 un modelo de solo decodificador es la familia de modelos fundacionales IBM® Granite . 12

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree 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 líder en IA del sector de IBM y junto a su cartera de soluciones.

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

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

Explore los servicios de IA
Dé el siguiente paso

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

Explore watsonx.ai Solicite una demostración en directo
Notas a pie de página

Jurafsky, D. y Martin, J.  “Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition”. Tercera edición. 2023.

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

3 Goodfellow, I., Bengio, Y. y Courville, A. “Deep Learning”. MIT Press. 2016.
Jurafsky, D. and Martin, J. “Speech and Language Processing”. Tercera edición. 2023.
Tunstall, L., Werra, L. y Wolf T. “Natural Language Processing with Transformers”. Edición revisada. O’Reilly. 2022.

4 Tunstall, L., Werra, L. y Wolf T. “Natural Language Processing with Transformers”. Edición revisada. O’Reilly. 2022.
Goldberg, Y. “Neural network methods for Natural Language Processing”. Springer. 2022.

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

6
Goodfellow, I., Bengio, Y. y Courville, A. “Deep Learning”. MIT Press. 2016.
Jurafsky, D. y Martin, J. “Speech and Language Processing”. Tercera edición. 2023.

7 Foster, D. “Generative Deep Learning”, Second Edition. O’Reilly. 2023.
Rothman, D. “Transformers for Natural Language Processing”. Segunda edición. 2022. 
Jurafsky, D. y Martin, J. Speech and Language Processing”. Tercera edición. 2023.

8 Tunstall, L., Werra, L. y Wolf T. “Natural Language Processing with Transformers”, Edición revisada. O’Reilly. 2022. 

9 Devlin, J. et al. “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.  y Stoyanov, V. “RoBERTa: A Robustly Optimized BERT Pretraining Approach”.  2019.

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

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