Comprendiendo la Afinación Fina de LLM Adaptando Grandes Modelos de Lenguaje a tus Requisitos Únicos

Comprendiendo la Afinación Fina de LLM

A medida que nos encontramos en septiembre de 2023, el panorama de los Modelos de Lenguaje Grande (LLMs) aún está presenciando el surgimiento de modelos que incluyen Alpaca, Falcon, Llama 2, GPT-4 y muchos otros.

Un aspecto fundamental para aprovechar el potencial de estos LLMs radica en el proceso de ajuste fino, una estrategia que permite personalizar modelos pre-entrenados para adaptarse a tareas específicas con precisión. Es a través de este ajuste fino que estos modelos pueden alinearse verdaderamente con los requisitos individualizados, ofreciendo soluciones innovadoras y adaptadas a necesidades únicas.

Sin embargo, es importante tener en cuenta que no todas las opciones de ajuste fino son iguales. Por ejemplo, acceder a las capacidades de ajuste fino de GPT-4 tiene un costo, requiriendo una suscripción paga que es relativamente más cara en comparación con otras opciones disponibles en el mercado. Por otro lado, el dominio de código abierto está lleno de alternativas que ofrecen un camino más accesible para aprovechar el poder de los modelos de lenguaje grande. Estas opciones de código abierto democratizan el acceso a la tecnología de IA avanzada, fomentando la innovación y la inclusión en el panorama de IA en constante evolución.

Hugging Face: Tabla de clasificación de LLMs abiertos

¿Por qué es importante el ajuste fino de LLMs?

El ajuste fino de LLMs es más que una mejora técnica; es un aspecto crucial del desarrollo de modelos de LLM que permite una aplicación más específica y refinada en diversas tareas. El ajuste fino adapta los modelos pre-entrenados para adaptarse mejor a conjuntos de datos específicos, mejorando su rendimiento en tareas particulares y garantizando una aplicación más enfocada. Revela la notable capacidad de los LLMs para adaptarse a nuevos datos, mostrando una flexibilidad que es vital en el creciente interés en las aplicaciones de IA.

El ajuste fino de los modelos de lenguaje grande abre muchas oportunidades, permitiéndoles sobresalir en tareas específicas que van desde el análisis de sentimientos hasta revisiones de literatura médica. Al ajustar el modelo base a un caso de uso específico, desbloqueamos nuevas posibilidades, mejorando la eficiencia y precisión del modelo. Además, facilita una utilización más económica de los recursos del sistema, ya que el ajuste fino requiere menos potencia computacional en comparación con entrenar un modelo desde cero.

A medida que avanzamos en esta guía, discutiremos las complejidades del ajuste fino de LLMs, brindándote una visión general completa basada en los últimos avances y mejores prácticas en el campo.

Ajuste fino basado en instrucciones

La fase de ajuste fino en el ciclo de vida de la IA generativa, ilustrada en la figura a continuación, se caracteriza por la integración de entradas y salidas de instrucciones, junto con ejemplos de razonamiento paso a paso. Este enfoque facilita que el modelo genere respuestas que no solo sean relevantes, sino también precisamente alineadas con las instrucciones específicas que se le proporcionan. Es durante esta fase que los modelos pre-entrenados se adaptan para resolver tareas y casos de uso distintos, utilizando conjuntos de datos personalizados para mejorar su funcionalidad.

Ciclo de vida de la IA generativa – Ajuste fino

Ajuste fino de una sola tarea

El ajuste fino de una sola tarea se centra en perfeccionar la experiencia del modelo en una tarea específica, como la resumen. Este enfoque es particularmente beneficioso para optimizar flujos de trabajo que implican documentos o hilos de conversación sustanciales, incluyendo documentos legales y tickets de soporte al cliente. Notablemente, este ajuste fino puede lograr mejoras significativas en el rendimiento con un conjunto de ejemplos relativamente pequeño, que va desde 500 a 1000, en contraste con los miles de millones de tokens utilizados en la fase de pre-entrenamiento.

Ejemplo de ilustración de ajuste fino de una sola tarea

 

Fundamentos del ajuste fino de LLMs: Arquitectura del LLM y más allá

El viaje para comprender el ajuste fino de LLMs comienza con la comprensión de los elementos fundamentales que constituyen los modelos de lenguaje grande. En el corazón de estos modelos se encuentra la arquitectura del transformer, una red neuronal que utiliza mecanismos de autoatención para priorizar el contexto de las palabras sobre su proximidad en una oración. Este enfoque innovador facilita una comprensión más profunda de las relaciones distantes entre tokens en la entrada.

