Métricas de Calidad para Datos Sintéticos: ROUGE-L, TTR y Fidelidad Factual
Un análisis profundo de las métricas que usamos para evaluar datos conversacionales sintéticos — ROUGE-L para coherencia estructural, Type-Token Ratio para diversidad léxica, y fidelidad factual para precisión de dominio.

Por qué las métricas de calidad son no negociables
No todos los datos sintéticos son equivalentes. Las conversaciones sintéticas generadas con descuido pueden degradar activamente el rendimiento del modelo — introduciendo alucinaciones, patrones repetitivos o conocimiento de dominio factualmente incorrecto.
La Capa 2 de UNCASE (Quality Evaluator) aplica un marco multi-métrico riguroso para garantizar que cada conversación sintética cumpla con estándares de producción antes de ingresar al pipeline de entrenamiento.
Las cuatro métricas fundamentales
1. ROUGE-L (Coherencia Estructural) — Umbral: ≥ 0.65
ROUGE-L (Recall-Oriented Understudy for Gisting Evaluation, variante de Longest Common Subsequence) mide con qué fidelidad la conversación sintética preserva los patrones estructurales de su plantilla semilla.
A diferencia de ROUGE-1 o ROUGE-2, que cuentan solapamientos de n-gramas, ROUGE-L captura la estructura a nivel de oración encontrando la subsecuencia común más larga — lo que lo hace ideal para evaluar el flujo conversacional.
from uncase.core.evaluator import compute_rouge_l
score = compute_rouge_l(
reference=seed_template,
hypothesis=synthetic_conversation
)
# score.fmeasure >= 0.65 required
¿Por qué 0.65? Tras evaluar más de 50.000 conversaciones sintéticas, encontramos el siguiente patrón claro:
- Por debajo de 0.50: la conversación se aleja demasiado del patrón semilla
- Entre 0.50 y 0.65: zona limítrofe — algunos elementos estructurales se preservan
- Entre 0.65 y 0.80: fuerte coherencia estructural con variación creativa
- Por encima de 0.80: riesgo de sobreajuste a la plantilla original
2. Fidelidad Factual — Umbral: ≥ 0.90
La fidelidad factual mide la precisión de las afirmaciones específicas de dominio en las conversaciones sintéticas. Esto es crítico en industrias reguladas, donde la información incorrecta tiene consecuencias reales.
El evaluador extrae afirmaciones factuales de la conversación sintética y las verifica contra una base de conocimiento de dominio:
| Tipo de afirmación | Ejemplo | Método de verificación |
|---|---|---|
| Dosificación médica | "Metformina 500mg dos veces al día" | Contraste con formulario farmacéutico |
| Regulación financiera | "Aplica el estándar fiduciario" | Cotejo con base de datos regulatoria |
| Precedente legal | "Bajo el Artículo 15 del RGPD..." | Verificación contra base jurídica |
| Especificación técnica | "Soporta el protocolo SAE J1939" | Validación contra estándares técnicos |
Una puntuación de fidelidad de 0.90 significa que al menos el 90% de las afirmaciones factuales verificables en la conversación son correctas.
3. Type-Token Ratio (Diversidad Léxica) — Umbral: ≥ 0.55
El Type-Token Ratio es la métrica más simple y, al mismo tiempo, una de las más reveladoras: el número de palabras únicas dividido por el número total de palabras.
TTR = |unique_tokens| / |total_tokens|
Por qué importa: el texto generado por LLMs tiende a caer en patrones repetitivos — usando las mismas frases de transición, estructuras sintácticas y coletillas. Un TTR bajo produce datos de entrenamiento que le enseñan al modelo a ser igualmente monótono.
def compute_ttr(text: str) -> float:
tokens = text.lower().split()
return len(set(tokens)) / len(tokens) if tokens else 0.0
El umbral de 0.55 garantiza que las conversaciones utilicen un vocabulario rico y variado — más próximo a cómo las personas realmente se expresan en contextos profesionales.
4. Coherencia Dialógica — Umbral: ≥ 0.85
La coherencia dialógica mide la consistencia de roles e información a lo largo de los turnos de conversación. Detecta fallos de generación frecuentes como:
- Un agente que contradice información que él mismo dio 3 turnos antes
- Un cliente que de repente posee conocimiento que no debería tener
- Confusión de roles (el agente respondiendo como si fuera el cliente)
- Deriva temática que rompe la lógica conversacional
La métrica combina tres mecanismos:
- Resolución de correferencia: seguimiento de entidades a través de los turnos
- Verificación de implicación: comprobación de que las afirmaciones no se contradicen entre sí
- Puntuación de consistencia de rol: verificación de la asimetría informativa apropiada
La fórmula de calidad compuesta
Q = min(ROUGE_L, Fidelity, TTR, Coherence)
if privacy_score == 0.00 AND memorization_rate < 0.01
else Q = 0
Esta fórmula impone dos propiedades críticas de diseño:
-
Sin compensación entre métricas: una conversación con fidelidad de 0.95 pero TTR de 0.40 obtiene Q = 0.40, no un promedio de 0.675. Cada dimensión debe superar su umbral de forma independiente.
-
La privacidad es una condición de corte total: si se detecta cualquier dato personal (privacy ≠ 0) o si la tasa de memorización supera el 1%, la puntuación de calidad es automáticamente cero, sin importar cómo se comporten el resto de las métricas.
Impacto en producción
En el piloto del dominio automotive.sales de UNCASE con 10.000 conversaciones sintéticas:
- Tasa de aprobación en primera generación: el 78% de los outputs superó todos los umbrales directamente
- Tras regeneración: tasa de aprobación del 96% (las conversaciones rechazadas se regeneran con prompts ajustados)
- Mejora en modelos downstream: +22% en benchmarks específicos de dominio frente a un LLM de propósito general
- Cero violaciones de privacidad en todo el conjunto de datos
Usando el evaluador
from uncase.core.evaluator import Evaluator
evaluator = Evaluator()
# Evaluate a single conversation
result = evaluator.evaluate(conversation)
print(f"ROUGE-L: {result.rouge_l}")
print(f"Fidelity: {result.fidelity}")
print(f"TTR: {result.ttr}")
print(f"Coherence: {result.coherence}")
print(f"Privacy: {result.privacy_score}")
print(f"Composite Q: {result.composite_score}")
# Batch evaluation with certification
report = evaluator.batch_evaluate(dataset, certify=True)
print(f"Pass rate: {report.pass_rate}%")
print(f"Certificate hash: {report.certificate_hash}")
Conclusiones clave
- Cuatro métricas independientes garantizan calidad en estructura, precisión, diversidad y coherencia
- La función mínimo impide el gaming — cada dimensión debe pasar de forma autónoma
- La privacidad actúa como puerta de corte: cualquier PII detectada lleva la calidad a cero
- Los umbrales son empíricos, validados sobre más de 50.000 conversaciones reales
- Los certificados anclados en blockchain proveen prueba inmutable de calidad para auditores
Artículos relacionados
Posts Relacionados
Sigue explorando con estos análisis técnicos relacionados.

Multi-Format Data Parsing for Conversational AI Training
How UNCASE Layer 1 handles WhatsApp exports, CRM logs, JSON transcriptions, and more — unifying diverse conversation formats into a standardized schema.

Seed Engineering: From Real Conversations to Abstract Templates
How the SCSF Layer 0 Seed Engine transforms real-world conversations into privacy-safe, reusable seed templates for synthetic data generation.

Differential Privacy in LLM Training: Theory and Practice
Understanding DP-SGD, privacy budgets, and how to train language models with mathematical privacy guarantees for healthcare and financial applications.
Comienza a Construir IA Privacy-First Hoy
Despliega el pipeline completo, conecta tus fuentes de datos, enruta a cualquier proveedor LLM y produce adaptadores LoRA conformes — todo sin exponer un solo dato.