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.

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:
Código,
Pesos preentrenados,
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).