Connect with us

Ingeniería de prompts

Comprender el ajuste fino de LLM: personalizar grandes modelos de lenguaje para satisfacer sus requisitos únicos

mm
LLM Fine tuning representation - Midjourney

A medida que nos encontramos en septiembre de 2023, el panorama de los grandes modelos de lenguaje (LLM) sigue siendo testigo del auge de modelos que incluyen Alpaca, Falcon, Llama 2, GPT-4, y muchos otros.

Un aspecto importante de aprovechar el potencial de estos LLM radica en el proceso de ajuste fino, una estrategia que permite la personalización de modelos preentrenados para satisfacer tareas específicas con precisión. Es a través de este ajuste fino que estos modelos pueden alinearse verdaderamente con requisitos individualizados, ofreciendo soluciones que son innovadoras y personalizadas para necesidades únicas.

Sin embargo, es esencial tener en cuenta que no todas las vías de ajuste fino son creadas igual. Por ejemplo, acceder a las capacidades de ajuste fino de GPT-4 conlleva un costo, requiriendo una suscripción pagada 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 una vía de acceso más accesible para aprovechar el poder de los grandes modelos de lenguaje. Estas opciones de código abierto democratizan el acceso a tecnología de inteligencia artificial avanzada, fomentando la innovación y la inclusión en el panorama de inteligencia artificial en constante evolución.

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

El ajuste fino de LLM es más que una mejora técnica; es un aspecto crucial del desarrollo del modelo de LLM que permite una aplicación más específica y refinada en diversas tareas. El ajuste fino ajusta los modelos preentrenados para que se adapten mejor a conjuntos de datos específicos, mejorando su rendimiento en tareas particulares y garantizando una aplicación más dirigida. Esto permite la notable capacidad de los LLM para adaptarse a nuevos datos, mostrando flexibilidad que es vital en el creciente interés en aplicaciones de inteligencia artificial.

El ajuste fino de grandes modelos de lenguaje abre un amplio abanico de oportunidades, permitiéndoles destacar en tareas que van desde el análisis de sentimiento hasta la revisión 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 poder computacional en comparación con el entrenamiento de un modelo desde cero.

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

Ajuste fino basado en instrucciones

La fase de ajuste fino en el ciclo de vida de la inteligencia artificial 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 son relevantes, sino también precisamente alineadas con las instrucciones específicas introducidas en él. Es durante esta fase que los modelos preentrenados se adaptan para resolver tareas y casos de uso distintos, utilizando conjuntos de datos personalizados para mejorar su funcionalidad.

Ciclo de vida de la inteligencia artificial generativa - Ajuste fino, ingeniería de instrucciones y RLHF

Ciclo de vida de la inteligencia artificial 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 involucran documentos sustanciales o hilos de conversación, incluidos documentos legales y tickets de soporte al cliente. Notablemente, este ajuste fino puede lograr mejoras significativas en el rendimiento con un conjunto relativamente pequeño de ejemplos, que van desde 500 a 1000, en contraste con los miles de millones de tokens utilizados en la fase de preentrenamiento.

Ilustración de ejemplo de ajuste fino de una sola tarea

Ilustración de ejemplo de ajuste fino de una sola tarea

 

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

El viaje para comprender el ajuste fino de LLM comienza con una comprensión de los elementos fundamentales que constituyen los LLM. En el corazón de estos modelos se encuentra la arquitectura de transformador, una red neuronal que aprovecha 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 transformadores, 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 subsiguientes involucran una serie de cálculos utilizando matrices conocidas como Consulta, Valor y Clave, culminando en una puntuación de autoatención que dicta el enfoque en diferentes partes de la oración y varios tokens.

Arquitectura de transformador

Arquitectura de transformador

El ajuste fino se erige como una fase crítica en el desarrollo de los LLM, un proceso que implica hacer ajustes sutiles para lograr salidas más deseables. Esta etapa, aunque esencial, presenta un conjunto de desafíos, incluidas las demandas computacionales y de almacenamiento de manejar una vasta cantidad de parámetros. El ajuste fino eficiente de parámetros (PEFT) ofrece técnicas para reducir la cantidad de parámetros a ajustar, simplificando así el proceso de entrenamiento.

Preentrenamiento de LLM: Establecer una base sólida

En las etapas iniciales del desarrollo de LLM, el preentrenamiento ocupa un lugar central, utilizando transformadores sobrepasados como la arquitectura fundamental. Este proceso implica modelar el lenguaje natural de diversas maneras, como bidireccional, autorregresivo o de secuencia a secuencia, en grandes corpus no supervisados. El objetivo aquí es crear una base que pueda ajustarse más adelante para tareas específicas de flujo descendente a través de la introducción de objetivos específicos de la tarea.

