Afinar LLMs y modelos de IA

Los modelos de lenguaje extenso (LLMs) son herramientas potentes que pueden ayudar con muchas tareas diferentes, desde escribir correos hasta responder preguntas complejas. Sin embargo, a veces estos modelos no entienden del todo lo que necesitas que hagan para tu proyecto concreto. Ahí es donde entra en juego el afinamiento. Es como enseñar a un alumno inteligente las competencias específicas que necesita para un trabajo concreto.

Afinamiento de Gemini con Google AI Studio

¿Qué es el afinamiento?

El afinamiento consiste en entrenar aún más un LLM preentrenado con un conjunto de datos específico de la tarea (un proceso de aprendizaje por transferencia). Es como si un modelo preentrenado ya hubiera aprendido mucha información general y el afinamiento le ayudara a especializarse en un área concreta.

Cuándo usar el afinamiento en lugar de RAG

El afinamiento y la generación aumentada por recuperación (RAG) son dos formas distintas de adaptar los LLMs a usos específicos. Elegir el método adecuado depende de factores como el tipo de tarea, si tienes suficientes datos y lo que quieres conseguir.

Técnica


Diferencia principal


Ventajas

Challenges

Afinamiento

Modifica el parámetro del modelo.

Mayor precisión, mayor especificidad, menos alucinaciones, interacciones personalizadas, rentabilidad y menos sesgos.

Riesgo de "olvido catastrófico", mayor coste de recursos, mayores demandas de datos y posibilidad de "sobreajuste".

RAG


Aumenta las peticiones con conocimientos externos.

Integración dinámica de conocimientos, relevancia contextual, versatilidad y menor necesidad de entrenamiento exhaustivo.

Precisión limitada (por ejemplo, RAG solo puede hacer referencia a los datos a los que tiene acceso y no hace inferencias basadas en su entrenamiento), complejidad de mantener los sistemas RAG y posibilidad de alucinaciones.

Técnica


Diferencia principal


Ventajas

Challenges

Afinamiento

Modifica el parámetro del modelo.

Mayor precisión, mayor especificidad, menos alucinaciones, interacciones personalizadas, rentabilidad y menos sesgos.

Riesgo de "olvido catastrófico", mayor coste de recursos, mayores demandas de datos y posibilidad de "sobreajuste".

RAG


Aumenta las peticiones con conocimientos externos.

Integración dinámica de conocimientos, relevancia contextual, versatilidad y menor necesidad de entrenamiento exhaustivo.

Precisión limitada (por ejemplo, RAG solo puede hacer referencia a los datos a los que tiene acceso y no hace inferencias basadas en su entrenamiento), complejidad de mantener los sistemas RAG y posibilidad de alucinaciones.

Deberías plantearte usar el afinamiento cuando quieras que un LLM haga lo siguiente:

  • Entender un lenguaje o una jerga específicos: si tu proyecto usa muchos términos específicos del sector, el afinamiento puede ayudar al modelo a aprender y usar ese lenguaje correctamente.  
  • Mejorar la precisión en una tarea concreta: el afinamiento puede mejorar significativamente el rendimiento del modelo si necesitas que haga una tarea específica, como clasificar reseñas de clientes o generar descripciones de productos. 
  • Adaptar un estilo o tono concretos: si quieres que el modelo genere texto que se ajuste a la voz de una marca o a un estilo de escritura específicos, el afinamiento puede ayudarte.  
  • Trabajar con datos limitados: cuando tienes pocos datos, el afinamiento puede ser más eficiente que entrenar un modelo desde cero, ya que aprovecha el conocimiento que ya tiene el modelo preentrenado.  
  • Reducir costes y latencia: en casos prácticos de gran volumen, afinar un modelo más pequeño puede ser más rentable que usar un modelo más grande y de uso general para cada solicitud.
  • Gestionar casos extremos: el afinamiento puede mejorar la capacidad del modelo para gestionar casos extremos y peticiones complejas que son difíciles de abordar solo con la ingeniería de peticiones.

Cómo funciona el afinamiento: una guía detallada

