Neural Network Training Labs
Laboratorio 25 · Avanzada · 26 / 31

🔧 Fine-tuning eficiente de transformer

Fine-tuning eficiente de transformer

Objetivo

Comparar fine-tuning completo y LoRA sin tocar test durante selección.

Dataset público real

Los datos se descargan desde el proveedor oficial mediante los adaptadores del repositorio. Los archivos grandes no se incluyen en Git.

Modelo y fundamento

Protocolo

  1. Crear particiones con split_seed o conservar los splits oficiales.
  2. Entrenar y seleccionar exclusivamente con train y validation.
  3. Guardar best_model.pt y escribir experiment.lock.json.
  4. Abrir test una sola vez después del congelamiento.
  5. Registrar métricas, configuración, procedencia y limitaciones.

Ejecución

neural-labs train-advanced --track 25_transformer_finetuning --quick
neural-labs train-advanced --track 25_transformer_finetuning --split-seed 42 --training-seed 43

Métricas

accuracy, macro_f1, latency_ms, trainable_parameters.

Cuadernos

Limitación principal

El corpus contiene titulares históricos y sesgos editoriales; no representa todo el lenguaje contemporáneo.

🧠 Teoría

Teoría — Fine-tuning eficiente de transformer

Tokenización subword, atención preentrenada, fine-tuning completo y adaptación eficiente LoRA.

Fundamento matemático

Un transformer procesa el texto tras convertirlo en tokens subword (WordPiece en el caso de DistilBERT). Cada token se representa por un vector de embedding al que se le suma una codificación posicional, formando una matriz X ∈ ℝ^(n×d), donde n es la longitud de secuencia y d la dimensión oculta. El corazón del modelo es la autoatención: a partir de X se proyectan consultas, claves y valores mediante matrices aprendidas, Q = X·W_Q, K = X·W_K, V = X·W_V, y se calcula

Attention(Q, K, V) = softmax( (Q·Kᵀ) / √d_k ) · V.

La división por √d_k evita que los productos escalares crezcan con la dimensión y saturen el softmax; la matriz softmax(Q·Kᵀ/√d_k) es la que se visualiza como "mapa de atención", pues cada fila indica cuánto pesa cada token del contexto al construir la representación de un token dado. Con varias cabezas (multi-head) el modelo atiende simultáneamente a distintos subespacios de relación.

El preentrenamiento (BERT) optimiza un objetivo de modelado de lenguaje enmascarado: se ocultan tokens aleatorios y la red minimiza la entropía cruzada al predecirlos, ℒ = −Σᵢ log p(xᵢ | x_contexto). Así el modelo aprende representaciones lingüísticas generales antes de ver la tarea final. DistilBERT es una versión destilada: un modelo "estudiante" más pequeño se entrena para imitar al "profesor" BERT, combinando la pérdida supervisada con un término de destilación sobre las distribuciones suaves del profesor (softmax con temperatura), conservando ~97% del rendimiento con ~40% menos parámetros.

En el fine-tuning completo se añade una capa de clasificación sobre el embedding del token especial [CLS] y se actualizan todos los pesos θ del modelo mediante descenso de gradiente sobre la entropía cruzada de la tarea, θ ← θ − α·∇_θ ℒ. Es potente pero costoso: hay que almacenar y actualizar decenas de millones de parámetros por tarea. La adaptación eficiente LoRA parte de la observación de que la actualización necesaria ΔW tiene rango efectivo bajo. En lugar de modificar la matriz preentrenada W₀ ∈ ℝ^(d×k), LoRA la congela y aprende una corrección factorizada de rango r pequeño:

W = W₀ + ΔW = W₀ + (α/r)·B·A, con B ∈ ℝ^(d×r), A ∈ ℝ^(r×k), r ≪ min(d, k).

Solo se entrenan A y B (más el factor de escala α/r), reduciendo los parámetros entrenables en órdenes de magnitud sin añadir latencia en inferencia (las matrices pueden fusionarse en W). Esta es la esencia del parameter-efficient transfer learning, emparentada con los adapters de Houlsby et al., que insertan pequeños módulos entrenables entre capas congeladas. La línea base TF-IDF + regresión logística sirve de contraste: representa el texto por frecuencias de término ponderadas, sin capturar orden ni contexto, y ayuda a medir cuánto aporta realmente la atención preentrenada.

Visualización específica

Distribución de longitud, matriz de confusión, atención y comparación LoRA/full. Los mapas de atención revelan qué tokens influyen en la clasificación; la comparación LoRA vs. fine-tuning completo contrasta accuracy y macro_f1 frente al número de parámetros entrenables y la latencia, para juzgar el coste-beneficio de cada estrategia.

Riesgo de interpretación

El corpus contiene titulares históricos y sesgos editoriales; no representa todo el lenguaje contemporáneo. Además, un mapa de atención alto no implica causalidad ni "explicación" fiable de la decisión: la atención es una entre varias señales internas del modelo y debe interpretarse con cautela.

🔗 Referencias

Las referencias apuntan a las obras; no se reproduce su contenido, la redacción es original.

🔬 Experimentos

Experimentos — Fine-tuning eficiente de transformer

Hipótesis principal

Comparar fine-tuning completo con LoRA manteniendo la partición y la semilla de entrenamiento.

Variables controladas

Reporte mínimo

Media, desviación estándar, costo de entrenamiento, latencia y análisis de errores.

📝 Evaluación

Evaluación

Criterio Puntos
Procedencia y auditoría del dataset 15
Protocolo sin fuga de test 20
Implementación del modelo 20
Métricas y comparación con baseline 20
Análisis de errores y riesgos 15
Reproducibilidad y documentación 10

Total: 100 puntos.