La autoatención es un tipo de mecanismo de atención utilizado en los modelos de machine learning. Este mecanismo se utiliza para sopesar la importancia de tokens o palabras en una secuencia de entrada para comprender mejor las relaciones entre ellos. Es una parte crucial de los modelos transformadores, una poderosa arquitectura de inteligencia artificial que es esencial para las tareas de procesamiento de lenguaje natural (PLN). La arquitectura transformadora es la base de la mayoría de los modelos de lenguaje grandes (LLM) modernos.
El mecanismo de autoatención se introdujo por medio del transformador, un modelo de arquitectura de redes neuronales propuesto por los investigadores. El objetivo de la arquitectura propuesta era abordar los desafíos de los modelos tradicionales de machine learning que utilizan redes neuronales de convolución (CNN) y redes neuronales recurrentes (RNN).1
Los modelos secuenciales tradicionales siguen la misma arquitectura codificador-decodificador que los modelos transformadores, pero procesan los datos paso a paso o secuencia a secuencia (seq2seq). Esta función plantea un desafío para la paralelización, que es la capacidad de reducir el tiempo de cálculo y mejorar la generación de resultados calculando los pesos de atención en todas las partes de la secuencia de entrada simultáneamente.
La autoatención desempeñó un papel clave en el avance de los LLM al permitir la paralelización dentro de los ejemplos de entrenamiento. Este método es útil porque, cuanto mayor sea la longitud de la secuencia, más restricciones de memoria limitarán el procesamiento por lotes en los ejemplos de entrenamiento. Mediante la autoatención, los datos de entrenamiento de LLM se pueden dividir en lotes y procesar simultáneamente en varias GPU.1 La autoatención reduce la potencia computacional necesaria para entrenar modelos de machine learning con un procesamiento por lotes eficiente en paralelo.
La autoatención no solo contribuye a distribuir la carga computacional de manera eficiente, sino que también permite la capacidad de procesar pesos de atención simultáneamente. Esta capacidad permite que el modelo se centre en partes relevantes de una secuencia de entrada para predecir dinámicamente la importancia de cada elemento dentro de una secuencia. La autoatención es buena para tareas de PLN, como traducción automática, análisis de sentimientos y resúmenes.
La autoatención en los modelos de machine learning es similar al concepto de comportamiento humano en el sentido de que ambos implican centrarse en elementos relevantes dentro de un contexto más amplio para procesar la información con precisión. En psicología, se trata de centrarse en sus propios pensamientos o comportamientos, mientras que en el aprendizaje profundo, se trata de centrarse en las partes relevantes de una secuencia de entrada.
La arquitectura transformadora incluye una capa de autoatención donde se integra el proceso de atención. Los pasos se explican tal como se presentan en el artículo de Ashish Vaswani et al., que introduce la capa de autoatención “Attention is All You Need”.
Una secuencia de entrada es una serie de puntos de datos vectorizados en incorporaciones, o representaciones numéricas, que el algoritmo de machine learning puede utilizar para calcular las puntuaciones de atención necesarias para producir los resultados.
En la traducción automática, una oración se consideraría una secuencia de entrada, donde cada parte de la oración se considera un punto de datos o token de entrada. Los tokens se convierten en incorporaciones que actúan como unidades semánticas que el modelo puede procesar.2 Las incorporaciones se utilizan para calcular los pesos de atención que ayudan al modelo a priorizar (o atender) las entradas más relevantes.
El modelo utiliza estas incorporaciones para generar tres vectores clave para cada token: consulta (Q), clave (K) y valor (V). Estos valores se utilizarán para ayudar al modelo a realizar las coincidencias semánticas más fuertes dentro de la oración de entrada.
Se realizan multiplicaciones de matrices para obtener los vectores de consulta, clave y valor. El mecanismo de atención calcula una suma ponderada de los valores en función de las respectivas matrices de ponderación de los componentes de consulta, clave y valor y las entradas incrustadas.1 Este proceso se conoce como transformación lineal.
Una vez transformadas las incorporaciones, se calculan las puntuaciones de atención para cada elemento de la secuencia. Las puntuaciones de atención se obtienen tomando las puntuaciones de atención del producto escaladas entre los vectores de consulta y los vectores clave. Estos pesos de atención representan cuánto enfoque (o atención) debe dar un token específico a otros tokens en una secuencia.
A continuación, la puntuación de atención se escala por la raíz cuadrada de la dimensionalidad de los vectores clave. Este proceso ayuda a estabilizar los gradientes y evita que crezcan demasiado para calcularse de manera eficiente a medida que aumenta la dimensionalidad de los vectores.
Las puntuaciones de atención obtenidas a través del producto punto de los vectores de consulta y los vectores clave se transforman en probabilidades mediante el uso de la función softmax. Este proceso se denomina normalización.
Con estas probabilidades normalizadas, el bloque de atención softmax permite a la arquitectura transformadora la capacidad de evaluar la importancia de los elementos de entrada individuales durante la generación de salida.3 Estas probabilidades se utilizan para encontrar la importancia relativa de cada elemento en la secuencia. El modelo de atención utiliza estas ponderaciones normalizadas para decidir en qué partes de la entrada enfocarse.
Finalmente, las ponderaciones de atención derivados de este proceso contribuyen a la suma ponderada final del vector de valor. Cuanto mayor sea la puntuación de atención, más ponderación de atención tendrá la secuencia. Esto significa que tendrá más influencia en el resultado final de la suma ponderada del vector de valor.
Los modelos de atención son eficaces para capturar dependencias de largo alcance, independientemente de la distancia entre cada elemento, o token, dentro de una secuencia. La atención multicabezal es una extensión crucial de la autoatención que mejora esta funcionalidad principal al atender simultáneamente a diferentes elementos dentro del conjunto de datos de entrada. Los modelos pueden atender distintos aspectos o relaciones en los datos a la vez, lo que permite dibujar más contexto entre dependencias o tokens.
Los primeros modelos bidireccionales, como las representaciones de codificador bidireccional de transformadores(BERT), mejoraron la comprensión del contexto al permitir que el modelo considerara información de la secuencia tanto hacia adelante como hacia atrás. En la atención bidireccional, el modelo tiene como objetivo comprender el significado de una palabra en función de las palabras que la rodean.4
Los modelos GPT popularizaron la autoatención, destacando los beneficios de una ventana de contexto ampliada para tareas generativas. La capacidad de procesar más información a la vez conduce a una mayor precisión y comprensión.
Los modelos de IA utilizan la autoatención para procesar secuencias de entrada largas de manera eficiente, intercambiando información de atención a escala y reduciendo el uso de memoria.5 La autoatención permite que el modelo obtenga una comprensión contextual más profunda mediante el uso de la ventana de contexto dentro del modelo. Cuanto mayor sea la ventana de contexto, mayor será el número de tokens a los que el modelo puede prestar atención a la vez.
Tareas de PLN: el mecanismo de autoatención mejora las capacidades lingüísticas de los modelos de machine learning al permitir el análisis eficiente y completo de un texto completo. Las investigaciones han mostrado avances en la clasificación de sentimientos.6 Los modelos pueden realizar bien las tareas de PLN porque la capa de atención le permite calcular la relación entre palabras independientemente de la distancia entre ellas.7
Visión artificial: los mecanismos de autoatención no son exclusivos de las tareas de PLN. Se puede utilizar para centrarse en partes específicas de una imagen. Los desarrollos en los modelos de reconocimiento de imágenes sugieren que la autoatención es un componente crucial para aumentar su robustez y generalización.8
1. “Attention Is All You Need,” Ashish Vaswani et al., Proceedings of the 31st International Conference on Neural Information Processing Systems, arXiv:1706.03762v7, revisado el 2 de agosto de 2023.
2. “Tokenization,” essay, in Introduction to Information Retrieval, Christopher Manning, Prabhakar Raghavan and Hinrich Schutze, 2008.
3. “Rethinking Softmax: Self-Attention with Polynomial Activations,” Hemanth Saratchandran et al., Australian Institute of Machine Learning, University of Adelaide, arXiv:2410.18613v1, 24 de octubre de 2024.
4. “BERT: Pre-training of Deep Bidireccional Transformers for Language Understanding,” Jacob Devlin et al., arXiv:1810.04805v2, revisado el 24 de mayo de 2019.
5. “Scaling of Search and Learning: A Roadmap to Reproduce o1 from Reinforcement Learning Perspective,” Zhiyuan Zeng et al., arXiv:2412.14135, 18 de diciembre de 2024.
6. “Bidirectional LSTM with self-attention mechanism and multi-channel features for sentiment classification,” Weijiang Li et al., Neurocomputing Vol 387, 28 April 2020.
7. “Parallel Scheduling Self-attention Mechanism: Generalization and Optimization,” Mingfei Yu and Masahiro Fujita, arXiv:2012.01114v1, 2 December 2020.
8. “Exploring Self-attention for Image Recognition,” Hengshuang Zhao, Jiaya Jia and Vladlen Koltun, Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, 2020.
Póngase en marcha
Póngase en marcha
Póngase en marcha
Póngase en marcha