Ajuste fino

Fine-Tuning

El ajuste fino es un proceso de aprendizaje automático en el que un modelo preentrenado se entrena aún más con un conjunto de datos más pequeño y específico para la tarea, con el fin de adaptarlo a un caso de uso particular.

Se basa en el amplio conocimiento que el modelo ya ha adquirido, lo que le permite especializarse en nuevas tareas sin empezar desde cero. Esto se aplica comúnmente en el procesamiento del lenguaje natural (PNL), la visión artificial y otros ámbitos en los que el entrenamiento de modelos desde cero sería costoso o ineficiente.

¿Por qué es importante el ajuste fino?

El ajuste fino permite a los desarrolladores adaptar modelos grandes de propósito general, a menudo entrenados con conjuntos de datos masivos, a tareas específicas de nicho o de dominio. Hace que los modelos de alto rendimiento sean accesibles para casos de uso personalizados sin necesidad de los recursos computacionales necesarios para construir un modelo desde cero. También permite una mejor alineación con los objetivos de la organización, las preferencias del usuario o los datos especializados, como los registros médicos o los documentos legales.

Ajuste fino frente a preentrenamiento

Aspecto Preentrenamiento Ajuste fino
Propósito Enseñar al modelo conocimientos generales a partir de un gran conjunto de datos Adaptar el modelo a una tarea o dominio específicos
Conjunto de datos Grande y genérico Más pequeño y específico para la tarea
Computación Alto coste computacional Menor coste computacional
Inicialización El modelo empieza desde cero El modelo empieza con pesos aprendidos
Tiempo de entrenamiento Largo Relativamente corto
Salida Modelo base Modelo especializado para un caso de uso definido

Cómo funciona el ajuste fino

El ajuste fino comienza con un modelo que ya ha sido preentrenado. En lugar de restablecer los parámetros del modelo, el entrenamiento continúa utilizando un nuevo conjunto de datos más pequeño que se centra en la tarea objetivo.

El objetivo es preservar el valioso conocimiento del preentrenamiento al tiempo que se enseñan al modelo nuevos comportamientos o hechos. Dependiendo de la técnica, se actualizan todos o solo un subconjunto de los parámetros del modelo.

Casos de uso para el ajuste fino

  1. Adaptación de dominio
    El ajuste fino ayuda a los modelos a adaptarse a campos como las finanzas, el derecho o la medicina mediante el entrenamiento con texto o datos exclusivos de esas industrias. Por ejemplo, un modelo de lenguaje puede afinarse para comprender la terminología médica y los procedimientos de diagnóstico.
  2. Personalización del estilo
    Los modelos pueden ajustarse para reflejar un tono, una voz o un estilo de comunicación específicos. Por ejemplo, dependiendo de la base de usuarios, un chatbot puede afinarse para que suene más empático o profesional.
  3. Tareas especializadas
    Los modelos preentrenados pueden afinarse para tareas posteriores como el análisis de sentimientos, el reconocimiento de entidades nombradas o la generación de código, tareas para las que no fueron entrenados inicialmente.
  4. Incorporación de datos propietarios
    Las organizaciones pueden ajustar los modelos con datos internos o propietarios, mejorando la relevancia y el rendimiento de las aplicaciones internas, al tiempo que mantienen segura la información confidencial.

Tipos de ajuste fino

Ajuste fino completo
Este método actualiza todos los parámetros del modelo durante el entrenamiento. Es el que más recursos consume, pero puede producir una gran precisión, sobre todo cuando la nueva tarea difiere sustancialmente de la tarea de preentrenamiento.

Ajuste fino parcial
Solo se actualizan algunas capas (normalmente las últimas), mientras que el resto permanecen congeladas. Esto reduce el tiempo de entrenamiento y evita el riesgo de olvidar el conocimiento original aprendido.

Ajuste fino aditivo
Solo se añaden nuevas capas o parámetros (llamados adaptadores) al modelo, y solo estos se entrenan. Los pesos del modelo preentrenado permanecen fijos, lo que reduce la posibilidad de desestabilizar la información aprendida previamente.

Ajuste de prompts
En lugar de modificar los pesos del modelo, el ajuste de prompts añade prompts suaves (entradas que se pueden aprender) que dirigen la salida del modelo sin cambiar su estructura interna. Es eficiente y permite cambiar fácilmente entre tareas.

Adaptación de bajo rango (LoRA)
Este método introduce pequeñas matrices entrenables en el modelo y solo las ajusta durante el entrenamiento. Consigue un rendimiento casi completo de ajuste fino con menos parámetros actualizados y menores requisitos de memoria.

Técnicas comunes en el ajuste fino

Ajuste fino supervisado
Utiliza datos etiquetados en los que las entradas se emparejan con las salidas correctas. Este es el método más común para tareas como la clasificación o la traducción.

Aprendizaje con pocos ejemplos
Entrena el modelo con solo unos pocos ejemplos por tarea. Es útil cuando los datos anotados son limitados, pero el modelo preentrenado ya es competente.

Ajuste de instrucciones
Una forma de ajuste fino supervisado en la que el modelo se entrena para seguir mejor las instrucciones humanas. Esto se utiliza ampliamente para mejorar la utilidad de los asistentes de IA y los chatbots.

Aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF)
Combina el aprendizaje supervisado con el aprendizaje por refuerzo. Las preferencias humanas guían al modelo en la generación de salidas más útiles o alineadas, especialmente en tareas abiertas.

Ajuste fino de modelos de lenguaje grandes (LLM)

