El artículo "LLM Fine-Tuning — FAQs" de Shaw Talebi, publicado en Towards Data Science, aborda las preguntas más comunes que el autor ha recibido de sus clientes como consultor en inteligencia artificial sobre el ajuste fino de modelos de lenguaje grande (LLM). A lo largo del texto, Talebi proporciona un resumen detallado de sus respuestas, ofreciendo una guía concisa sobre cuándo y cómo se debe ajustar un modelo, así como las implicaciones de esta práctica en diversos contextos.
¿Qué es el Fine-tuning?
El ajuste fino (fine-tuning) se refiere al proceso de tomar un modelo previamente entrenado y modificar al menos uno de sus parámetros para adaptarlo a un caso de uso específico. Talebi subraya la importancia de este aspecto, ya que esta modificación interna del modelo lo diferencia de otras técnicas como la ingeniería de prompts o el ajuste por prefijos, donde no se alteran las operaciones internas del modelo. Estas otras técnicas se basan en la manipulación del comportamiento del modelo sin alterar su estructura interna, mientras que el ajuste fino implica modificar los parámetros del modelo para optimizarlo hacia una tarea particular.
¿Cuándo NO se debe realizar Fine-tuning?
Uno de los errores comunes que Talebi señala es asumir que el ajuste fino es siempre superior a otras técnicas, como la ingeniería de prompts o la generación de respuestas mejorada por recuperación (RAG). Sin embargo, esto depende del caso de uso y de la cantidad de datos disponibles para entrenar el modelo. Por ejemplo, la generación de respuestas mejorada por recuperación puede ser más efectiva para proporcionar conocimientos especializados a un LLM, ya que la base de datos recuperada puede proporcionar información más precisa y detallada que un modelo ajustado fino con un conjunto de datos limitado. Talebi destaca que la magnitud de los datos de entrenamiento es crucial: mientras que un modelo preentrenado puede haber sido entrenado con billones de tokens, un conjunto de datos para ajuste fino puede ser millones de veces menor, lo que limita la capacidad del modelo para adquirir nuevos conocimientos a través de este ajuste.
Beneficios del Fine-tuning
A pesar de estas limitaciones, el ajuste fino tiene importantes beneficios. Uno de ellos es la reducción de los costos de inferencia. La ingeniería de prompts, que consiste en diseñar instrucciones específicas para obtener las respuestas deseadas del modelo, puede requerir prompts largos y detallados que incrementan el número de tokens procesados en cada inferencia. Con el ajuste fino, es posible entrenar el modelo directamente en ejemplos concretos, lo que permite reducir el tamaño de los prompts y, por lo tanto, disminuir los costos computacionales y aumentar la velocidad de las respuestas.
Por ejemplo, un modelo ajustado para realizar análisis de sentimiento podría recibir un prompt mucho más breve después del ajuste fino en comparación con uno diseñado mediante ingeniería de prompts. Este ahorro en el número de tokens no solo reduce el costo, sino que mejora la eficiencia del modelo en aplicaciones de alto volumen.
RAG vs Fine-tuning
Talebi destaca también las diferencias entre el uso de RAG (Recuperación de Respuestas Mejoradas) y el ajuste fino. Mientras que RAG se utiliza cuando es necesario proporcionar información especializada que no es de conocimiento común, el ajuste fino es más adecuado cuando los conocimientos requeridos ya están integrados en el modelo. En situaciones donde se requiere conocimiento especializado y también se busca reducir el tamaño del prompt o refinar la calidad de las respuestas, ambas técnicas pueden combinarse de manera efectiva.
Talebi también menciona que estas técnicas no son excluyentes y, de hecho, algunas investigaciones de Facebook sobre RAG han mostrado que es beneficioso realizar ajuste fino sobre los modelos para mejorar la integración de la información recuperada.
¿Cómo seleccionar un modelo?
Otro tema que aborda el artículo es la elección del modelo adecuado para el ajuste fino. A pesar de que muchos modelos de lenguaje se entrenan de manera similar y tienen diferencias de rendimiento marginal, Talebi sugiere que otros factores deben considerarse, como la privacidad, los requisitos técnicos y los costos.
Una de las principales distinciones es entre modelos de pesos abiertos y modelos de pesos cerrados. Los modelos de pesos abiertos, como Llama (Meta), Mistral y Gemma (Google), permiten acceso a sus parámetros, lo que los hace más flexibles en ciertos contextos. En contraste, los modelos de pesos cerrados, como GPT (OpenAI) o Claude (Anthropic), no permiten esta modificación directa, pero ofrecen ventajas en términos de simplicidad de implementación a través de API.
¿Cómo determinar el tamaño del modelo?
El tamaño del modelo es otra consideración importante. Modelos más grandes tienden a ofrecer un rendimiento superior, pero con mayores costos de inferencia. Talebi recomienda comenzar con un modelo grande para verificar que el rendimiento sea el adecuado y luego ir reduciendo el tamaño del modelo hasta que el rendimiento caiga por debajo de los requisitos del caso de uso. Este enfoque permite encontrar el mejor retorno de inversión (ROI) en función de las necesidades de la aplicación.
¿Modelos con afinación de instrucciones o modelos base?
Hoy en día, los modelos de lenguaje más populares han pasado por un proceso de ajuste de instrucciones. En este proceso, un modelo base se ajusta para responder a las consultas de los usuarios de manera más eficaz. Para la mayoría de los casos de uso empresariales, como asistentes de inteligencia artificial o chatbots, Talebi recomienda el uso de modelos ajustados por instrucciones. Sin embargo, en tareas no relacionadas con la respuesta a preguntas o interacción conversacional, un modelo base puede ser más adecuado.
Preparación de datos para el Fine-tuning
El éxito del ajuste fino depende en gran medida de la calidad del conjunto de datos utilizado para entrenar el modelo. Talebi comparte su experiencia con los clientes que desean crear chatbots personalizados. En estos casos, el enfoque más común es el ajuste fino supervisado, que consiste en generar un conjunto de pares de consulta-respuesta para entrenar el modelo. La clave está en proporcionar ejemplos relevantes y de alta calidad para obtener el mejor rendimiento del modelo.
Ajuste fino avanzado
Aunque gran parte del artículo se enfoca en el ajuste fino para crear asistentes de inteligencia artificial, Talebi menciona otras aplicaciones más avanzadas. Una de ellas es la clasificación, donde los modelos de lenguaje se pueden ajustar para clasificar datos en categorías, como en la detección de spam o el análisis de opiniones de clientes. Otra aplicación es el ajuste fino de incrustaciones de texto, que se utiliza en sistemas de generación de respuestas mejoradas por recuperación. Este tipo de ajuste fino permite mejorar el rendimiento del modelo en dominios específicos o con jerga técnica.
Además, Talebi discute la compresión de modelos, un proceso que busca reducir el tamaño de un LLM sin sacrificar su rendimiento. Las técnicas populares incluyen la cuantización, el recorte de parámetros y la destilación de conocimiento. Si bien la compresión no encaja estrictamente en la definición de ajuste fino, sigue siendo una forma de adaptar un modelo a un caso de uso particular.
En resumen, Talebi ofrece una guía completa sobre el ajuste fino de modelos de lenguaje, abordando no solo cuándo y cómo realizar este proceso, sino también sus limitaciones y alternativas. El ajuste fino puede no ser la solución adecuada para todos los casos de uso, pero cuando se aplica correctamente, ofrece beneficios tangibles, como la reducción de costos de inferencia y la mejora de la calidad de las respuestas.