A medida que navegamos por las complejidades de los transformers, nos encontramos con un proceso de múltiples pasos que comienza con el codificador. Esta fase inicial implica tokenizar la entrada y crear vectores de incrustación que representan la entrada y su posición en la oración. Las etapas posteriores involucran una serie de cálculos utilizando matrices conocidas como Consulta, Valor y Clave, culminando en un puntaje de autoatención que dicta el enfoque en diferentes partes de la oración y varios tokens.

Arquitectura del Transformer

La afinación fina se presenta como una fase crítica en el desarrollo de LLMs, un proceso que implica hacer ajustes sutiles para lograr salidas más deseables. Esta etapa, aunque esencial, presenta una serie de desafíos, incluyendo las demandas computacionales y de almacenamiento para manejar una gran cantidad de parámetros. El Ajuste Fino Eficiente de Parámetros (PEFT) ofrece técnicas para reducir el número de parámetros que se afinarán, simplificando así el proceso de entrenamiento.

LLM Pre-Training: Estableciendo una Base Sólida

En las etapas iniciales del desarrollo de LLM, el pre-entrenamiento toma protagonismo, utilizando transformers sobreparametrizados como la arquitectura base. Este proceso implica modelar el lenguaje natural de diversas maneras, como bidireccional, autoregresivo o de secuencia a secuencia, en corpus no supervisados a gran escala. El objetivo aquí es crear una base que pueda afinarse posteriormente para tareas específicas a través de la introducción de objetivos específicos de la tarea.

Pre-entrenamiento, Ajuste Fino

Una tendencia destacada en este ámbito es el inevitable aumento en la escala de los LLMs pre-entrenados, medido por el número de parámetros. Los datos empíricos muestran consistentemente que modelos más grandes combinados con más datos casi siempre ofrecen un mejor rendimiento. Por ejemplo, el GPT-3, con sus 175 mil millones de parámetros, ha establecido un referente en la generación de lenguaje natural de alta calidad y en la realización eficiente de una amplia gama de tareas sin necesidad de entrenamiento específico.

Ajuste Fino: El Camino hacia la Adaptación del Modelo

Después del pre-entrenamiento, el LLM se somete a un ajuste fino para adaptarse a tareas específicas. A pesar del rendimiento prometedor mostrado por el aprendizaje en contexto en LLMs pre-entrenados como el GPT-3, el ajuste fino sigue siendo superior en configuraciones específicas de la tarea. Sin embargo, el enfoque predominante de ajuste fino de parámetros completos presenta desafíos, incluyendo altas demandas computacionales y de memoria, especialmente al lidiar con modelos a gran escala.

Para modelos de lenguaje grandes con más de mil millones de parámetros, es fundamental gestionar eficientemente la memoria de la GPU. Un solo parámetro del modelo a precisión completa de 32 bits requiere 4 bytes de espacio, lo que se traduce en una necesidad de 4 GB de memoria de GPU solo para cargar un modelo de mil millones de parámetros. El proceso de entrenamiento real requiere aún más memoria para acomodar varios componentes, incluyendo estados del optimizador y gradientes, lo que potencialmente requiere hasta 80 GB de memoria de GPU para un modelo de esta escala.

Para sortear las limitaciones de la memoria de la GPU, se utiliza la cuantización, que es una técnica que reduce la precisión de los parámetros del modelo, disminuyendo así los requisitos de memoria. Por ejemplo, cambiar la precisión de 32 bits a 16 bits puede reducir a la mitad la memoria necesaria tanto para cargar como para entrenar el modelo. Más adelante en este artículo, aprenderemos sobre Qlora, que utiliza el concepto de cuantización para el ajuste.

Requisito de memoria de GPU de LLM en relación al número de parámetros y precisión

Explorando las Categorías de Métodos PEFT

Métodos de ajuste fino eficiente de parámetros

En el proceso de ajuste fino completo de Modelos de Lenguaje Grandes, es importante contar con una configuración computacional que pueda manejar de manera eficiente no solo los pesos sustanciales del modelo, que para los modelos más avanzados ahora alcanzan tamaños de cientos de gigabytes, sino también gestionar una serie de otros elementos críticos. Estos incluyen la asignación de memoria para los estados del optimizador, el manejo de gradientes, las activaciones hacia adelante y la facilitación de memoria temporal durante varias etapas del procedimiento de entrenamiento.

Método Aditivo