El afinamiento se fundamenta en la base de un LLM preentrenado. Estos modelos preentrenados ya han aprendido una gran cantidad de conocimientos generales sobre el lenguaje a partir de conjuntos de datos masivos. Durante el afinamiento, el modelo se expone a un conjunto de datos más pequeño y específico de la tarea, y los parámetros internos del modelo (imagínatelos como millones de pequeños botones que controlan su conocimiento) se ajustan para que se adapten mejor a los ejemplos del nuevo conjunto de datos. Este proceso de "reentrenamiento" actualiza suavemente el cableado interno del modelo para que se convierta en un experto en el nuevo tema. Vamos a dividir el proceso de afinamiento en varios pasos prácticos:

Paso 1: Preparación de los datos

Antes de empezar a afinar el modelo, es fundamental preparar los datos. La calidad y la estructura de tus datos influyen directamente en el rendimiento del modelo afinado. Esta fase implica recoger, limpiar, dar formato y dividir tus datos en conjuntos apropiados para el entrenamiento, la validación y las pruebas.

  • Recopilar datos: reúne los datos que vas a usar para afinar el modelo. Estos datos deben ser relevantes para la tarea específica en la que quieres que el modelo destaque
  • Limpiar y dar formato: limpia tus datos eliminando errores, incoherencias e información irrelevante, y asegúrate de que tengan un formato que el modelo pueda entender
  • Dividir los datos: divide tus datos en tres conjuntos: 1) entrenamiento (se usa para entrenar el modelo), 2) validación (se usa para monitorizar el rendimiento del modelo y ajustar la configuración) y 3) prueba (se usa para evaluar el rendimiento final del modelo afinado)

Paso 2: Elegir un enfoque

En lo que respecta al afinamiento, tienes varias opciones sobre la parte del modelo preentrenado que quieras ajustar. El enfoque que elijas dependerá de factores como el tamaño de tu conjunto de datos, los recursos de computación disponibles y el nivel de precisión deseado. Los dos enfoques principales son el afinamiento completo y el ajuste fino eficiente de parámetros (PEFT).


Afinamiento completo

En el afinamiento completo, todos los parámetros del modelo se actualizan durante el entrenamiento. Este enfoque es adecuado cuando el conjunto de datos específico de la tarea es grande y muy diferente de los datos de preentrenamiento.  


PEFT 

El ajuste fino eficiente de parámetros ofrece una forma más inteligente y eficiente de afinar los modelos. En lugar de volver a entrenar todo el modelo (lo cual es lento y caro), los métodos PEFT congelan el LLM original y añaden pequeñas capas nuevas entrenables.

Imagina que tienes un libro de texto de 1000 páginas. En lugar de reescribirlo entero, solo tienes que añadirle unas cuantas notas adhesivas con la información nueva y especializada. Esto hace que el proceso sea mucho más rápido y económico. Entre los métodos PEFT más populares se encuentran LoRA (adaptación de rango bajo) y QLoRA (adaptación de rango bajo cuantificada), que ofrecen una forma más eficiente de afinar los LLMs. 

Paso 3: Entrenar el modelo

Una vez que hayas preparado tus datos y seleccionado la técnica, es el momento de entrenar el modelo. Es la fase en la que el modelo aprende de tus datos y ajusta sus parámetros para mejorar el rendimiento en tu tarea específica. Es fundamental monitorizar y ajustar cuidadosamente el conjunto de datos de entrenamiento para conseguir resultados óptimos.

  • Definir hiperparámetros: configura ajustes como la tasa de aprendizaje, el tamaño de lote y el número de periodos. Estos ajustes ayudan a controlar cómo aprende el modelo.
  • Iniciar el entrenamiento: introduce los datos de entrenamiento en el modelo para que aprenda y monitoriza su rendimiento con el conjunto de datos de validación.
  • Ajustar según sea necesario: si el modelo no funciona bien, puedes ajustar los hiperparámetros o probar otra técnica de afinamiento.

Paso 4: Evaluación y despliegue

