Evaluación de modelos de lenguaje

Eval

Evaluación de modelos de lenguaje

まとめ
  • 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étricaQué mideCaracterísticas
BLEUPrecisión de n-gramas + penalización por brevedadClásico en traducción; sufre en textos cortos y paráfrasis
ROUGE-1/2/LRecall de n-gramas / subsecuencia común más largaMuy extendido en resumen; mejora con múltiples referencias
METEORCoincidencia unigram + sinónimos/flexionesOrientada al recall; los recursos en inglés (WordNet) son abundantes
chrF++F-score de n-gramas de caracteresRobusta 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-score facilita 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étricaModeloNotas
BERTScoreEmbeddings de BERT/RoBERTaCalcula precisión/recall/F1 en el espacio de embeddings; soporte multilingüe
MoverScoreVariante de Word Mover’s DistanceDa peso extra a palabras raras; coste computacional mayor
BLEURTRoBERTa afinado con juicios humanosAlta correlación incluso con pocos datos; requiere descargar checkpoints
COMETTransformer multilingüe con pérdida QAExcelente en benchmarks de traducción; dispone de CLI y API
QAEval / ParaScoreGenera preguntas y verifica respuestasEvalúa fidelidad semántica vía QA; montaje más costoso

Recomendaciones #

  • bert-score facilita 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 #

EnfoqueResumenPrecauciones
Evaluación directa con LLMDar referencia + candidato a un modelo tipo GPT-4El prompt y el control de sesgos son críticos
Evaluación guiada por rúbricasProporcionar criterios (fluidez, fidelidad, toxicidad) por dimensiónMayor coste, pero ofrece diagnóstico detallado
LLM + QAGenerar 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 #

  1. Aclarar la tarea
    Traducción/resumen → incluye métricas n-grama; generación abierta → da más peso a embeddings y LLM evaluadores.
  2. Revisar disponibilidad de referencias
    Muchas referencias → combina n-grama + embeddings; pocas referencias → apóyate más en LLM o evaluadores humanos.
  3. 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 #

Combina varias métricas, comprueba la correlación con evaluaciones humanas y ajusta el pipeline a medida que evoluciona tu modelo o tarea.