Inteligencia artificial

Modelos de Lenguaje Grande Basados en Decodificador: Una Guía Completa

mm
Decoder-Based Large Language Models: A Complete Guide

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.

Arquitectura de Transformadores

Arquitectura de Transformadores

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.

Atención multiquery

Atención multiquery

La operación de atención auto se puede descomponer en tres pasos principales:

  1. 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.
  2. 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.
  3. 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.

incrustación de vector

incrustación de vector

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.

Atención de consulta agrupada

Atención de consulta agrupada

Tamaño del Modelo y Escalado

Una de las características definitorias de los LLM modernos es su escala, con el número de parámetros que varía desde miles de millones hasta cientos de miles de millones. El aumento del tamaño del modelo ha sido un factor crucial para lograr un rendimiento de vanguardia, ya que los modelos más grandes pueden capturar patrones y relaciones más complejos en los datos.

Cuenta de Parámetros: El número de parámetros en un LLM basado en decodificador se determina principalmente por la dimensión de la incrustación (d_model), el número de cabezas de atención (n_heads), el número de capas (n_layers) y el tamaño del vocabulario (vocab_size). Por ejemplo, el modelo GPT-3 tiene 175 mil millones de parámetros, con d_model = 12288, n_heads = 96, n_layers = 96 y vocab_size = 50257.

Paralelismo de Modelo: Entrenar y desplegar modelos tan masivos requiere recursos computacionales sustanciales y hardware especializado. Para superar este desafío, se han empleado técnicas de paralelismo de modelo, donde el modelo se divide en múltiples GPUs o TPUs, con cada dispositivo responsable de una porción de los cálculos.

Mezcla de Expertos: Otra aproximación para escalar LLM es la arquitectura de mezcla de expertos (MoE), que combina múltiples modelos de expertos, cada uno especializado en un subconjunto específico de los datos o la tarea. El modelo Mixtral 8x7B es un ejemplo de un modelo MoE que utiliza el Mistral 7B como su modelo base, logrando un rendimiento superior mientras mantiene la eficiencia computacional.

Inferencia y Generación de Texto

Uno de los usos principales de los LLM basados en decodificador es la generación de texto, donde el modelo genera texto coherente y con un sonido natural basado en un prompt o contexto dado.

Decodificación Autoregresiva: Durante la inferencia, los LLM basados en decodificador generan texto de manera autoregresiva, prediciendo un token a la vez basado en los tokens generados previamente y el prompt de entrada. Este proceso continúa hasta que se alcanza un criterio de detención predeterminado, como alcanzar una longitud de secuencia máxima o generar un token de fin de secuencia.

Estrategias de Muestreo: Para generar texto diverso y realista, se pueden emplear varias estrategias de muestreo, como muestreo top-k, muestreo top-p (también conocido como muestreo de núcleo) o escalado de temperatura. Estas técnicas controlan el equilibrio entre la diversidad y la coherencia del texto generado ajustando la distribución de probabilidad sobre el vocabulario.

Ingeniería de Prompt: La calidad y especificidad del prompt de entrada pueden impactar significativamente el texto generado. La ingeniería de prompt, el arte de crear prompts efectivos, ha surgido como un aspecto crucial para aprovechar los LLM en diversas tareas, permitiendo a los usuarios guiar el proceso de generación del modelo y lograr salidas deseadas.

Decodificación con Retroalimentación Humana: Para mejorar aún más la calidad y coherencia del texto generado, se han empleado técnicas como el Aprendizaje de Refuerzo con Retroalimentación Humana (RLHF). En este enfoque, evaluadores humanos proporcionan retroalimentación sobre el texto generado por el modelo, que se utiliza para ajustar el modelo, efectivamente alineándolo con las preferencias humanas y mejorando sus salidas.

Avances y Direcciones Futuras

El campo de los LLM basados en decodificador está evolucionando rápidamente, con nuevas investigaciones y avances que continuamente empujan los límites de lo que estos modelos pueden lograr. Aquí se presentan algunos avances notables y posibles direcciones futuras:

Variantes de Transformador Eficientes: Mientras que la atención dispersa y la atención de ventana deslizante han hecho avances significativos en la mejora de la eficiencia de los LLM basados en decodificador, los investigadores están explorando activamente arquitecturas y mecanismos de atención alternativos para reducir aún más los requisitos computacionales mientras se mantiene o mejora el rendimiento.

LLM Multimodales: Extendiendo las capacidades de los LLM más allá del texto, los modelos multimodales buscan integrar múltiples modalidades, como imágenes, audio o video, en un marco unificado. Esto abre posibilidades emocionantes para aplicaciones como la generación de subtítulos de imágenes, la respuesta a preguntas visuales y la generación de contenido multimedia.

Generación Controlada: Permitir un control detallado sobre el texto generado es una dirección importante pero desafiante para los LLM. Técnicas como la generación de texto controlada y el ajuste de prompt buscan proporcionar a los usuarios un control más granular sobre varios atributos del texto generado, como estilo, tono o requisitos de contenido específicos.

Conclusión

Los LLM basados en decodificador han surgido como una fuerza transformadora en el campo del procesamiento de lenguaje natural, empujando los límites de lo que es posible con la generación y comprensión del lenguaje. Desde sus humildes comienzos como una variante simplificada de la arquitectura de transformador, estos modelos han evolucionado en sistemas poderosos y sofisticados, aprovechando técnicas y innovaciones arquitectónicas de vanguardia.

A medida que continuamos explorando y avanzando en los LLM basados en decodificador, podemos esperar presenciar logros aún más notables en tareas relacionadas con el lenguaje, así como la integración de estos modelos en una amplia gama de aplicaciones y dominios. Sin embargo, es crucial abordar las consideraciones éticas, los desafíos de interpretación y los posibles sesgos que pueden surgir del despliegue generalizado de estos modelos poderosos.

Al mantenernos a la vanguardia de la investigación, fomentar la colaboración abierta y mantener un fuerte compromiso con el desarrollo responsable de la IA, podemos desbloquear el potencial completo de los LLM basados en decodificador mientras nos aseguramos de que se desarrollen y utilicen de manera segura, ética y beneficiosa para la sociedad.

He dedicado los últimos cinco años sumergiéndome en el fascinante mundo de Machine Learning y Deep Learning. Mi pasión y experiencia me han llevado a contribuir a más de 50 proyectos de ingeniería de software diversos, con un enfoque particular en AI/ML. Mi curiosidad en curso también me ha llevado hacia el Procesamiento de Lenguaje Natural, un campo que estoy ansioso por explorar más a fondo.