La última fase consiste en evaluar el rendimiento de tu modelo afinado y desplegarlo para que se use en el mundo real. Para ello, es necesario evaluar su precisión y eficiencia, y luego integrarlo en tu aplicación o sistema. Puede que sea necesario monitorizar y volver a entrenar el modelo de forma continua para mantener un rendimiento óptimo a lo largo del tiempo.

  • Evalúa el rendimiento: usa el conjunto de datos de evaluación para evaluar el rendimiento final del modelo ajustado. Consulta las métricas relevantes para tu tarea, como la precisión, la exactitud y la recuperación.
  • Despliega el modelo: si estás satisfecho con el rendimiento, despliega el modelo en tu aplicación o sistema.
  • Monitoriza el rendimiento: vigila el rendimiento del modelo en el mundo real y vuelve a entrenarlo cuando sea necesario para mantener la precisión.

Tipos de afinamiento

Hay diferentes formas de afinar un modelo, en función de tus objetivos y recursos:

Tipo

Descripción

Casos prácticos

Afinamiento supervisado

El modelo se entrena con un conjunto de datos etiquetado con pares de entrada y salida.

Clasificación de texto, reconocimiento de entidades con nombre y análisis de sentimiento.

Afinamiento de instrucciones

El modelo se entrena con un conjunto de datos de instrucciones y respuestas deseadas.

Chatbots, sistemas de búsqueda de respuestas, generación de código.

Aprendizaje con pocos ejemplos

Se proporcionan al modelo algunos ejemplos de la tarea deseada en la petición.

Adaptación a nuevas tareas con datos limitados.

Aprendizaje por transferencia

El modelo aprovecha los conocimientos adquiridos en el preentrenamiento con un conjunto de datos de uso general.

Adaptación a tareas relacionadas.

Afinamiento específico de dominio

El modelo se adapta a un dominio o sector concretos.

Análisis de documentos legales, generación de informes médicos y previsión financiera.

Aprendizaje multitarea

El modelo se entrena en varias tareas simultáneamente.

Mejora del rendimiento en tareas relacionadas.

Afinamiento secuencial

El modelo se adapta a una serie de tareas relacionadas por fases.

Perfeccionamiento gradual de las funciones para tareas complejas.

Tipo

Descripción

Casos prácticos

Afinamiento supervisado

El modelo se entrena con un conjunto de datos etiquetado con pares de entrada y salida.

Clasificación de texto, reconocimiento de entidades con nombre y análisis de sentimiento.

Afinamiento de instrucciones

El modelo se entrena con un conjunto de datos de instrucciones y respuestas deseadas.

Chatbots, sistemas de búsqueda de respuestas, generación de código.

Aprendizaje con pocos ejemplos

Se proporcionan al modelo algunos ejemplos de la tarea deseada en la petición.

Adaptación a nuevas tareas con datos limitados.

Aprendizaje por transferencia

El modelo aprovecha los conocimientos adquiridos en el preentrenamiento con un conjunto de datos de uso general.

Adaptación a tareas relacionadas.

Afinamiento específico de dominio

El modelo se adapta a un dominio o sector concretos.

Análisis de documentos legales, generación de informes médicos y previsión financiera.

Aprendizaje multitarea

El modelo se entrena en varias tareas simultáneamente.

Mejora del rendimiento en tareas relacionadas.

Afinamiento secuencial

El modelo se adapta a una serie de tareas relacionadas por fases.

Perfeccionamiento gradual de las funciones para tareas complejas.

Prácticas recomendadas para el afinamiento

Para sacar el máximo partido a la optimización, sigue estas prácticas recomendadas :  

  • Calidad y cantidad de los datos: usa un conjunto de datos de alta calidad que sea relevante, diverso y suficientemente grande. La calidad de los datos es fundamental en el afinamiento. Asegúrate de que los datos sean precisos, coherentes y estén libres de errores o sesgos. Por ejemplo, un conjunto de datos con etiquetas ruidosas o un formato incoherente puede dificultar significativamente la capacidad del modelo para aprender de forma eficaz.   
  • Ajuste de hiperparámetros: experimenta con diferentes ajustes de hiperparámetros para encontrar la configuración óptima para tu tarea.   
  • Evaluación periódica: evalúa periódicamente el rendimiento del modelo durante el entrenamiento para hacer un seguimiento de su progreso y hacer los ajustes necesarios.   
  • Evita el sobreajuste: usa técnicas como la parada anticipada y la regularización para evitar el sobreajuste a los datos de entrenamiento.   
  • Abordar los sesgos: ten en cuenta los posibles sesgos en los datos y usa técnicas para mitigarlos en el modelo ajustado.

