Enfoque
El trabajo no enfrenta fine-tuning contra no fine-tuning. Resuelve un único problema y explora varias técnicas, con y sin entrenamiento, sobre los mismos tres modelos abiertos pequeños. Un único corpus sintético alimenta ambas ramas.
| Bloque | Qué hace |
|---|---|
| Generación de datos sintéticos | Produce un corpus en español guiado por esquema con un pipeline de cinco etapas adaptado de GuideX |
| Rama zero-shot | Mantiene los pesos congelados y combina prompting, ejemplos few-shot recuperados, decodificación restringida y posprocesado |
| Rama de fine-tuning | Actualiza los pesos con LoRA y con fine-tuning completo sobre el mismo corpus |
Generación de datos sintéticos
El corpus sigue la idea de GuideX (generación sintética guiada para extracción de información zero-shot), adaptada al español y al formato de registro de GenSIE.
| Etapa | Qué ocurre |
|---|---|
| 0 | Preparar un corpus heterogéneo en español (sobre todo pasajes de la Wikipedia en español), segmentarlo en pasajes autocontenidos y etiquetar el dominio |
| 1 | Un LLM profesor escribe un resumen estructurado de cada pasaje y lista candidatos a null-trap, preguntas que el pasaje no responde |
| 2 | Sintetizar un esquema JSON y una instrucción únicos para cada pasaje |
| 3 | Extraer una instancia JSON conforme al esquema, reintentando con la realimentación del validador si no lo es |
| 4–5 | Control de calidad sin LLM (violaciones de esquema, registros degenerados o poco especificados) y empaquetado en el formato de registro de GenSIE |
La principal diferencia respecto a GuideX es que cada pasaje recibe su propio esquema, de modo que un modelo al que se le da el corpus como prompt o como datos de entrenamiento tiene que leer el esquema en la inferencia en lugar de memorizar una ontología fija.
Rama zero-shot
Una cascada de generar y verificar en torno a una única llamada al LLM. Ningún nombre de campo ni ejemplo del conjunto de desarrollo está fijado en el código.
- Construcción del prompt. Un prompt de sistema fija el papel de extractor estructurado. El mensaje del usuario contiene el esquema, el texto y unas pocas demostraciones few-shot recuperadas de la biblioteca sintética por similitud de esquema, con embeddings multilingües de frases. Una guía de campos opcional reformula en lenguaje llano la descripción, la enumeración y la nulabilidad de cada campo.
- Decodificación restringida. El esquema JSON se compila en una gramática que enmascara los logits de tokens del modelo, de modo que la validez estructural se cumple por construcción y el esfuerzo del modelo se dedica a la corrección semántica.
- Posprocesado consciente del esquema. Una pasada determinista con cinco capas conservadoras: anclaje a la fuente, normalización léxica, canonicalización guiada por el esquema, ajuste literal y un filtro de alucinaciones que sustituye por
nulllos valores sin respaldo de campos anulables.
Rama de fine-tuning
Fine-tuning supervisado sobre ejemplos en formato de chat del mismo corpus, con la pérdida de entropía cruzada habitual sobre el JSON de referencia y sin aprendizaje por refuerzo. Dos regímenes se ejecutan en paralelo con los mismos datos y objetivo:
- LoRA: congela los pesos base y entrena adaptadores de bajo rango que pueden fusionarse de nuevo en un checkpoint estándar.
- Fine-tuning completo: actualiza todos los parámetros, repartidos entre varias GPUs para los modelos más grandes.
Se prueban tres modos de prompt en entrenamiento, incluido el in-context tuning, donde unas pocas demostraciones se colocan dentro del propio prompt de entrenamiento.