Fine tuning con QLoRA
Afiné el modelo base Qwen2.5-Coder-7B con QLoRA para que aprendiera a
redactar la retroalimentación pedagógica en español, sin tocar los pesos completos. Aquí cuento cómo medí ese
ajuste, qué bajó la pérdida de validación y a qué coste, separando siempre lo que mejora en distribución de lo
que aún no generaliza.
1El fine tuning en una mirada
Partí del modelo base y le añadí adaptadores QLoRA de bajo rango sobre una cuantización a 4 bits, de modo que el entrenamiento ajusta solo una fracción pequeña de parámetros. Entrené dos épocas sobre el reparto de SFT y evalué siempre contra un conjunto retenido cuyos esqueletos el modelo nunca había visto, para no engañarme con la memorización del formato.
eval_loss retenido, época 1 → época 2mean_token_accuracy) en el retenidoeval_loss frente a la versión sin regularizarLa versión que conservé como mejor afinado es la de la época 2. Esa configuración regularizada (con NEFTune y dropout) fue la que resolvió el sobreajuste que sí aparecía en una variante anterior, donde la pérdida de validación subía con las épocas en lugar de bajar.
El eval_loss es la pérdida de entropía cruzada sobre el conjunto retenido; cuanto más baja, mejor
reproduce el modelo las retroalimentaciones de referencia que no vio al entrenar. La precisión por token mide la
fracción de tokens del objetivo que el modelo predice correctamente. Ambas se calculan sobre esqueletos no vistos,
por lo que reflejan generalización dentro de la distribución sintética, no memorización.
2Curva de pérdida y generalización
La pérdida de entrenamiento cae muy rápido (el formato de la respuesta es repetitivo y fácil de ajustar), pero lo que de verdad me interesa es la pérdida de validación sobre lo retenido, que es la que mide si el ajuste transfiere. Bajó de la primera a la segunda época, señal de que la regularización evitó el sobreajuste.
loss_history.json del afinado QLoRA-v3. La pérdida de entrenamiento llega a ~0,011; la de validación baja de 1,051 a 1,028 entre épocas.La pérdida de entrenamiento tan baja refleja en buena parte que el modelo ajustó el formato de la respuesta, no que razone mejor. El conjunto sintético deriva de pocas plantillas y el coseno medio intra-esqueleto es muy alto, así que tomo la pérdida de validación como una mejora en distribución y reservo la prueba de generalización real para el código de estudiantes, donde el orden de los sistemas se invierte.
›Hitos de la serie de pérdida (datos reales)
| Paso | Pérdida entrenamiento | Pérdida validación (retenido) |
|---|---|---|
| 5 | 2,27 | — |
| 20 | 0,68 | — |
| 75 | 0,012 | — |
| 132 (fin época 1) | — | 1,051 |
| 264 (fin época 2) | ~0,011 | 1,028 |
3Coste y eficiencia del PEFT
La razón de usar QLoRA en vez de un ajuste completo es el coste. Al cuantizar el modelo base a 4 bits y entrenar solo adaptadores de bajo rango, el ajuste cabe en una sola GPU de consumo y termina en pocos cientos de pasos. La eficiencia del enfoque se ve bien en la verificación del propio canal de entrenamiento, donde los parámetros que se entrenan son una fracción mínima del total.
| Aspecto | Valor |
|---|---|
| Datos SFT (entrenamiento / validación) | 495 / 55 |
| Cuantización del modelo base | 4-bit NF4 (bitsandbytes) |
| Parámetros LoRA en la verificación del canal (SmolLM2-135M) | 1,84 M (1,35 % del total) |
| Épocas | 2 |
| Pasos de entrenamiento (QLoRA-v3) | 264 |
| Entorno | torch 2.11.0+cu128, CUDA 12.8, sm_120 |
Esa fracción del 1,35 % de parámetros entrenables (medida en la verificación del canal con un modelo pequeño) ilustra la lógica del PEFT, se actualiza muy poco para enseñar el formato y el estilo de la retroalimentación, mientras el grueso del modelo base queda congelado y cuantizado. Por eso el afinado completo del Sistema B cupo en la RTX 5090 sin recurrir a varias tarjetas.
Este modelo afinado es el Sistema B del TFM. En el banco en distribución (n=50) mejora sobre todo la clasificación del tipo de error (acierto de categoría 0,70 frente a 0,26 del base) y la explicación técnica; combinado con el grafo da el Sistema D híbrido. El detalle comparativo está en la página de resultados.
4Ver también
Sistema RAG y fine-tuning
El diseño de los cuatro sistemas A/B/C/D y cómo el afinado se combina con la recuperación sobre el grafo.
Resultados
Los benchmarks en distribución y sobre código real, con la inversión del orden que mide el sobreajuste.
El grafo
El grafo de conocimiento educativo que alimenta la recuperación del Sistema C y del híbrido D.
Si este trabajo te resulta útil y quieres referenciarlo, esta es la cita recomendada.
Bueno Junquero, A. (2026). Integración de un grafo de conocimiento educativo con un LLM mediante RAG. Trabajo Fin de Máster, Máster Universitario en Investigación en Inteligencia Artificial, UNED. Director, José Luis Fernández Vindel.