Ventajas del afinamiento de los LLMs

El afinamiento ofrece algunas ventajas potenciales:

Mayor precisión

Puede mejorar significativamente la precisión y la relevancia de la salida del modelo para tu caso práctico específico, lo que podría reducir las alucinaciones de la IA.  

Entrenamiento más rápido

El afinamiento es más rápido y requiere menos datos que entrenar un modelo desde cero.

Rentable

Puede ser más rentable que entrenar un modelo nuevo, ya que requiere menos potencia computacional y datos. 

Personalización

El afinamiento te permite personalizar el comportamiento del modelo para que se adapte a tus necesidades y objetivos específicos. 

Reducción de sesgos

Puede proporcionar un mayor control sobre el comportamiento del modelo, lo que podría reducir el riesgo de generar contenido sesgado o controvertido.

Ventana de contexto ampliada

El afinamiento se puede usar para aumentar la ventana de contexto de los LLMs, lo que les permite procesar y retener más información.

Retos habituales al afinar modelos

Aunque el afinamiento puede ofrecer muchas ventajas, también plantea algunos retos que conviene tener en cuenta: 

  • Sobreajuste: el modelo aprende demasiado bien los datos de entrenamiento y no se generaliza bien a los datos nuevos. Puedes usar técnicas como la regularización y el aumento de datos para mitigar el sobreajuste.  
  • Escasez de datos: si no hay suficientes datos, se puede limitar la eficacia del afinamiento. Puedes usar técnicas de aumento de datos o aprendizaje por transferencia de otras tareas relacionadas.  
  • Olvido catastrófico: si especializas demasiado el modelo, puede olvidar sus conocimientos generales. Es como un médico experto que se convierte en un cirujano hiperespecializado, pero se olvida de los primeros auxilios básicos. Puedes usar técnicas como la regularización y los búfers de repetición para mitigar el olvido catastrófico.  
  • Recursos computacionales: el afinamiento de modelos grandes puede ser costoso desde el punto de vista computacional y requerir una cantidad de memoria considerable. Considera la posibilidad de usar técnicas como PEFT, la cuantificación y el entrenamiento distribuido para reducir los requisitos computacionales.  
  • Evaluación: evaluar el rendimiento de los LLMs ajustados puede ser complejo, ya que requiere una selección cuidadosa de métricas y comparativas.  
  • Retos del aprendizaje multitarea: el afinamiento de los LLMs para el aprendizaje multitarea plantea retos únicos, como la interferencia entre tareas, en la que diferentes objetivos chocan durante el entrenamiento, y el desequilibrio de datos, en el que las tareas con más datos pueden dominar.

Casos prácticos de afinamiento

El afinamiento se puede aplicar a una amplia variedad de casos prácticos:

Servicio de atención al cliente

Afina un LLM para que comprenda y responda a las consultas de los clientes de forma más eficaz, incluso en los chatbots.  

La capacidad de los LLMs para generar resúmenes concisos y precisos en dominios o estilos de escritura específicos se puede mejorar mediante el ajuste fino.

Creación de contenido

Crea entradas de blog, artículos o descripciones de productos con un estilo específico gracias a un modelo afinado.  

Análisis de datos

Ajusta un modelo para clasificar y analizar datos de texto, como publicaciones en redes sociales o reseñas de clientes.

Genera código en un lenguaje de programación o framework específico con un modelo afinado. 

Traducción automática

El Traductor de Google usa el afinamiento para mejorar la calidad de la traducción automática adaptando el modelo a pares de idiomas y dominios específicos. 

Afinamiento a escala con Google Cloud

Google Cloud ofrece un ecosistema sólido para respaldar tus esfuerzos de afinamiento de modelos, proporcionando desde una plataforma de aprendizaje automático unificada hasta el hardware especializado necesario para acelerar las computaciones complejas. Tanto si quieres personalizar un modelo fundacional como si quieres refinar el tuyo, estos servicios agilizan todo el flujo de trabajo.

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud