まとめ
- Resumir las métricas principales para evaluar modelos de lenguaje y cuándo usar cada una.
- Destacar métricas automáticas para traducción, resumen y generación con fragmentos de código.
- Explicar cómo combinar métricas automáticas con evaluaciones humanas o basadas en LLM controlando los sesgos.
Visión general de las métricas para modelos de lenguaje #
En las tareas de lenguaje suele haber múltiples respuestas válidas, por lo que trabajamos con varias familias de métricas. Las agrupamos en enfoques basados en n-gramas, basados en embeddings y LLM como evaluador. Cada familia captura aspectos diferentes: coincidencia superficial, similitud semántica y cumplimiento de instrucciones.
1. Métricas basadas en n-gramas (superficie del texto) #
| Métrica | Qué mide | Características |
|---|---|---|
| BLEU | Precisión de n-gramas + penalización por brevedad | Clásico en traducción; sufre en textos cortos y paráfrasis |
| ROUGE-1/2/L | Recall de n-gramas / subsecuencia común más larga | Muy extendido en resumen; mejora con múltiples referencias |
| METEOR | Coincidencia unigram + sinónimos/flexiones | Orientada al recall; los recursos en inglés (WordNet) son abundantes |
| chrF++ | F-score de n-gramas de caracteres | Robusta en idiomas con morfología compleja; amplía chrF con n-gramas de palabras |
Recomendaciones de uso #
- BLEU: comparar contra benchmarks; aplicar smoothing cuando las referencias son cortas.
- ROUGE: adecuado para resúmenes extractivos; la librería
rouge-scorefacilita el cálculo. - METEOR: captura cercanía semántica pero necesita recursos léxicos.
- chrF++: útil cuando la tokenización es difícil (japonés, chino, etc.).
import sacrebleu
references = [["今日は良い天気です。"]]
candidate = "今日はとてもいい天気だ。"
bleu_score = sacrebleu.corpus_bleu([candidate], references)
chrf_score = sacrebleu.corpus_chrf([candidate], references)
print(bleu_score.score, chrf_score.score)
2. Métricas basadas en embeddings (similitud semántica) #
| Métrica | Modelo | Notas |
|---|---|---|
| BERTScore | Embeddings de BERT/RoBERTa | Calcula precisión/recall/F1 en el espacio de embeddings; soporte multilingüe |
| MoverScore | Variante de Word Mover’s Distance | Da peso extra a palabras raras; coste computacional mayor |
| BLEURT | RoBERTa afinado con juicios humanos | Alta correlación incluso con pocos datos; requiere descargar checkpoints |
| COMET | Transformer multilingüe con pérdida QA | Excelente en benchmarks de traducción; dispone de CLI y API |
| QAEval / ParaScore | Genera preguntas y verifica respuestas | Evalúa fidelidad semántica vía QA; montaje más costoso |
Recomendaciones #
bert-scorefacilita el uso de BERTScore, incluidos modelos japoneses.- BLEURT/COMET necesitan checkpoints preentrenados; ofrecen mejor correlación humana pero son más caros de ejecutar.
- Emplea BERTScore para chequeos semánticos ligeros; pasa a BLEURT/COMET cuando necesites máxima fiabilidad.
from bert_score import score
cands = ["今日はとてもいい天気だ。"]
refs = ["今日は良い天気です。"]
P, R, F1 = score(cands, refs, lang="ja", model_type="cl-tohoku/bert-base-japanese")
print(F1.mean().item())
3. LLM como evaluador #
| Enfoque | Resumen | Precauciones |
|---|---|---|
| Evaluación directa con LLM | Dar referencia + candidato a un modelo tipo GPT-4 | El prompt y el control de sesgos son críticos |
| Evaluación guiada por rúbricas | Proporcionar criterios (fluidez, fidelidad, toxicidad) por dimensión | Mayor coste, pero ofrece diagnóstico detallado |
| LLM + QA | Generar preguntas y comprobar respuestas para ver la consistencia | Útil en resúmenes largos; depende de la calidad de las preguntas |
Guías prácticas #
- Publica los prompts y mensajes del sistema para asegurar transparencia.
- Fija temperatura/semillas y repite varias veces para estabilizar el resultado.
- Contrasta periódicamente con anotaciones humanas para mantener la confianza.
Flujo para elegir métricas #
- Aclarar la tarea
Traducción/resumen → incluye métricas n-grama; generación abierta → da más peso a embeddings y LLM evaluadores. - Revisar disponibilidad de referencias
Muchas referencias → combina n-grama + embeddings; pocas referencias → apóyate más en LLM o evaluadores humanos. - Equilibrar coste y fidelidad
Iteración rápida → SacreBLEU o BERTScore; evaluaciones críticas → BLEURT/COMET o juzgadores basados en GPT.
Lista de verificación #
- ¿Se evaluó la calidad/cantidad de referencias?
- ¿Se validaron las métricas automáticas contra juicios humanos o de LLM?
- ¿Se consideraron tanto coincidencia superficial como alineación semántica?
- ¿Se documentaron prompts/configuraciones cuando se usan LLM evaluadores?
- ¿Existe un plan para detectar y mitigar sesgos?
Lecturas sugeridas #
- BLEU / chrF++: SacreBLEU
- ROUGE:
rouge-score - BERTScore: GitHub - bert-score
- BLEURT: Google Research BLEURT
- COMET: Unbabel COMET
- LLM-as-a-Judge: OpenAI evals
Combina varias métricas, comprueba la correlación con evaluaciones humanas y ajusta el pipeline a medida que evoluciona tu modelo o tarea.