EKG + RAG/LLM para retroalimentación de códigoTrabajo de Fin de Máster · UNED
El dataset sintético

El dataset sintético

Cómo construí los datos de entrenamiento del Sistema B con plantillas deterministas ancladas al grafo, por qué no usé un modelo generativo y cómo medí —y acoté— la regularidad que introduce ese método.

Para afinar el modelo con QLoRA hacía falta un corpus de retroalimentación en español, etiquetado y reproducible. Lo generé con plantillas deterministas ancladas a los conceptos del EKG, no con una IA generativa. Es una decisión deliberada —indicada por el director— que prioriza el control y la trazabilidad sobre la variedad, con una limitación conocida que mido más abajo y que mitigo con una partición held-out por esqueleto.

Autor: Adrián Bueno Junquero Director: José Luis Fernández Vindel Máster: Investigación en Inteligencia Artificial — UNED

1Generación con plantillas deterministas

Cada registro del dataset nace de una plantilla determinista anclada a un concepto del EKG. La plantilla parte de un esqueleto de código con un error característico (por ejemplo, un desfase por uno o un caso base ausente en una recursión) y produce, de forma reproducible, la retroalimentación esperada: el tipo de error, el concepto implicado y la explicación. No interviene ningún modelo de lenguaje en la creación de las etiquetas, de modo que la verdad de referencia queda fijada por construcción.

2625
registros (versión v2)
35
esqueletos / plantillas estructurales
19
conceptos del EKG cubiertos
157
conceptos disponibles en el EKG

Las cuatro categorías de error reparten el corpus de la versión v2 según muestra la tabla. La distribución refleja el peso real de cada familia de error en la docencia de Python, con los sintácticos sobre código que, por diseño, no es analizable.

Distribución por categoría de error en las dos versiones del dataset.
Categoríav1 (550 reg.)v2 (2625 reg.)
Conceptual45 %40 %
Semántico31 %29 %
Sintáctico14 %20 %
Correctas10 %11 %
Flujo de generación determinista anclada al EKG El concepto del EKG alimenta una plantilla determinista; la plantilla produce a la vez el código con error y su etiqueta de verdad de referencia, sin pasar por un modelo generativo. Concepto del EKG Plantilla determinista Código con error Etiqueta verdad de referencia
Diagrama del flujo: el concepto del EKG ancla una plantilla determinista que emite, en un solo paso reproducible, el código con error y su etiqueta de verdad de referencia. No hay modelo generativo en el camino.

2Por qué plantillas y no IA generativa

Generar el corpus con plantillas deterministas ancladas al EKG —y no con un modelo generativo— fue una indicación expresa del director. La razón es metodológica: lo que se afina necesita una verdad de referencia sin ambigüedad.

Tres motivos para el método determinista

Control. Yo fijo qué concepto, qué categoría y qué explicación lleva cada registro, sin la deriva ni las alucinaciones de un modelo generador. Trazabilidad. Cada etiqueta se remite a un concepto concreto del EKG, así que las métricas objetivas del benchmark pueden anclarse a esa verdad de referencia con independencia del juez. Reproducibilidad. El mismo procedimiento vuelve a producir el mismo corpus, sin depender de un servicio externo ni de una semilla de muestreo de un LLM.

El precio de estas ventajas es una variedad menor que la de un generador libre. Es un compromiso asumido y, sobre todo, medido: en la sección siguiente cuantifico la regularidad que introduce el templating y describo cómo la acoto.

3Diversificación del corpus (v1 → v2)

La primera versión del dataset derivaba de solo 11 plantillas, lo que provocaba que la pérdida bajísima del entrenamiento reflejara memorización del formato más que generalización. Para atajarlo diversifiqué el corpus hasta la versión v2.

Diversificación de v1 a v2.
Métricav1v2
Registros5502625
Esqueletos / plantillas estructurales1135
Conceptos cubiertos~919
Targets únicos~bajo (casi idénticos)1396 (53 %)
Partición de validaciónaleatoria (con fuga)held-out por esqueleto

La cifra de "1396 targets únicos" (53 %) sobreestima la variedad real. Al medir la diversidad de forma semántica (coseno entre embeddings) en lugar de contar cadenas distintas, el coseno medio intra-esqueleto es 0,962 frente al global 0,604: dentro de cada plantilla, las respuestas difieren casi solo en nombres de variable. Esa medición es la que cuantifica la limitación del método.

4La limitación medida y su mitigación

El método determinista introduce regularidades superficiales: como las plantillas comparten estructura, el modelo puede aprender la forma de la respuesta en lugar del razonamiento. Reconocer esta limitación es parte del rigor del trabajo, y por eso la mido en vez de ocultarla.

Mitigación: partición held-out por esqueleto

La validación no se reparte al azar, sino reservando esqueletos completos no vistos en el entrenamiento (solapamiento nulo con el conjunto de entrenamiento). Así, evaluar sobre un esqueleto held-out mide si el modelo generaliza a una estructura nueva y no si memoriza una que ya vio. El reparto de entrenamiento es de 2100 registros frente a 525 de validación, con 7 esqueletos reservados.

7
esqueletos held-out no vistos
2100 / 525
registros entrenamiento / validación
0
solapamiento de esqueletos
50
casos del benchmark held-out

Sobre esa base, el benchmark del proyecto se evalúa con n=50 casos held-out (esqueletos no vistos), con métricas objetivas ancladas a la verdad de referencia que fija la plantilla. Es la condición que permite leer los resultados sin la fuga que contaminaba las primeras evaluaciones.

Lo que esto no resuelve

La partición por esqueleto acota la fuga dentro del propio corpus sintético, pero no convierte los datos en código real de estudiantes. La variación auténtica del dataset está entre plantillas, no dentro de cada una, así que cerrar del todo el hueco exige diversificar la redacción de las respuestas o destilar de un modelo maestro. La prueba sobre código real lo confirma y se documenta en la página de resultados.

5Ver también

Sistema RAG y fine-tuning

La arquitectura de los cuatro sistemas, el afinado QLoRA sobre este dataset y la curva de entrenamiento que invierte el sobreajuste.

Resultados

El benchmark de los 50 casos held-out y la prueba sobre código real, donde se mide si lo afinado transfiere fuera de las plantillas.

El grafo de conocimiento

El EKG al que se anclan las plantillas: sus 157 conceptos, las consultas SPARQL y la validación SHACL.

Cómo citar

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.