Aprendizaje por transferencia#

El aprendizaje por transferencia es una técnica común en deep learning. Consiste en reutilizar los pesos de una red preentrenada como base para entrenar un nuevo modelo.

Ventajas principales:

  • El entrenamiento es más rápido si las tareas son similares.

  • El rendimiento es mejor que el de un modelo entrenado desde cero.

  • Se necesitan menos datos.

aprendizaje_por_transferencia

Imagen extraída de este artículo.

¿Aprendizaje por transferencia o fine-tuning?#

Estos dos términos suelen confundirse porque están estrechamente relacionados. En la práctica, el fine-tuning es una forma de aprendizaje por transferencia que consiste en volver a entrenar solo una parte de las capas del modelo reutilizado.

Definiciones claras:

  • Aprendizaje por transferencia: Entrenar un modelo utilizando los pesos de un modelo preentrenado en otra tarea (se puede reentrenar todo el modelo o solo ciertas capas).

  • Fine-tuning: Reentrenar ciertas capas (generalmente las últimas) de un modelo preentrenado para adaptarlo a una nueva tarea.

¿Cómo aplicar el fine-tuning?#

El fine-tuning consiste en reentrenar ciertas capas de un modelo preentrenado para adaptarlo a una nueva tarea. Por lo tanto, es necesario elegir cuántas capas reentrenar.

¿Cómo seleccionar el número de capas? No existe una fórmula fija. Generalmente, se basa en la intuición y en estas reglas:

  • Menos datos disponibles → reentrenar menos capas (pocos datos: solo la última capa; muchos datos: casi todas las capas).

  • Tareas más similares → reentrenar menos capas. Ejemplo 1: Detectar hámsters además de gatos, perros y conejos (tareas similares). Ejemplo 2: Detectar enfermedades a partir de un modelo entrenado en gatos/perros/conejos (tareas muy diferentes).

¿Cuándo usar aprendizaje por transferencia o fine-tuning?#

En general, usar un modelo preentrenado como base siempre es beneficioso (a menos que los dominios sean muy distintos). Se recomienda aplicarlo siempre que sea posible.

Limitaciones a considerar:

  • La arquitectura del modelo no puede modificarse libremente (especialmente en las capas no reentrenadas).

  • Se necesitan los pesos de un modelo preentrenado (hay muchos disponibles en línea; ver curso 6 sobre HuggingFace).

Nota: Para clasificación de imágenes, es común usar modelos preentrenados en ImageNet, ya que sus \(1000\) clases lo hacen bastante generalista.

¿Cómo preparar el dataset de entrenamiento?#

Al aplicar fine-tuning, pueden plantearse dos objetivos distintos:

  • Caso 1: Entrenar el modelo para una tarea totalmente diferente a la original. Ejemplo: Clasificar dinosaurios cuando el modelo estaba entrenado en mamíferos. → El modelo puede “olvidar” su tarea original sin consecuencias.

  • Caso 2: Entrenar el modelo para una tarea complementaria, manteniendo el rendimiento en la original. Ejemplo: Detectar aves sin perder precisión en mamíferos.

La composición del dataset depende del caso:

  • Caso 1: Solo incluye las nuevas imágenes a clasificar (ej.: únicamente dinosaurios).

  • Caso 2: Combina datos antiguos y nuevos (ej.: \(50\%\) mamíferos + \(50\%\) aves) para mantener el rendimiento en ambas tareas. Nota: La proporción puede ajustarse según necesidades.

Importante sobre open-source real: Para un fine-tuning efectivo, un modelo debe proporcionar:

  1. Código,

  2. Pesos preentrenados,

  3. Datos de entrenamiento.

Esto es especialmente crítico en modelos de lenguaje grandes (LLM).

Modelos base (foundation models)#

Los modelos base se entrenan con grandes volúmenes de datos (a menudo sin etiquetar) y sirven como punto de partida para aplicar fine-tuning o aprendizaje por transferencia.

Modelos base por dominio:

  • Procesamiento de Lenguaje Natural (NLP): Ejemplos: GPT, BLOOM, Llama, Gemini. Aplicación: Se ajustan para tareas específicas. Por ejemplo, ChatGPT es una versión con fine-tuning de GPT optimizada para conversaciones tipo chatbot.

  • Imágenes: El concepto es menos claro que en NLP, pero destacan modelos como ViT, DINO o CLIP.

  • Audio: Un ejemplo es el modelo CLAP (Contrastive Language–Audio Pretraining).