Este tipo de ajuste puede aumentar el modelo pre-entrenado con parámetros o capas adicionales, centrando el entrenamiento solo en los parámetros recién agregados. A pesar de aumentar el número de parámetros, estos métodos mejoran la eficiencia de tiempo y espacio de entrenamiento. El método aditivo se divide en subcategorías:

  • Adaptadores: Incorporan redes pequeñas completamente conectadas después de las subcapas del transformador, con ejemplos destacados como AdaMix, KronA y Compactor.
  • Soft Prompts: Ajustan finamente una parte de las incrustaciones de entrada del modelo mediante descenso de gradiente, con ejemplos prominentes como IPT, prefix-tuning y WARP.
  • Otras aproximaciones aditivas: Incluyen técnicas como LeTS, AttentionFusion y Ladder-Side Tuning.

Método selectivo

Los PEFT selectivos ajustan un número limitado de capas superiores basándose en el tipo de capa y la estructura interna del modelo. Esta categoría incluye métodos como BitFit y LN tuning, que se centran en ajustar elementos específicos como sesgos del modelo o filas particulares.

Método basado en reparametrización

Estos métodos utilizan representaciones de rango bajo para reducir el número de parámetros entrenables, siendo el más conocido Low-Rank Adaptation o LoRA. Este método utiliza una descomposición de matriz de rango bajo simple para parametrizar la actualización de pesos, demostrando un ajuste fino efectivo en subespacios de rango bajo.

1) LoRA (Low-Rank Adaptation)

LoRA surgió como una técnica PEFT innovadora, introducida en un artículo de Edward J. Hu y otros en 2021. Opera dentro de la categoría de reparametrización, congelando los pesos originales del LLM e integrando nuevas matrices de rango bajo entrenables en cada capa de la arquitectura del Transformador. Este enfoque no solo reduce el número de parámetros entrenables, sino que también disminuye el tiempo de entrenamiento y los recursos computacionales necesarios, presentando así una alternativa más eficiente al ajuste fino completo.

Para comprender la mecánica de LoRA, es necesario volver a la arquitectura del transformador donde la entrada de la consulta se somete a tokenización y conversión en vectores de incrustación. Estos vectores atraviesan los segmentos del codificador y/o decodificador del transformador, encontrándose con autoatención y redes de alimentación hacia adelante cuyos pesos están pre-entrenados.

LoRA utiliza el concepto de Descomposición de Valor Singular (SVD, por sus siglas en inglés). Esencialmente, SVD descompone una matriz en tres matrices distintas, una de las cuales es una matriz diagonal que alberga los valores singulares. Estos valores singulares son fundamentales, ya que evalúan la importancia de las diferentes dimensiones en las matrices, indicando mayor importancia para los valores más grandes y menor importancia para los valores más pequeños.

Descomposición de Valor Singular (SVD) de una matriz m × n

Este enfoque permite que LoRA mantenga las características esenciales de los datos al tiempo que reduce la dimensionalidad, optimizando así el proceso de ajuste fino.

LoRA interviene en este proceso, congelando todos los parámetros del modelo original e introduciendo un par de “matrices de descomposición de rango” junto con los pesos originales. Estas matrices más pequeñas, denominadas A y B, se someten a entrenamiento mediante aprendizaje supervisado, un proceso descrito en capítulos anteriores.

Ilustración de LORA LLM

El elemento clave en esta estrategia es el parámetro llamado rango (‘r’), que dicta el tamaño de las matrices de rango bajo. Una selección meticulosa de ‘r’ puede producir resultados impresionantes, incluso con un valor más pequeño, creando así una matriz de rango bajo con menos parámetros para entrenar. Esta estrategia se ha implementado de manera efectiva utilizando bibliotecas de código abierto como HuggingFace Transformers, facilitando el ajuste fino de LoRA para varias tareas con una eficiencia notable.

2) QLoRA: Llevando la eficiencia de LoRA a un nivel superior

Basándose en los cimientos establecidos por LoRA, QLoRA minimiza aún más los requisitos de memoria. Introducido por Tim Dettmers y otros en 2023, combina la adaptación de rango bajo con cuantización, utilizando un formato de cuantización de 4 bits denominado NormalFloat o nf4. La cuantización es esencialmente un proceso que transiciona los datos desde una representación informativa más alta a una con menos información. Este enfoque mantiene la eficacia de los métodos de ajuste fino de 16 bits, descuantizando los pesos de 4 bits a 16 bits según sea necesario durante los procesos computacionales.

Comparando métodos de ajuste fino: QLORA mejora LoRA con cuantificación de precisión de 4 bits y optimizadores paginados para la gestión de picos de memoria