Los LLM, como GPT, LLaMA o Gemini, suelen preentrenarse con datos generales a escala de Internet. El ajuste fino permite a estos modelos realizar tareas como la redacción jurídica, la generación de código o la atención al cliente. Dependiendo de la aplicación, este proceso puede implicar un ajuste fino supervisado, un ajuste de prompts o RLHF.

Ajuste fino con eficiencia de parámetros (PEFT)

Los métodos PEFT actualizan solo una pequeña parte de los parámetros del modelo. Esto reduce el uso de memoria y la carga computacional, al tiempo que se consigue un rendimiento específico para la tarea. Algunos ejemplos de PEFT son LoRA, los adaptadores y el ajuste de prompts. La industria suele utilizar estos métodos para desplegar modelos ajustados a escala sin volver a entrenar todo el modelo.

Desafíos en el ajuste fino

Sobreajuste
El entrenamiento con un conjunto de datos pequeño puede hacer que el modelo funcione bien con esos datos, pero mal con ejemplos no vistos. La regularización y la parada temprana ayudan a evitar esto.

Olvido catastrófico
El modelo puede olvidar lo que aprendió previamente durante el preentrenamiento. Congelar capas específicas o utilizar tasas de aprendizaje bajas puede ayudar a preservar el conocimiento existente.

Limitaciones computacionales
Los modelos grandes requieren GPU o hardware especializado para el ajuste fino. Los métodos eficientes en cuanto a parámetros pueden ayudar a reducir los costes.

Escasez de datos
El ajuste fino requiere datos relevantes y de alta calidad. Para los dominios de nicho, la adquisición de conjuntos de datos etiquetados puede llevar mucho tiempo o ser costosa.

Ajuste fino frente a Generación aumentada de recuperación (RAG)

Aspecto Ajuste fino RAG
Manejo de datos Actualiza los pesos del modelo basándose en los datos de entrenamiento Recupera datos externos en el momento de la inferencia
Flexibilidad Requiere volver a entrenar para añadir nuevos conocimientos Puede incorporar nuevos datos sin volver a entrenar
Calidad de la respuesta Puede ser más fluida y personalizada A menudo, más precisa desde el punto de vista factual si las fuentes externas son fiables
Ajuste del caso de uso Lo mejor para tareas que requieren personalización o tono Lo mejor para tareas que necesitan conocimientos actualizados o amplios
Coste Alto coste de entrenamiento Menor coste de entrenamiento, pero la inferencia puede ser más lenta

Buenas prácticas para el ajuste fino

Utilice datos limpios y relevantes
Asegúrese de que el conjunto de datos refleja el caso de uso deseado. Elimine los ejemplos ruidosos, irrelevantes o redundantes para evitar malos resultados de aprendizaje.

Ajuste los hiperparámetros cuidadosamente
Ajuste la tasa de aprendizaje, el tamaño del lote y el número de épocas. Los pequeños cambios pueden afectar significativamente al rendimiento, especialmente en dominios sensibles.

Supervise con conjuntos de validación
Utilice conjuntos de datos de validación separados para evaluar el modelo durante el entrenamiento. Esto ayuda a detectar el sobreajuste o la degradación del rendimiento.

Congele las capas inferiores cuando sea apropiado
En muchos casos, las primeras capas del modelo capturan el conocimiento general y no es necesario cambiarlas. Congelarlas puede ahorrar recursos.

Documente las configuraciones de entrenamiento
Mantenga registros de las versiones del conjunto de datos, los parámetros utilizados y los puntos de control del modelo. Esto ayuda a reproducir los resultados y a resolver los problemas de depuración.

Herramientas populares para el ajuste fino

  • Hugging Face Transformers
    Biblioteca de código abierto para el ajuste fino de modelos como BERT, GPT-2 y T5 con solo unas pocas líneas de código.
  • TensorFlow/Keras
    Ampliamente utilizado para el entrenamiento y el ajuste fino de modelos de aprendizaje profundo en el mundo académico y la industria.
  • API de OpenAI
    Admite el ajuste fino de modelos como GPT-3.5 utilizando conjuntos de datos personalizados cargados por los usuarios.
  • Bibliotecas PEFT
    Herramientas como PEFT de Hugging Face simplifican el ajuste fino basado en adaptadores y LoRA.

Ajuste fino en escenarios del mundo real

  • Atención sanitaria: Adaptación de los LLM a los datos clínicos para la elaboración de resúmenes de informes médicos, el apoyo al diagnóstico o la comunicación con los pacientes.
  • Legal: Entrenamiento de modelos sobre textos legales para el análisis de contratos o las comprobaciones de cumplimiento.
  • Atención al cliente: Ajuste fino de chatbots con preguntas frecuentes y tono específicos de la empresa.
  • Finanzas: Personalización de modelos para la detección de fraudes, la generación de informes financieros o el análisis de sentimientos en noticias financieras.
  • Venta al por menor: Personalización de las recomendaciones de productos o las interacciones de soporte basadas en el tono de la marca y los datos de inventario.

Conclusión

El ajuste fino es un método potente para adaptar los modelos de IA de propósito general a tareas específicas y prácticas. Permite a las empresas y a los desarrolladores obtener un rendimiento más preciso, eficiente y relevante de los modelos existentes sin tener que construir los suyos propios desde cero.

Mediante el uso de métodos como el ajuste fino completo, parcial o eficiente en cuanto a parámetros y siguiendo las mejores prácticas, los equipos pueden personalizar eficazmente los sistemas de IA para satisfacer necesidades especializadas, al tiempo que gestionan los costes de los recursos.

Glosario relacionado