Inteligencia artificial
Modelos de Lenguaje Grande Basados en Decodificador: Una Guía Completa
Modelos de Lenguaje Grande (LLM) han revolucionado el campo del procesamiento de lenguaje natural (NLP) al demostrar capacidades remarables en la generación de texto similar al humano, responder preguntas y ayudar con una amplia gama de tareas relacionadas con el lenguaje. En el núcleo de estos modelos poderosos se encuentra la arquitectura de transformador de decodificador solo, una variante de la arquitectura de transformador original propuesta en el papel seminal “La atención es todo lo que necesitas” de Vaswani et al.
En esta guía integral, exploraremos el funcionamiento interno de los LLM basados en decodificador, profundizando en los bloques de construcción fundamentales, innovaciones arquitectónicas y detalles de implementación que han impulsado a estos modelos al frente de la investigación y las aplicaciones de NLP.
La Arquitectura de Transformador: Un Recordatorio
Antes de sumergirnos en los detalles específicos de los LLM basados en decodificador, es esencial revisitar la arquitectura de transformador, la base sobre la que se construyen estos modelos. El transformador introdujo un enfoque novedoso para el modelado de secuencias, confiando únicamente en mecanismos de atención para capturar dependencias de largo alcance en los datos, sin la necesidad de capas recurrentes o convolucionales.
La arquitectura de transformador original consta de dos componentes principales: un codificador y un decodificador. El codificador procesa la secuencia de entrada y genera una representación contextualizada, que luego es consumida por el decodificador para producir la secuencia de salida. Esta arquitectura se diseñó inicialmente para tareas de traducción automática, donde el codificador procesa la oración de entrada en el lenguaje de origen y el decodificador genera la oración correspondiente en el lenguaje de destino.
Atención Propia: La Clave del Éxito del Transformador
En el corazón del transformador se encuentra el mecanismo de atención propia, una técnica poderosa que permite al modelo ponderar y agregar información de diferentes posiciones en la secuencia de entrada. A diferencia de los modelos de secuencia tradicionales, que procesan los tokens de entrada secuencialmente, la atención propia permite al modelo capturar dependencias entre cualquier par de tokens, independientemente de su posición en la secuencia.
La operación de atención propia se puede desglosar en tres pasos principales:
- Proyecciones de Consulta, Clave y Valor: La secuencia de entrada se proyecta en tres representaciones separadas: consultas (Q), claves (K) y valores (V). Estas proyecciones se obtienen multiplicando la entrada con matrices de pesos aprendidas.
- Cálculo de Puntuaciones de Atención: Para cada posición en la secuencia de entrada, se calculan puntuaciones de atención tomando el producto escalar entre el vector de consulta correspondiente y todos los vectores de clave. Estas puntuaciones representan la relevancia de cada posición para la posición actual que se está procesando.
- Suma Ponderada de Valores: Las puntuaciones de atención se normalizan utilizando una función softmax, y los pesos de atención resultantes se utilizan para calcular una suma ponderada de los vectores de valor, produciendo la representación de salida para la posición actual.
La atención de multi-cabeza, una variante del mecanismo de atención propia, permite al modelo capturar diferentes tipos de relaciones calculando puntuaciones de atención a través de múltiples “cabezas” en paralelo, cada una con su propia conjunto de proyecciones de consulta, clave y valor.
Variantes y Configuraciones Arquitectónicas
Si bien los principios básicos de los LLM basados en decodificador permanecen consistentes, los investigadores han explorado diversas variantes y configuraciones arquitectónicas para mejorar el rendimiento, la eficiencia y las capacidades de generalización. En esta sección, profundizaremos en las diferentes opciones arquitectónicas y sus implicaciones.
Tipos de Arquitectura
Los LLM basados en decodificador se pueden clasificar ampliamente en tres tipos principales: arquitectura codificador-decodificador, decodificador causal y decodificador de prefijo. Cada tipo de arquitectura exhibe patrones de atención distintos.
Arquitectura Codificador-Decodificador
Basada en el modelo de Transformador vanilla, la arquitectura codificador-decodificador consiste en dos pilas: un codificador y un decodificador. El codificador utiliza capas de atención propia de multi-cabeza apiladas para codificar la secuencia de entrada y generar representaciones latentes. El decodificador luego realiza una atención cruzada en estas representaciones para generar la secuencia de destino. Aunque es efectiva en diversas tareas de NLP, pocos LLM, como Flan-T5, adoptan esta arquitectura.
Arquitectura Decodificador Causal
La arquitectura decodificador causal incorpora una máscara de atención unidireccional, que permite que cada token de entrada atienda solo a tokens pasados y a sí mismo. Tanto los tokens de entrada como los tokens de salida se procesan dentro del mismo decodificador. Modelos notables como GPT-1, GPT-2 y GPT-3 se basan en esta arquitectura, con GPT-3 mostrando capacidades de aprendizaje en contexto remarables. Muchos LLM, incluyendo OPT, BLOOM y Gopher, han adoptado ampliamente decodificadores causales.
Arquitectura Decodificador de Prefijo
También conocida como la arquitectura de decodificador no causal, la arquitectura decodificador de prefijo modifica el mecanismo de enmascaramiento de los decodificadores causales para permitir una atención bidireccional sobre tokens de prefijo y una atención unidireccional sobre tokens generados. Al igual que la arquitectura codificador-decodificador, los decodificadores de prefijo pueden codificar la secuencia de prefijo bidireccionalmente y predecir tokens de salida de manera autoregresiva utilizando parámetros compartidos. LLM basados en decodificadores de prefijo incluyen GLM130B y U-PaLM.
Los tres tipos de arquitectura pueden extenderse utilizando la técnica de mezcla de expertos (MoE), que activa esparsamente un subconjunto de pesos de la red neuronal para cada entrada. Este enfoque ha sido empleado en modelos como Switch Transformer y GLaM, con un aumento en el número de expertos o el tamaño total de parámetros que muestra mejoras significativas en el rendimiento.
Transformador de Decodificador Solo: Aceptando la Naturaleza Autoregresiva
Si bien la arquitectura de transformador original se diseñó para tareas de secuencia a secuencia como la traducción automática, muchas tareas de NLP, como el modelado de lenguaje y la generación de texto, se pueden enmarcar como problemas autoregresivos, donde el modelo genera un token a la vez, condicionado a los tokens generados previamente.
Entonces, entra el transformador de decodificador solo, una variante simplificada de la arquitectura de transformador que retiene solo el componente de decodificador. Esta arquitectura es particularmente adecuada para tareas autoregresivas, ya que genera tokens de salida uno a uno, aprovechando los tokens generados previamente como contexto de entrada.
La diferencia clave entre el transformador de decodificador solo y el decodificador de transformador original radica en el mecanismo de atención propia. En el entorno de decodificador solo, la operación de atención propia se modifica para evitar que el modelo atienda a tokens futuros, una propiedad conocida como causalidad. Esto se logra mediante una técnica llamada “atención propia enmascarada”, donde las puntuaciones de atención correspondientes a posiciones futuras se establecen en negativa infinita, efectivamente enmascarándolas durante el paso de normalización softmax.
Componentes Arquitectónicos de LLM Basados en Decodificador
Si bien los principios básicos de la atención propia y la atención propia enmascarada permanecen iguales, los LLM modernos basados en decodificador han introducido varias innovaciones arquitectónicas para mejorar el rendimiento, la eficiencia y las capacidades de generalización. Exploraremos algunos de los componentes y técnicas clave empleados en LLM de vanguardia.
Representación de Entrada
Antes de procesar la secuencia de entrada, los LLM basados en decodificador emplean técnicas de tokenización y incrustación para convertir el texto crudo en una representación numérica adecuada para el modelo.
Tokenización: El proceso de tokenización convierte el texto de entrada en una secuencia de tokens, que pueden ser palabras, subpalabras o incluso caracteres individuales, dependiendo de la estrategia de tokenización empleada. Técnicas de tokenización populares para LLM incluyen Codificación de Pares de Bytes (BPE), SentencePiece y WordPiece. Estos métodos apuntan a equilibrar el tamaño del vocabulario y la granularidad de la representación, permitiendo al modelo manejar palabras poco comunes o fuera del vocabulario de manera efectiva.
Incrustaciones de Token: Después de la tokenización, cada token se asigna a una representación vectorial densa llamada incrustación de token. Estas incrustaciones se aprenden durante el proceso de entrenamiento y capturan relaciones semánticas y sintácticas entre tokens.
Incrustaciones de Posición: Los modelos de transformador procesan la secuencia de entrada completa simultáneamente, careciendo de la noción inherente de posición de token presente en los modelos recurrentes. Para incorporar información de posición, se agregan incrustaciones de posición a las incrustaciones de token, permitiendo al modelo distinguir entre tokens en función de sus posiciones en la secuencia. Los primeros LLM utilizaron incrustaciones de posición fijas basadas en funciones sinusoidales, mientras que los modelos más recientes han explorado incrustaciones de posición aprendidas o técnicas de codificación de posición alternativas como incrustaciones de posición rotativas.
Bloques de Atención de Multi-Cabeza
Los bloques de construcción básicos de los LLM basados en decodificador son capas de atención de multi-cabeza, que realizan la operación de atención propia enmascarada descrita anteriormente. Estas capas se apilan múltiples veces, con cada capa atendiendo a la salida de la capa anterior, lo que permite al modelo capturar dependencias y representaciones cada vez más complejas.
Cabezas de Atención: Cada capa de atención de multi-cabeza consta de múltiples “cabezas de atención“, cada una con su propio conjunto de proyecciones de consulta, clave y valor. Esto permite al modelo atender a diferentes aspectos de la entrada simultáneamente, capturando relaciones y patrones diversos.
Conexiones Residuales y Normalización de Capa: Para facilitar el entrenamiento de redes profundas y mitigar el problema de gradiente desvaneciente, los LLM basados en decodificador emplean conexiones residuales y técnicas de normalización de capa. Las conexiones residuales suman la entrada de una capa a su salida, lo que permite que los gradientes fluyan más fácilmente durante la propagación hacia atrás. La normalización de capa ayuda a estabilizar las activaciones y los gradientes, lo que mejora aún más la estabilidad del entrenamiento y el rendimiento.
Capas de Alimentación Adelantada
Además de las capas de atención de multi-cabeza, los LLM basados en decodificador incorporan capas de alimentación adelantada, que aplican una red neuronal de alimentación adelantada simple a cada posición en la secuencia. Estas capas introducen no linealidades y permiten al modelo aprender representaciones más complejas.
Funciones de Activación: La elección de la función de activación en las capas de alimentación adelantada puede afectar significativamente el rendimiento del modelo. Mientras que los LLM más antiguos confiaban en la función de activación ReLU ampliamente utilizada, los modelos más recientes han adoptado funciones de activación más sofisticadas como la Unidad Lineal de Error Gaussiano (GELU) o la activación SwiGLU, que han demostrado un mejor rendimiento.
Atención Esparsa y Transformadores Eficientes
Si bien el mecanismo de atención propia es poderoso, viene con una complejidad computacional cuadrática con respecto a la longitud de la secuencia, lo que lo hace computacionalmente costoso para secuencias largas. Para abordar este desafío, se han propuesto varias técnicas para reducir los requisitos computacionales y de memoria de la atención propia, permitiendo el procesamiento eficiente de secuencias más largas.
Atención Esparsa: Las técnicas de atención esparsa, como la empleada en el modelo GPT-3, atienden selectivamente a un subconjunto de posiciones en la secuencia de entrada, en lugar de calcular puntuaciones de atención para todas las posiciones. Esto puede reducir significativamente la complejidad computacional mientras mantiene un rendimiento razonable.
Atención de Ventana Deslizante: Introducida en el modelo Mistral 7B, la atención de ventana deslizante (SWA) es una técnica simple pero efectiva que restringe el alcance de atención de cada token a un tamaño de ventana fijo. Este enfoque aprovecha la capacidad de las capas de transformador para transmitir información a través de múltiples capas, efectivamente aumentando el alcance de atención sin la complejidad cuadrática de la atención propia completa.
Cache de Búfer de Rodillo: Para reducir aún más los requisitos de memoria, especialmente para secuencias largas, el modelo Mistral 7B emplea un cache de búfer de rodillo. Esta técnica almacena y reutiliza los vectores de clave y valor calculados para un tamaño de ventana fijo, evitando cálculos redundantes y minimizando el uso de memoria.
Atención de Consulta Agrupada: Introducida en el modelo LLaMA 2, la atención de consulta agrupada (GQA) es una variante del mecanismo de atención de multi-consulta que divide las cabezas de atención en grupos, cada uno compartiendo una matriz de clave y valor común. Este enfoque equilibra la eficiencia de la atención de multi-consulta y el rendimiento de la atención propia estándar, proporcionando tiempos de inferencia mejorados mientras mantiene resultados de alta calidad.
















