Un mecanismo de atención es una técnica de machine learning que dirige los modelos de deep learning para priorizar (o atender) las partes más relevantes de la entrada. La innovación en los mecanismos de atención hizo posible la arquitectura de transformadores que dio lugar a los modernos modelos de lenguaje de gran tamaño (LLM) con los que funcionan aplicaciones tan populares como ChatGPT.
Como su nombre indica, los mecanismos de atención se inspiran en la capacidad de los humanos (y otros animales) de prestar más atención de forma selectiva a los detalles más destacados e ignorar los detalles que son menos importantes en el momento. Tener acceso a toda la información pero centrarse únicamente en la información más relevante ayuda a garantizar que no se pierda ningún detalle significativo y, al mismo tiempo, permite un uso eficiente de la memoria y el tiempo limitados.
Matemáticamente hablando, un mecanismo de atención calcula las ponderaciones de atención que reflejan la importancia relativa de cada parte de una secuencia de entrada para la tarea en cuestión. Luego aplica esas ponderaciones de atención para aumentar (o disminuir) la influencia de cada parte de la entrada, de acuerdo con su importancia respectiva. Un modelo de atención, es decir, un modelo de inteligencia artificial que emplea un mecanismo de atención, se entrena para asignar ponderaciones de atención precisas mediante el aprendizaje supervisado o el aprendizaje autosupervisado en un gran conjunto de datos de ejemplos.
Los mecanismos de atención fueron introducidos originalmente por Bahdanau et al en 2014 como una técnica para abordar las deficiencias de lo que entonces eran modelos de última generación de redes neuronales utilizados para la traducción automática. Investigaciones posteriores integraron mecanismos de atención en las redes neuronales convolucionales (CNN) utilizadas para tareas como el subtitulado de imágenes y la respuesta visual a preguntas.
En 2017, el artículo seminal "Attention is All You Need" introdujo el modelo de transformador, que evita la recurrencia y las convoluciones en favor de solo capas de atención y capas de retroalimentación estándar. Desde entonces, la arquitectura del transformador se ha convertido en la columna vertebral de los modelos de vanguardia que impulsan la era actual de IA generativa.
Aunque los mecanismos de atención se asocian principalmente a los LLM utilizados para tareas de procesamiento del lenguaje natural (PLN), como el resumen, la respuesta a preguntas, la generación de textos y el análisis de sentimientos, los modelos basados en la atención también se utilizan ampliamente en otros dominios. Los principales modelos de difusión utilizados para la generación de imágenes suelen incorporar un mecanismo de atención. En el campo de la visión artificial, los transformadores de visión (ViT) han logrado resultados superiores en tareas como la detección de objetos,1 la segmentación de imágenes2 y la respuesta visual a preguntas3.
Los modelos de transformadores y los mecanismos de atención que los impulsan han logrado resultados de vanguardia en casi todos los subdominios del deep learning. La naturaleza de los mecanismos de atención les otorga ventajas significativas sobre los mecanismos de convolución utilizados en las redes neuronales convolucionales (CNN) y los bucles recurrentes utilizados en las redes neuronales recurrentes (RNN).
Para comprender cómo funcionan los mecanismos de atención en el deep learning y por qué ayudaron a desencadenar una revolución en la IA generativa, es útil comprender primero por qué se introdujo por primera vez la atención: para mejorar los modelos Seq2Seq basados en RNN que se utilizan para la traducción automática.
Las RNN son redes neuronales con bucles recurrentes que proporcionan un equivalente a "memoria", lo que les permite procesar datos secuenciales. Las RNN toman una secuencia ordenada de vectores de entrada y los procesan en pasos de tiempo. Tras cada intervalo temporal, el estado de la red resultante, denominado estado oculto, vuelve al bucle, junto con el siguiente vector de entrada.
Las RNN sufren rápidamente la desaparición o explosión de gradientes en el entrenamiento. Esto hizo que las RNN resultaran poco prácticas para muchas tareas de PNL, ya que limitaba enormemente la longitud de las frases de entrada que podían procesar4. Estas limitaciones se mitigaron en cierta medida gracias a una arquitectura RNN mejorada denominada redes de memoria a largo plazo (LSTM), que añaden mecanismos de compuerta para preservar la memoria "a largo plazo".
Antes de que se introdujera la atención, el modelo Seq2Seq era el modelo más avanzado para la traducción automática. Seq2Seq utiliza dos LSTM en una arquitectura de codificador-decodificador.
La codificación de secuencias de entrada en un número fijo de dimensiones permitió a Seq2Seq procesar secuencias de longitud variable, pero también introdujo fallas importantes:
Bahdanau et al propusieron un mecanismo de atención en su artículo de 2014, "Neural Machine Translation by Jointly Learning to Align and Translate", para mejorar la comunicación entre el codificador y el decodificador y eliminar ese cuello de botella de información.
En lugar de pasar solo el estado oculto final del codificador (el vector de contexto) al decodificador, su modelo pasó todos los estados ocultos del codificador al decodificador. El propio mecanismo de atención se utilizó para determinar qué estado oculto, es decir, qué palabra de la oración original, era más relevante en cada paso de traducción realizado por el decodificador.
"Esto libera al modelo de tener que codificar una oración fuente completa en un vector de longitud fija, y también permite que el modelo se centre solo en la información relevante para la generación de la siguiente palabra objetivo", explica el documento. "Esto tiene un gran impacto positivo en la capacidad del sistema de traducción automática neuronal para obtener buenos resultados en frases más largas"5.
Las investigaciones posteriores sobre PNL se centraron principalmente en mejorar el rendimiento y ampliar los casos de uso de los mecanismos de atención en modelos recurrentes. La invención en 2017 de los modelos de transformadores, impulsados únicamente por la atención, finalmente hizo que las RNN quedaran casi obsoletas para el PNL.
El objetivo principal de un mecanismo de atención es determinar la importancia relativa de las diferentes partes de la secuencia de entrada y, a continuación, influir en el modelo para que preste atención a las partes importantes y descarte las partes no importantes.
Aunque hay muchas variantes y categorías de mecanismos de atención, cada una adaptada a diferentes casos de uso y prioridades, todos los mecanismos de atención presentan tres procesos básicos:
El artículo seminal "Attention is All You Need" articuló su mecanismo de atención utilizando la terminología de una base de datos relacional: consultas, claves y valores. Las bases de datos relacionales están diseñadas para simplificar el almacenamiento y la recuperación de datos relevantes: asignan un identificador único ("clave") a cada dato, y cada clave se asocia con un valor correspondiente. En PLN, la "base de datos" de un modelo es el vocabulario de tokens que ha aprendido de su conjunto de datos de entrenamiento.
La influencia masiva del artículo "Attention is All You Need" ha dado lugar a que incluso los mecanismos de atención anteriores a menudo se describan retroactivamente en estos términos. En términos generales, esta concepción de la atención implica la interacción entre tres tipos de representaciones vectoriales para cada token en una secuencia.
Las variantes específicas del mecanismo de atención se diferencian principalmente por cómo se codifican los vectores, cómo se calculan las puntuaciones de alineación y cómo se aplican las ponderaciones de atención para proporcionar al modelo información relevante.
El mecanismo de atención de Badhanau se diseñó específicamente para la traducción automática. Utiliza una RNN bidireccional para codificar cada token de entrada, procesando la secuencia de entrada tanto en dirección directa como inversa y concatenando los resultados. Este enfoque es especialmente útil cuando, por ejemplo, las lenguas original y traducida tienen diferentes convenciones de ordenación para sustantivos y adjetivos.
El estado oculto del decodificador en cada paso temporal de la frase traducida equivale a un vector de consulta y el estado oculto del codificador en cada paso de la frase fuente equivale a un vector clave.
Las puntuaciones de alineación las determina entonces una simple red neuronal, la capa de atención, que se entrena conjuntamente con el resto del modelo. Esta capa de atención se compone de hasta tres subconjuntos de pesos del modelo que se pueden aprender: pesos de consulta para los estados ocultos del decodificador ("Wq"), pesos clave para los estados del codificador ocultos ("Wk") y ponderaciones de valor para escalar la salida ("wv"). Estas ponderaciones son el "conocimiento" del modelo: al ajustar los valores específicos de esas ponderaciones durante el entrenamiento para minimizar la función de pérdida, el modelo aprende a hacer traducciones precisas.
En cada paso, la atención aditiva funciona de la siguiente manera:
El vector de contexto que utiliza el decodificador para generar la frase traducida se calcula como la suma ponderada por atención de cada vector clave. Un beneficio de la atención aditiva es que no requiere que los vectores de consulta y clave tengan la misma longitud.
En 2015, Luong et al introdujeron varias metodologías novedosas para simplificar y mejorar el mecanismo de atención de Badhanau para la traducción automática. Quizás su contribución más notable fue una nueva función de puntuación de alineación que utilizaba la multiplicación en lugar de la suma. También prescindió de la función, calculando la similitud entre vectores de estados ocultos mediante su producto escalar. Por esa razón, a menudo se le llama atención de producto escalar o atención multiplicativa.
La intuición detrás del uso del producto escalar para comparar vectores de consulta es tanto matemática como pragmática:
Una consecuencia del uso de la atención de producto escalar es que los cálculos requieren que ambos vectores tengan el mismo número de dimensiones. .
Mientras que la atención aditiva procede a calcular el vector de contexto como la suma ponderada de los vectores clave, la atención del producto puntual calcula el vector de contexto como la media ponderada de los vectores clave.
Los autores de "Attention is All You Need" señalaron que, aunque la atención del producto escalar es más rápida y más eficiente desde el punto de vista computacional que la atención aditiva, la atención aditiva supera a la atención tradicional del producto escalar para vectores más largos.
Teorizaron que cuando es muy grande, los productos escalares resultantes también son muy grandes. Cuando la función softmax comprime todos esos valores muy grandes para que quepan entre 0 y 1, la retropropagación produce gradientes extremadamente pequeños que son difíciles de optimizar. La experimentación reveló que escalando el producto de dos vectores de longitud por antes de la normalización softmax se obtienen gradientes mayores y, por tanto, un entrenamiento más suave.
La función de atención de producto punto a escala utilizada en los modelos de transformadores se escribe como .
Todos los primeros tipos de mecanismos de atención realizaban lo que ahora se clasifica como atención cruzada. En la atención cruzada, las consultas y las claves provienen de diferentes fuentes de datos. Por ejemplo, en las tareas de traducción automática, las claves provienen de un corpus de texto en un idioma y las consultas de otro idioma; en las tareas de reconocimiento de voz, las consultas son datos de audio y las claves son datos de texto para transcribir ese audio.
En la autoatención, las consultas, las claves y los valores se extraen de la misma fuente. Mientras que los mecanismos de atención de Bahdanau y Luong se diseñaron explícitamente para la traducción automática, Cheng et al propusieron la autoatención, a la que llamaron "intraatención", como método para mejorar la lectura automática en general. Su mecanismo de atención, descrito en un artículo de 2016, no exploraba cómo los elementos de entrada contribuyen a una secuencia general, sino cómo los diferentes tokens de entrada se relacionan entre sí.
Piense en un modelo de lenguaje que interprete el texto en inglés
"on Friday, the judge issued a sentence."
El artículo de Cheng et al se centró únicamente en la capacidad de autoatención para leer y comprender textos, pero pronto se dedujo que el modelado de relaciones intrasecuenciales también podría ser una herramienta poderosa para escribir textos. Un mayor desarrollo de la autoatención, junto con los modelos transformadores que permitió, condujo directamente a la llegada de la IA generativa moderna y los LLM autorregresivos que pueden generar texto original.
Los LLM autorregresivos también pueden realizar traducciones automáticas utilizando la autoatención, pero deben abordar la tarea de forma diferente. Mientras que la atención cruzada trata la frase original y la frase traducida como dos secuencias distintas, la autoatención trata el texto original y el texto traducido como una única secuencia.
Para que un LLM autorregresivo y basado en la autoatención sea capaz de traducir texto, todas las palabras que el modelo encuentra en el entrenamiento, en todos los idiomas, se aprenden como parte de un gran vocabulario de token multilingüe. El modelo simplemente se da cuenta de que cuando una secuencia contiene instrucciones como "traducir [palabras del idioma 1] al idioma 2", las siguientes palabras de la secuencia deben ser tokens del idioma 2.
En esencia, un LLM autorregresivo no necesariamente entiende que existen diferentes lenguajes por sí mismo. En cambio, simplemente entiende cómo ciertas agrupaciones de tokens, en este caso, tokens correspondientes a palabras del mismo idioma, se relacionan entre sí. Esta comprensión contextual se refuerza aún más mediante técnicas como el ajuste de instrucciones.
El artículo "Attention is All You Need", escrito por Viswani et al, se inspiró en la autoatención para introducir una nueva arquitectura de red neuronal: el transformador. Su modelo de transformador evitó por completo las convoluciones y la recurrencia, y en su lugar utilizó solo capas de atención y capas de retroalimentación lineal estándar.
El propio modelo de los autores siguió una estructura de codificador-decodificador, similar a la de sus predecesores basados en RNN. Los modelos posteriores basados en transformadores se apartaron de ese marco codificador-decodificador. Uno de los primeros modelos emblemáticos publicados a raíz del documento de transformadores, BERT (abreviatura de bidirectional encoder representations from transformers), es un modelo solo de codificador. Los LLM autorregresivos que han revolucionado la generación de texto, como los modelos GPT (transformador preentrenado generativo), son solo decodificadores.
“Attention is All You Need” propuso varias innovaciones al mecanismo de atención (una de las cuales fue la atención de producto escalar) para mejorar el rendimiento y adaptar la atención a una estructura de modelo completamente nueva.
El orden y la posición relativos de las palabras pueden influir mucho en su significado. Mientras que las RNN conservan intrínsecamente la información sobre la posición de cada token al calcular los estados ocultos en serie, una palabra tras otra, los modelos transformadores deben codificar explícitamente la información posicional.
Con la codificación posicional, el modelo añade un vector de valores a la incrustación de cada token, derivado de su posición relativa, antes de que la entrada entre en el mecanismo de atención. Este vector posicional suele tener muchas menos dimensiones que la propia incrustación de token, por lo que solo un pequeño subconjunto de la incrustación de token recibirá información posicional. Las matemáticas son algo complejas, pero la lógica es simple:
Viswani et al diseñaron un algoritmo sencillo que utiliza una función seno para los tokens en posiciones pares y un coseno para los tokens en posiciones impares. Los algoritmos posteriores, como la codificación posicional rotatoria (RoPE), mejoraron la capacidad de codificar eficazmente la información posicional para secuencias muy largas, lo que, a su vez, ha ayudado a permitir LLM con ventanas de contexto más grandes.
Una vez actualizada cada incrustación de token con información posicional, cada una se utiliza para generar tres nuevos vectores haciendo pasar la incrustación de token original por cada una de las tres capas paralelas de la red neuronal lineal (feedforward) que preceden a la primera capa de atención. Cada capa paralela tiene una matriz única de pesos cuyos valores específicos se aprenden mediante un preentrenamiento autosupervisado en un conjunto masivo de datos de texto.
La función principal del mecanismo de atención es sopesar la importancia de los pares de claves de consulta entre cada token. Para cada token x de una secuencia de entrada, el modelo de transformador calcula (y luego aplica) las ponderaciones de atención de la siguiente manera:
Hacer la media de las contribuciones ponderadas por la atención de otros tokens en lugar de contabilizar cada contribución ponderada por atención individualmente es matemáticamente eficiente, pero supone una pérdida de detalles. La arquitectura del transformador aborda este problema implementando la atención multicabezal.
Para disfrutar de la eficacia del promedio sin dejar de tener en cuenta las relaciones multifacéticas entre los tokens, los modelos transformadores calculan las operaciones de autoatención varias veces en paralelo en cada capa de atención de la red. Cada incrustación de token de entrada original se divide en h subconjuntos de tamaño uniforme. Cada pieza de la incrustación se introduce en una de las h matrices paralelas de ponderaciones Q, K y V, cada una de las cuales se denomina cabezal de consulta, cabezal de clave o cabezal de valor, respectivamente. Los vectores generados por cada una de estas tripletas paralelas de cabezas de consulta y valores clave se introducen en el cabezal de atención correspondiente.
En las capas finales de cada bloque de atención , las salidas de estos h circuitos paralelos acaban concatenándose de nuevo. En la práctica, el entrenamiento de modelos da como resultado que cada circuito aprenda diferentes ponderaciones que capturan un aspecto separado de los significados semánticos. Esto, a su vez, permite al modelo procesar las distintas formas en que el contexto de otras palabras puede influir en el significado de una palabra. Por ejemplo, un cabezal de atención puede especializarse en los cambios de tiempo, mientras que otro se especializa en cómo las palabras cercanas influyen en el tono.
Aquí se demuestra el circuito completo de multiplicación de matrices en el bloque de atención de un transformador estándar. Cabe señalar que las evoluciones posteriores del mecanismo de atención del transformador, como la atención a consultas múltiples y la atención a consultas agrupadas, simplifican o combinan algunos elementos del proceso para reducir las exigencias computacionales.
En las últimas capas de los modelos de transformadores, los cabezales de atención suelen entrenarse para hacer predicciones específicas. Por ejemplo, un cabezal de atención en la capa final de un LLM podría especializarse en reconocimiento de entidades nombradas, mientras que otro se especializa en el análisis de sentimientos, etc.
En los LLM autorregresivos, la penúltima capa es una capa lineal que recibe el vector completamente transformado y lo proyecta a un tamaño que coincide con el de las incrustaciones vectoriales que el modelo ha aprendido para cada token en su vocabulario. Esto permite el cálculo de puntuaciones que representan qué tan cerca está el vector resultante de cada token en ese vocabulario. La capa final es una capa softmax, que convierte esas puntuaciones en probabilidades (sobre 1) y utiliza esas probabilidades para emitir lo que determina que es la palabra siguiente más probable, basándose en las palabras que la preceden.
1. "Leaderboard: Object Detection on COCO test-dev". Papers With Code. Consultado el 18 de noviembre de 2024
2. "Leaderboards: Image Segmentation" Papers With Code. Consultado el 18 de noviembre de 2024
3. "Leaderboard: Visual Question Answering (VQA) on VQA v2 test-dev". Papers With Code. Consultado el 18 de noviembre de 2024
4. "Learning long-term dependencies with gradient descent is difficult". IEE Transactions on Neural Networks 5(2): 157-66. Febrero de 1994
5. "Neural Machine Translation by Jointly Learning to Align and Translate". arXiv. 1 de septiembre de 2014
6. "Multiplicative Attention". Papers With Code
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.
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.
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.