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.

Data QualityMetricsROUGE-LNLPEvaluation
M
Escrito porMariano Morales
Tiempo de lectura9 min
Publicado el12 de febrero de 2026
Data Quality
Métricas de Calidad para Datos Sintéticos: ROUGE-L, TTR y Fidelidad Factual

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ónEjemploMé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:

  1. 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.

  2. 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

  1. Cuatro métricas independientes garantizan calidad en estructura, precisión, diversidad y coherencia
  2. La función mínimo impide el gaming — cada dimensión debe pasar de forma autónoma
  3. La privacidad actúa como puerta de corte: cualquier PII detectada lleva la calidad a cero
  4. Los umbrales son empíricos, validados sobre más de 50.000 conversaciones reales
  5. Los certificados anclados en blockchain proveen prueba inmutable de calidad para auditores

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.

0%PII en datos finales
0+Endpoints de API
0Industrias reguladas
0+Tests pasando