Preentrenamiento, ajuste fino

Preentrenamiento, ajuste fino

Una tendencia notable en esta esfera es el inevitable aumento en la escala de los LLM preentrenados, medido por la cantidad de parámetros. Los datos empíricos muestran consistentemente que los modelos más grandes, combinados con más datos, casi siempre rinden un mejor desempeño. Por ejemplo, el GPT-3, con sus 175 mil millones de parámetros, ha establecido un estándar en la generación de lenguaje natural de alta calidad y en el desempeño de una amplia gama de tareas de disparo cero de manera competente.

Ajuste fino: El camino hacia la adaptación del modelo

Después del preentrenamiento, el LLM pasa por un ajuste fino para adaptarse a tareas específicas. A pesar del desempeño prometedor mostrado por el aprendizaje en contexto en LLM preentrenados como GPT-3, el ajuste fino sigue siendo superior en entornos de tarea específica. Sin embargo, el enfoque prevalente de ajuste fino de parámetros completos presenta desafíos, incluidas las altas demandas computacionales y de memoria, especialmente al tratar con modelos de gran escala.

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

Para navegar las limitaciones de la RAM de la GPU, se utiliza la cuantificació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 para cargar y entrenar el modelo. Más adelante en este artículo, aprenderemos sobre Qlora, que utiliza el concepto de cuantificación para el ajuste.

Requisito de memoria de la GPU de LLM con respecto al número de parámetros y precisión

Requisito de memoria de la GPU de LLM con respecto al número de parámetros y precisión

 

Explorando las categorías de métodos de PEFT

En el proceso de ajuste fino completo de los grandes modelos de lenguaje, es importante tener una configuración computacional que pueda manejar no solo los sustanciales pesos 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 estados del optimizador, gestión de gradientes, activaciones hacia adelante y facilitación de memoria temporal durante varias etapas del procedimiento de entrenamiento.

Método aditivo

Este tipo de ajuste puede aumentar el modelo preentrenado con parámetros o capas adicionales, centrándose en entrenar solo los parámetros recién agregados. A pesar de aumentar la cuenta de parámetros, estos métodos mejoran la eficiencia del tiempo y el espacio de entrenamiento. El método aditivo se divide aún más en subcategorías:

  • Adaptadores: Incorporando pequeñas redes neuronales completamente conectadas después de las subcapas del transformador, con ejemplos notables como AdaMix, KronA, y Compactor.
  • Prompts suaves: Ajuste fino de un segmento de las incrustaciones de entrada del modelo a través del descenso de gradiente, con IPT, prefix-tuning, y WARP siendo ejemplos prominentes.
  • Otros enfoques aditivos: Incluyen técnicas como LeTS, AttentionFusion, y Ladder-Side Tuning.

Método selectivo

Los PEFT selectivos ajustan un número limitado de capas superiores en función del 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 bajo rango para reducir la cantidad de parámetros trainable, siendo el más renombrado la Adaptación de bajo rango o LoRA. Este método aprovecha una simple descomposición de matriz de bajo rango para parametrizar la actualización de peso, demostrando un ajuste fino efectivo en subespacios de bajo rango.

1) LoRA (Adaptación de bajo rango)

LoRA surgió como una técnica de ajuste fino de PEFT innovadora, introducida en un artículo por 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 trainable de bajo rango en cada capa de la arquitectura de transformador. Este enfoque no solo reduce la cantidad de parámetros trainable, 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 revisitar la arquitectura de transformador donde la entrada del prompt se tokeniza y se convierte en vectores de incrustación. Estos vectores atraviesan el codificador y/o decodificador del transformador, encontrando redes de autoatención y feed-forward cuyos pesos están preentrenados.

LoRA utiliza el concepto de Descomposición en valores singulares (SVD). Esencialmente, la SVD descompone una matriz en tres matrices distintas, una de las cuales es una matriz diagonal que alberga valores singulares. Estos valores singulares son fundamentales, ya que miden la importancia de diferentes dimensiones en las matrices, con valores más grandes que indican mayor importancia y valores más pequeños que denotan menor importancia.

Descomposición en valores singulares (SVD) de una matriz rectangular m × n

Descomposición en valores singulares (SVD) de una matriz m × n

Este enfoque permite a LoRA mantener las características esenciales de los datos mientras 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 una pareja de “matrices de descomposición de rango” junto con los pesos originales. Estas matrices más pequeñas, denotadas como A y B, se entrenan a través del aprendizaje supervisado.

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

2) QLoRA: Llevando la eficiencia de LoRA más allá

