Ingeniería de prompts

Comprensión de la afinación de LLM: Personalización de modelos de lenguaje grande para satisfacer requisitos únicos

mm
Añade Unite.AI a tus fuentes preferidas en Google
LLM Fine tuning representation - Midjourney

En septiembre de 2023, el panorama de los modelos de lenguaje grande (LLM) sigue siendo testigo del auge de modelos que incluyen Alpaca, Falcon, Llama 2, GPT-4 y muchos más.

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

Sin embargo, es esencial destacar que no todas las vías de afinación son iguales. Por ejemplo, acceder a las capacidades de afinación 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 más accesible para aprovechar el poder de los modelos de lenguaje grande. Estas opciones de código abierto democratizan el acceso a tecnologías de inteligencia artificial avanzadas, fomentando la innovación y la inclusión en el panorama de inteligencia artificial en constante evolución.

¿Por qué es importante la afinación de LLM?

La afinación de LLM es más que una mejora técnica; es un aspecto crucial del desarrollo de modelos de lenguaje que permite una aplicación más específica y refinada en diversas tareas. La afinación 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 a los LLM adaptarse a nuevos datos, demostrando una flexibilidad vital en el creciente interés por las aplicaciones de inteligencia artificial.

La afinación de modelos de lenguaje grande abre un amplio abanico de oportunidades, permitiéndoles destacar en tareas específicas que van desde el análisis de sentimientos 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 la afinación 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 de la afinación de LLM, brindándole una visión general integral basada en los últimos avances y las mejores prácticas en el campo.

Afinación basada en instrucciones

La fase de afinación 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 permite 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 cuando 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 - Afinación, ingeniería de instrucciones y RLHF

Ciclo de vida de la inteligencia artificial generativa – Afinación

Afinación para una tarea única

La afinación para una tarea única se centra en perfeccionar la especialización 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, incluyendo documentos legales y tickets de soporte al cliente. Es notable que esta afinación 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 afinación para una tarea única

Ilustración de ejemplo de afinación para una tarea única

 

Fundamentos de la afinación de LLM: Arquitectura de transformadores y más allá

El viaje hacia la comprensión de la afinación 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 transformadores, 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 permite una comprensión más profunda de las relaciones distantes entre tokens en la entrada.

A medida que exploramos 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 posteriores 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 transformadores

Arquitectura de transformadores

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

Preentrenamiento de LLM: Estableciendo una base sólida

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

Preentrenamiento, afinación

Preentrenamiento, afinación

Una tendencia notable en esta esfera es el inevitable aumento en la escala de los LLM preentrenados, medido por el número 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, 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.

Afinación: El camino hacia la adaptación del modelo

Después del preentrenamiento, el LLM se somete a afinación para adaptarse a tareas específicas. A pesar del desempeño prometedor mostrado por el aprendizaje en contexto en LLM preentrenados como GPT-3, la afinación sigue siendo superior en entornos de tarea específica. Sin embargo, el enfoque prevalente de afinación de parámetros completos presenta desafíos, incluyendo demandas computacionales y de memoria altas, 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 memoria RAM de la GPU es crucial. 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 RAM de la 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 puede requerir hasta 80 GB de memoria RAM de la GPU para un modelo de esta escala.

Para navegar las limitaciones de la memoria RAM de la GPU, se utiliza la cuantización, 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, exploraremos QLoRA, que utiliza el concepto de cuantización para la afinación.

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 PEFT

En el proceso de afinación completa de los LLM, es importante tener una configuración computacional que pueda manejar eficientemente 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 estados del optimizador, gestión de gradientes, activaciones hacia adelante y facilitación de memoria temporal durante las diversas etapas del procedimiento de entrenamiento.

Método aditivo

