Inteligencia artificial
Modelos de Lenguaje Grande Basados en Decodificador: Una Guía Completa
Los Modelos de Lenguaje Grande (LLM) han revolucionado el campo del procesamiento de lenguaje natural (NLP) al demostrar capacidades notables en la generación de texto similar al humano, la respuesta a preguntas y la asistencia en 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 artículo seminal “La atención es todo lo que necesitas” de Vaswani et al.
En esta guía integral, exploraremos los mecanismos internos de los LLM basados en decodificador, profundizando en los bloques de construcción fundamentales, las innovaciones arquitectónicas y los detalles de implementación que han impulsado a estos modelos a la vanguardia de la investigación y las aplicaciones de NLP.
La Arquitectura de Transformador: Un Recordatorio
Antes de sumergirnos en los detalles 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, basándose ú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 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 idioma de origen y el decodificador genera la oración correspondiente en el idioma de destino.
Atención Auto: La Clave del Éxito del Transformador
En el corazón del transformador se encuentra el mecanismo de atención auto, 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 tokens de entrada secuencialmente, la atención auto permite al modelo capturar dependencias entre cualquier par de tokens, independientemente de su posición en la secuencia.
La operación de atención auto se puede descomponer 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 todas las claves. 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 multi-cabeza, una variante del mecanismo de atención auto, 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 siguen siendo consistentes, los investigadores han explorado varias variantes y configuraciones arquitectónicas para mejorar el rendimiento, la eficiencia y las capacidades de generalización. En esta sección, exploraremos las diferentes opciones arquitectónicas y sus implicaciones.
Tipos de Arquitectura
Los LLM basados en decodificador se pueden clasificar ampliamente en tres tipos principales: 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 auto multi-cabeza apiladas para codificar la secuencia de entrada y generar representaciones contextualizadas. El decodificador luego realiza una atención cruzada sobre estas representaciones para generar la secuencia de salida. Aunque es efectiva en varias 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, permitiendo que cada token de entrada atienda solo a tokens pasados y a sí mismo. Tanto los tokens de entrada como 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 notables. Muchos LLM, incluidos 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 de 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 de manera bidireccional y predecir tokens de salida de manera autoregresiva utilizando parámetros compartidos. Los LLM basados en decodificadores de prefijo incluyen GLM130B y U-PaLM.
Los tres tipos de arquitectura pueden extenderse utilizando la técnica de escalado de mezcla de expertos (MoE), que activa de manera dispersa 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 mostrando 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 por los tokens generados previamente.
Aquí entra en juego 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 principal diferencia entre el transformador de decodificador solo y el decodificador de transformador original radica en el mecanismo de atención auto. En el entorno de decodificador solo, la operación de atención auto 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 auto enmascarada”, donde las puntuaciones de atención correspondientes a posiciones futuras se establecen en menos infinito, efectivamente enmascarándolas durante la normalización softmax.
Componentes Arquitectónicos de LLM Basados en Decodificador
Si bien los principios básicos de la atención auto y la atención auto enmascarada siguen siendo los mismos, 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 los 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 buscan equilibrar el tamaño del vocabulario y la granularidad de la representación, permitiendo al modelo manejar palabras raras o fuera del vocabulario de manera efectiva.
Incrustaciones de Token: Después de la tokenización, cada token se asigna a un vector de representación denso llamado 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 posicional, se agregan incrustaciones de posición a las incrustaciones de token, permitiendo al modelo distinguir entre tokens en función de su posición en la secuencia. Los LLM tempranos utilizaron incrustaciones de posición fijas basadas en funciones sinusoidales, mientras que modelos más recientes han explorado incrustaciones de posición aprendidas o técnicas de codificación posicional alternativas como las incrustaciones de posición rotativas.
Bloques de Atención Multi-Cabeza
Los bloques de construcción básicos de los LLM basados en decodificador son capas de atención multi-cabeza, que realizan la operación de atención auto 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 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, permitiendo 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, mejorando aún más la estabilidad y el rendimiento del entrenamiento.
Capas de Alimentación Adelantada
Además de las capas de atención 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 tener un impacto significativo en 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 Dispersa y Transformadores Eficientes
Si bien el mecanismo de atención auto 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 auto, permitiendo el procesamiento eficiente de secuencias más largas.
Atención Dispersa: Las técnicas de atención dispersa, 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 auto completa.
Cache de Búfer de Desplazamiento: 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 desplazamiento. 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 multi-consulta que divide las cabezas de atención en grupos, cada grupo compartiendo una matriz de clave y valor común. Este enfoque equilibra la eficiencia de la atención multi-consulta y el rendimiento de la atención auto estándar, proporcionando tiempos de inferencia mejorados mientras mantiene resultados de alta calidad.
