Basándose en la base establecida por LoRA, QLoRA minimiza aún más los requisitos de memoria. Introducida por Tim Dettmers y otros en 2023, combina la adaptación de bajo rango con la cuantificación, empleando un formato de cuantificación de 4 bits llamado NormalFloat o nf4. La cuantificación es esencialmente un proceso que transita los datos desde una representación de información más alta a una con menos información. Este enfoque mantiene la eficacia de los métodos de ajuste fino de 16 bits, descuantificando los pesos de 4 bits a 16 bits según sea necesario durante los procesos computacionales.

Comparación de 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

Comparación de 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 de la arquitectura de transformador, e introduce el concepto de doble cuantificación para reducir aún más la huella de memoria necesaria para el ajuste fino. Esto se logra realizando la cuantificación en las constantes ya cuantificadas, una estrategia que evita los picos de memoria típicos del punto de control de gradientes a través de la utilización de optimizadores paginados y gestión de memoria unificada.

Guanaco, que es un conjunto ajustado con QLORA, establece un estándar en soluciones de chatbot de código abierto. Su rendimiento, validado a través de evaluaciones sistemáticas humanas y automatizadas, subraya su dominio y eficiencia en el campo.

Las versiones de 65B y 33B de Guanaco, ajustadas utilizando una versión modificada del conjunto de datos OASST1, emergen como contendores formidables a modelos renombrados como ChatGPT e incluso GPT-4.

Ajuste fino utilizando aprendizaje de refuerzo con retroalimentación humana

El aprendizaje de refuerzo con retroalimentación humana (RLHF) entra en juego cuando se ajusta un modelo de lenguaje preentrenado para alinearse más estrechamente con los valores humanos. Este concepto fue introducido por Open AI en 2017, sentando las bases para una mejor resumen de documentos y el desarrollo de InstructGPT.

En el núcleo de RLHF se encuentra el paradigma de aprendizaje de refuerzo, un tipo de técnica de aprendizaje automático en el que un agente aprende a comportarse en un entorno realizando acciones y recibiendo recompensas. Es un ciclo continuo de acción y retroalimentación, donde el agente está incentivado para tomar decisiones que producirán la mayor recompensa.

Al traducir esto al ámbito de los modelos de lenguaje, el agente es el modelo en sí, 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 acción” abarca todos los tokens potenciales 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 aprovecha ampliamente la retroalimentación humana, utilizándola para entrenar un modelo de recompensa. Este modelo desempeña un papel crucial al guiar el modelo preentrenado durante el proceso de ajuste fino, incentivándolo a generar salidas que se alineen más con los valores humanos. Es un proceso dinámico y iterativo, donde el modelo aprende a través de una serie de “despliegues”, 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.

Una de las posibilidades notables de RLHF es su capacidad para fomentar la personalización en asistentes de inteligencia artificial, adaptándolos para resonar con las preferencias de los usuarios individuales, ya sea su sentido del humor o sus rutinas diarias. Abre caminos para crear sistemas de inteligencia artificial que no solo son técnicamente competentes, sino también inteligentes emocionalmente, capaces de comprender y responder a matices en 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 a generar salidas no deseadas, un 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 el potencial completo de los LLM como Alpaca, Falcon y GPT-4, se ha vuelto más refinado y enfocado, ofreciendo soluciones personalizadas para una amplia gama de tareas.

Hemos visto el ajuste fino de una sola tarea, que especializa los modelos en roles particulares, y los métodos de ajuste fino eficiente de parámetros (PEFT) que incluyen LoRA y QLoRA, que apuntan a hacer que el proceso de entrenamiento sea más eficiente y rentable. Estos desarrollos están abriendo puertas a funcionalidades de inteligencia artificial de alto nivel para una audiencia más amplia.

Además, la introducción del aprendizaje de refuerzo con retroalimentación humana (RLHF) por Open AI es un paso hacia la creación de sistemas de inteligencia artificial que comprendan y se alineen más estrechamente con los valores y preferencias humanos, sentando las bases para asistentes de inteligencia artificial que no solo son inteligentes, sino también sensibles a las necesidades individuales de los usuarios. Tanto RLHF como PEFT trabajan en sinergia para mejorar la funcionalidad y eficiencia de los grandes modelos de lenguaje.

A medida que las empresas, empresas y particulares buscan integrar estos LLM ajustados en sus operaciones, están esencialmente acogiendo un futuro en el que la inteligencia artificial es más que una herramienta; es un socio que comprende y se adapta a los contextos humanos, ofreciendo soluciones que son innovadoras y personalizadas.

He pasado los últimos cinco años sumergiéndome en el fascinante mundo del Aprendizaje Automático y el Aprendizaje Profundo. 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 continua también me ha llevado hacia el Procesamiento de Lenguaje Natural, un campo que estoy ansioso por explorar más a fondo.