Un mecanismo de atención es una técnica de machine learning que dirige los modelos de aprendizaje profundo para priorizar (o poner atención a) las partes más relevantes de los datos de entrada. La innovación en los mecanismos de atención permitió la arquitectura transformadora que produjo los modelos de lenguaje grandes (LLM) modernos que impulsan aplicaciones populares, como ChatGPT.
Como sugiere su nombre, los mecanismos de atención se inspiran en la capacidad de los humanos (y otros animales) de prestar selectivamente más atención 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 solo en la más relevante ayuda a garantizar que no se pierdan detalles significativos y permite un uso eficiente de la memoria y el tiempo limitados.
Matemáticamente hablando, un mecanismo de atención calcula pesos de atención que reflejan la importancia relativa de cada parte de una secuencia de entrada para la tarea en cuestión. Luego aplica esos pesos de atención para aumentar (o disminuir) la influencia de cada parte de la entrada, de acuerdo con su respectiva importancia. Un modelo de atención, es decir, un modelo de inteligencia artificial que emplea un mecanismo de atención, se entrena para asignar pesos de atención precisos a través del 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 redes neuronales recurrentes (RNN) de última generación empleados para la traducción automática. Investigaciones posteriores integraron mecanismos de atención en las redes neuronales convolucionales (CNN) empleadas para tareas, como subtítulos de imágenes y respuestas visuales a preguntas.
En 2017, el artículo seminal “Attention is All You Need” introdujo el modelo 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 transformadora se ha convertido en la columna vertebral de los modelos de vanguardia que impulsan la era actual de IA generativa.
Si bien los mecanismos de atención se asocian principalmente con los LLM empleados para tareas de procesamiento de lenguaje natural (PLN), como el resumen, la respuesta a preguntas, la generación de texto y el análisis de sentimientos, los modelos basados en la atención también se usan ampliamente en otros dominios. Los principales modelos de difusión utilizados para la generación de imágenes a menudo incorporan 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 que incluyen detección de objetos,1 segmentación de imágenes2 y respuesta visual a preguntas.3
Los modelos transformadores y los mecanismos de atención que los potencian han logrado resultados de vanguardia en casi todos los subdominios del aprendizaje profundo. 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 aprendizaje profundo y por qué ayudaron a desencadenar una revolución en la IA generativa, es útil comprender primero por qué se introdujo la atención por primera vez: para mejorar los modelos Seq2Seq basados en RNN utilizados para la traducción automática.
Las RNN son redes neuronales con bucles recurrentes que proporcionan un equivalente de “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. Después de cada paso de tiempo, el estado de la red resultante, llamado estado oculto, se devuelve 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 fueran poco prácticas para muchas tareas de PLN, ya que limitaba en gran medida la longitud de las oraciones de entrada que podían procesar.4 Estas limitaciones se mitigaron en cierta medida mediante una arquitectura RNN mejorada llamada redes de memoria a largo plazo (LSTM), que agregan mecanismos de activación 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ó cada estado oculto del codificador al decodificador. El propio mecanismo de atención se empleó 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 le permite centrar solo en la información relevante para la generación de la siguiente palabra objetivo”, explicó el artículo. "Esto tiene un gran impacto positivo en la capacidad del sistema de traducción automática neuronal para producir buenos resultados en oraciones más largas".5
La investigación posterior de NLP se centró principalmente en mejorar el rendimiento y ampliar los casos de uso de los mecanismos de atención en modelos recurrentes. La invención de los modelos transformadores en 2017, impulsada únicamente por la atención, finalmente hizo que las RNN fueran casi obsoletas para el PLN.
El propósito principal de un mecanismo de atención es determinar la importancia relativa de las diferentes partes de la secuencia de entrada, y luego influir en el modelo para que preste atención a las partes importantes y descarte las partes no importantes.
Si bien existen muchas variantes y categorías de mecanismos de atención, cada una adecuada para diferentes caso de uso y prioridades, todos los mecanismos de atención presentan tres procesos centrales:
El documento 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 está asociada con un valor correspondiente. En NLP, la "base de datos" de un modelo es el vocabulario de tokens que ha aprendido de su conjunto de datos.
La influencia masiva del documento “La atención es todo lo que necesita” 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 conlleva 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 los puntajes de alineación y se aplican los pesos de atención para proporcionar al modelo información relevante.
El mecanismo de atención de Badhanau fue diseñado específicamente para la traducción automática. Emplea una RNN bidireccional para codificar cada token de entrada, procesando la secuencia de entrada tanto en la dirección de avance como en la inversa y concatenando los resultados juntos. Este enfoque es particularmente útil cuando, por ejemplo, el idioma original y el traducido tienen diferentes convenciones de ordenación para sustantivos y adjetivos.
El estado oculto del decodificador en cada paso de la oración traducida es el equivalente a un vector de consulta y el estado oculto del codificador en cada paso de la oración fuente es el equivalente a un vector clave.
Las puntuaciones de alineación se determinan mediante una red neuronal simple, la capa de atención , entrenada conjuntamente con el resto del modelo. Esta capa de atención comprende hasta tres subconjuntos de ponderaciones de modelos que se pueden aprender: ponderaciones de consulta para los estados ocultos del decodificador (“Wq”), ponderaciones clave para los estados ocultos del codificador (“ Wk”) y ponderaciones de valor para a escala los resultados (“wv”). Estos pesos son el "conocimiento" del modelo: al ajustar los valores específicos de esos pesos durante el entrenamiento para minimizar una 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 oración traducida se calcula como la suma ponderada de 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 se deshizo de la función, calculando la similitud entre vectores de estado ocultos mediante el uso de su producto de puntos. Por esa razón, a menudo se le llama atención de producto de puntos o atención multiplicativa.
La intuición detrás del uso del producto punto 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 de atención de producto escalar requieren que ambos vectores tengan la misma dimensión. .
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 escalar calcula el vector de contexto como el promedio ponderado de los vectores clave.
Los autores de “La atención es todo lo que necesitas” señalaron que si bien la atención del producto de puntos es más rápida y computacionalmente más eficiente que la atención aditiva, la atención aditiva supera a la atención tradicional de punto-producto para vectores más largos.
Teorizaron que cuando es muy grande, los productos de punto 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 escalar el producto punto de dos vectores de longitud por antes de la normalización softmax Resultados gradientes más grandes y, por lo tanto, un entrenamiento más fluido.
La función de atención punto-producto escalada empleada en los modelos de transformador se escribe como .
Los primeros tipos de mecanismos de atención realizaron lo que ahora se categoriza 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 tanto los mecanismos de atención de Bahdanau como de Luong fueron diseñados explícitamente para la traducción automática, Cheng al propuso la autoatención —a la que llamaron “intraatención”—como un método para mejorar la lectura automática en general. Su mecanismo de atención, esbozado en un documento de 2016, exploró no cómo los elementos de entrada contribuyen a una secuencia general, sino cómo los diferentes tokens de entrada se relacionan entre sí.
Considera un modelo de lenguaje que interprete el texto en inglés
"El viernes el juez dictó sentencia".
El artículo de Cheng et al. se centraba únicamente en la capacidad de la autoatención para leer y comprender textos, pero pronto se vio que el modelado de las relaciones intrasequencia también podía ser una poderosa herramienta para escribir textos. Un mayor desarrollo de la autoatención, junto con los modelos transformadores que permitió, condujo directamente a la llegada de la AI generativa moderna y los LLM autorregresivos que pueden generar texto original.
Los LLM autorregresivos también pueden realizar traducción automática mediante el uso de la autoatención, pero deben abordar la tarea de manera diferente. Mientras que la atención cruzada trata la oración original y la oración traducida como dos secuencias distintas, la autoatención trata el texto original y el texto traducido como una sola secuencia.
Para que un LLM autorregresivo 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 token multilingüe. El modelo simplemente se da cuenta de que cuando una secuencia contiene instrucciones como “traducir [palabras en el 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 hay 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 prestan atención entre sí. Esta comprensión contextual se refuerza aún más a través de 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 presentar una nueva arquitectura de red neuronal: el transformador. Su modelo de transformador evitó por completo las convoluciones y la recurrencia, y en su lugar empleó 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 de referencia publicados a raíz del artículo sobre los transformadores, BERT (abreviatura de representaciones de codificador bidireccional de transformadores), es un modelo de solo codificador. Los modelos LLM autorregresivos que revolucionaron la generación de texto, como los modelos GPT (Transformador Preentrenado Generativo), son solo decodificadores.
“Attention is All You Need” propuso varias innovaciones en el mecanismo de atención, una de las cuales fue la atención de productos punto escalados, para mejorar el rendimiento y adaptar la atención a una estructura de modelo completamente nueva.
El orden relativo y la posición de las palabras pueden tener una influencia importante en sus significados. Mientras que las RNN conservan inherentemente la información sobre la posición de cada token mediante el cálculo de estados ocultos en serial, una palabra tras otra, los modelos de transformadores deben codificar explícitamente la información de posición.
Con la codificación posicional, el modelo agrega un vector de valores a la incrustación de cada token, derivado de su posición relativa, antes de que la entrada ingrese al 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 emplea una función seno para los tokens en posiciones pares y coseno para los tokens en posiciones impares. Algoritmos posteriores, como la codificación posicional rotatoria (RoPE), mejoraron la capacidad de codificar eficazmente la información posicional de secuencias muy largas, lo que, a su vez, ayudó a permitir LLM con ventanas de contexto más amplias.
Una vez que cada token se ha actualizado con información posicional, cada uno se utiliza para generar tres nuevos vectores pasando el token original a través de cada una de las tres capas de Neural Networks lineales paralelas (feedforward) que preceden a la primera capa de atención. Cada capa paralela tiene una matriz única de ponderaciones cuyos valores específicos se aprenden mediante un entrenamiento previo autosupervisado en un conjunto de datos masivo de texto.
La función principal del mecanismo de atención es ponderar la importancia de los apareamientos de clave de consulta entre cada token. Para cada token x en una secuencia de entrada, el modelo de transformador calcula (y luego aplica) los pesos de atención de la siguiente manera:
Promediar las contribuciones ponderadas por atención de otros tokens en lugar de contabilizar cada contribución ponderada por atención individualmente es matemáticamente eficiente, pero da como resultado una pérdida de detalles. La arquitectura transformadora aborda esto implementando la atención multicabezal.
Para disfrutar de la eficiencia de promediar sin dejar de tener en cuenta las relaciones multifacéticas entre tokens, los modelos de transformadores calculan operaciones varias veces en paralelo en cada capa de atención en 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 alimenta a una de las matrices paralelas h de pesos Q, K y V , cada una de las cuales se denomina cabeza de consulta , cabeza clave o cabeza de valor, respectivamente. Los vectores resultados de cada uno de estos tripletes paralelos de consulta, cabezas de valor clave se introducen entonces en un cabezal de atención correspondiente.
En las capas finales de cada bloque de atención , las salidas de estos h circuitos paralelos finalmente se concatenan nuevamente. En la práctica, el entrenamiento de modelos da como resultado que cada circuito aprenda diferentes pesos que capturan un aspecto separado de los significados semánticos. Esto, a su vez, permite que el modelo procese diferentes formas en que el contexto de otras palabras puede influir en el significado de una palabra. Por ejemplo, un jefe de atención podría especializarse en 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. Vale la pena señalar que las evoluciones posteriores del mecanismo de atención del transformador, como la atención de consultas múltiples y la atención de consultas agrupadas, simplifican o combinan algunos elementos del proceso para reducir las demandas computacionales.
En las últimas capas de los modelos de transformadores, los jefes de atención a menudo se entrenan para hacer predicciones específicas. Por ejemplo, un jefe de atención en la capa final de un LLM podría especializarse en named entity recognition, mientras que otro se especializa en el análisis de sentimientos, y así sucesivamente.
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 puntajes que representan qué tan cerca coincide el vector resultante con cada token en ese vocabulario. La capa final es una capa softmax, que convierte esas puntuaciones en probabilidades (de 1) y utiliza esas probabilidades para generar lo que determina que es la siguiente palabra más probable, en función de las palabras que la precedieron.
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, accessed 18 November 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 septiembre de 2014
6. "Multiplicative Attention," Papers With Code
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.
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.
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.