Este tipo de afinación 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 en tiempo y espacio de entrenamiento. El método aditivo se divide en subcategorías:

  • Adaptadores: Incorporando redes completamente conectadas pequeñas postcapas de transformadores, con ejemplos notables como AdaMix, KronA y Compactor.
  • Prompts suaves: Afinando 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 afinan un número limitado de capas superiores basadas 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 afinar 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 el número de parámetros trainable, siendo el más renombrado la Adaptación de Bajo Rango o LoRA. Este método aprovecha una descomposición de matriz de bajo rango simple para parametrizar la actualización de peso, demostrando una afinación efectiva en subespacios de bajo rango.

1) LoRA (Adaptación de Bajo Rango)

LoRA surgió como una técnica 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 transformadores. 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 a la afinación completa.

Para comprender la mecánica de LoRA, es necesario revisitar la arquitectura de transformadores donde la entrada 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 de Valor Singular (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 cruciales ya que miden la importancia de diferentes dimensiones en las matrices, con valores más grandes indicando mayor importancia y valores más pequeños denotando menor significancia.

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

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

Este enfoque permite que LoRA mantenga las características esenciales de los datos mientras reduce la dimensionalidad, optimizando así el proceso de afinación.

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 más pequeño, creando así una matriz de bajo rango con menos parámetros para entrenar. Esta estrategia ha sido implementada efectivamente utilizando bibliotecas de código abierto como HuggingFace Transformers, facilitando la afinación 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 cuantización, empleando un formato de cuantización de 4 bits llamado NormalFloat o nf4. La cuantizació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 afinación de 16 bits, descuantizando los pesos de 4 bits a 16 bits según sea necesario durante los procesos computacionales.

Comparación de métodos de afinación: QLoRA mejora LoRA con cuantización de precisión de 4 bits y optimizadores paginados para gestión de picos de memoria

Comparación de métodos de afinación: QLoRA mejora LoRA con cuantización de precisión de 4 bits y optimizadores paginados para gestión de picos de memoria

QLoRA aprovecha NumericFloat4 (nf4), apuntando a cada capa de la arquitectura de transformadores, e introduce el concepto de doble cuantización para reducir aún más la huella de memoria necesaria para la afinación. Esto se logra realizando la cuantización en las constantes ya cuantizadas, una estrategia que evita los picos de memoria típicos de la gestión de gradientes de puntos de control a través de la utilización de optimizadores paginados y gestión de memoria unificada.

Guanaco, que es un conjunto afinado 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, afinadas utilizando una versión modificada del conjunto de datos OASST1, emergen como contendientes formidables a modelos renombrados como ChatGPT e incluso GPT-4.

Afinación utilizando aprendizaje de refuerzo con retroalimentación humana

El aprendizaje de refuerzo con retroalimentación humana (RLHF) entra en juego cuando se afinan 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 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 donde un agente aprende a comportarse en un entorno realizando acciones y recibiendo recompensas. Es un bucle continuo de acción y retroalimentación, donde el agente está incentivado para tomar decisiones que producirán la recompensa más alta.

Traduciendo esto al ámbito de los modelos de lenguaje, el agente es el modelo en sí, operando dentro de un 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 RLHF utiliza ampliamente la retroalimentación humana, empleándola para entrenar un modelo de recompensa. Este modelo desempeña un papel crucial al guiar el modelo preentrenado durante la fase de afinación, incentivándolo a generar salidas que se alineen más estrechamente con los valores humanos. Es un proceso dinámico e 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 capacidades notables de RLHF es su capacidad para fomentar la personalización en asistentes de inteligencia artificial, adaptándolos para resonar con las preferencias individuales de los usuarios, 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 destacar que RLHF no es una solución infalible. Los modelos siguen siendo 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 afinación, una etapa crítica para aprovechar al máximo el potencial 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 la afinación para una tarea única, que especializa a los modelos en roles particulares, y los métodos de afinación 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 avances 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 se alinean más estrechamente con los valores y preferencias humanas, 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 la eficiencia de los modelos de lenguaje grande.

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

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.