QLoRA aprovecha NumericFloat4 (nf4), apuntando a cada capa en la arquitectura del transformador, e introduce el concepto de doble cuantificación para reducir aún más la huella de memoria requerida para el ajuste fino. Esto se logra realizando una cuantificación de las constantes ya cuantificadas, una estrategia que evita los típicos picos de memoria de verificación de gradientes a través del uso de optimizadores paginados y gestión unificada de memoria.

Guanaco, que es un conjunto optimizado por QLORA, establece un referente en soluciones de chatbot de código abierto. Su rendimiento, validado mediante evaluaciones sistemáticas humanas y automatizadas, subraya su dominio y eficiencia en el campo.

Las versiones de Guanaco de 65B y 33B, ajustadas finamente utilizando una versión modificada del conjunto de datos OASST1, se presentan como contendientes formidables para modelos reconocidos como ChatGPT e incluso GPT-4.

Ajuste fino utilizando Aprendizaje por Refuerzo a partir del Feedback Humano

El Aprendizaje por Refuerzo a partir del Feedback Humano (RLHF) entra en juego cuando se ajustan modelos de lenguaje preentrenados para alinearse más estrechamente con los valores humanos. Este concepto fue introducido por Open AI en 2017 sentando las bases para la mejora de la resumenización de documentos y el desarrollo de InstructGPT.

En el núcleo de RLHF se encuentra el paradigma de aprendizaje por refuerzo, un tipo de técnica de aprendizaje automático donde un agente aprende cómo comportarse en un entorno realizando acciones y recibiendo recompensas. Es un bucle continuo de acción y retroalimentación, donde el agente tiene incentivos para tomar decisiones que generen la mayor recompensa.

Traduciendo esto al ámbito de los modelos de lenguaje, el agente es el modelo en sí mismo, operando dentro del entorno de una ventana de contexto dada y tomando decisiones basadas en el estado, que está definido por los tokens actuales en la ventana de contexto. El “espacio de acciones” abarca todos los posibles tokens que el modelo puede elegir, con el objetivo de seleccionar el token que se alinee más estrechamente con las preferencias humanas.

El proceso de RLHF utiliza ampliamente el feedback humano, utilizándolo para entrenar un modelo de recompensa. Este modelo desempeña un papel crucial para guiar al modelo preentrenado durante el proceso de ajuste fino, animándolo a generar salidas que estén más alineadas con los valores humanos. Es un proceso dinámico e iterativo, donde el modelo aprende a través de una serie de “rollouts”, un término utilizado para describir la secuencia de estados y acciones que conducen a una recompensa en el contexto de la generación de lenguaje.

Instruct-GPT

Una de las notables potencialidades de RLHF es su capacidad para fomentar la personalización en los asistentes de IA, adaptándolos a las preferencias individuales de los usuarios, ya sea su sentido del humor o rutinas diarias. Abre caminos para crear sistemas de IA que no solo son técnicamente competentes, sino también emocionalmente inteligentes, capaces de comprender y responder a los matices de la comunicación humana.

Sin embargo, es esencial tener en cuenta que RLHF no es una solución infalible. Los modelos aún son susceptibles de generar salidas indeseables, reflejo de los vastos y a menudo no regulados y sesgados datos en los que se entrenan.

Conclusión

El proceso de ajuste fino, un paso crítico para aprovechar todo el potencial de los LLMs como Alpaca, Falcon y GPT-4, se ha vuelto más refinado y enfocado, ofreciendo soluciones adaptadas a una amplia gama de tareas.

Hemos visto el ajuste fino de una sola tarea, que se especializa en modelos en roles particulares, y métodos de Ajuste Fino de Eficiencia de Parámetros (PEFT) que incluyen LoRA y QLoRA, que buscan hacer que el proceso de entrenamiento sea más eficiente y rentable. Estos desarrollos están abriendo puertas a funcionalidades de IA de alto nivel para un público más amplio.

Además, la introducción de Aprendizaje por Refuerzo a partir del Feedback Humano (RLHF) por parte de Open AI es un paso hacia la creación de sistemas de IA que comprendan y se alineen más estrechamente con los valores y preferencias humanas, sentando las bases para asistentes de IA que no solo son inteligentes, sino también sensibles a las necesidades individuales del usuario. Tanto RLHF como PEFT funcionan en sinergia para mejorar la funcionalidad y eficiencia de los Modelos de Lenguaje Grandes.

A medida que las empresas, las organizaciones y las personas buscan integrar estos LLMs afinados en sus operaciones, esencialmente están dando la bienvenida a un futuro en el que la IA es más que una herramienta; es un socio que comprende y se adapta a los contextos humanos, ofreciendo soluciones innovadoras y personalizadas.