README · by ansango
← Volver al libro

Evaluación exacta y AI as judge

Más allá de la perplexity: corrección funcional, métricas de similarity, embeddings, LLM-as-a-judge y evaluación comparativa entre modelos

~7 min de lectura
Resumen

Esta nota cubre la segunda mitad del capítulo 3: cuando las métricas intrínsecas (perplexity, cross-entropy) no son suficientes, necesitamos métricas de tarea más precisas. Vemos corrección funcional, métricas de similarity contra datos de referencia, embeddings, AI as judge (usar otro modelo para evaluar) y la evaluación comparativa entre modelos. La siguiente nota (evaluación de sistemas de IA) lleva todo esto al nivel de sistema completo.

Por qué la perplexity no basta

El libro insiste en la misma idea desde otro ángulo: la perplexity y la cross-entropy son métricas de preentrenamiento, útiles para optimizar el modelo en su fase de aprendizaje, pero inútiles para decir si el modelo va a funcionar en tu producto. Un modelo con perplexity baja puede generar respuestas correctas en formato incorrecto, o responder con tres párrafos cuando pediste una frase, o alucinar con total confianza.

Para evaluar la calidad real necesitamos ir a métricas de tarea: ¿el modelo resolvió el problema que le pediste?

Evaluación de corrección funcional

La evaluación más potente, cuando aplica, es la corrección funcional: ¿el output del modelo hace lo que debería hacer?

¿Cuándo aplica?

Cuando la respuesta se puede verificar automáticamente:

Ejemplo: evaluación de código

def evaluate_code(model, problem, test_cases):
    """Evalúa si el código que genera el modelo pasa los tests."""
    code = model.generate(problem)
    try:
        exec(code, namespace := {})
        passed = all(
            namespace["solution"](*args) == expected
            for args, expected in test_cases
        )
        return passed
    except Exception:
        return False

Ventajas

Limitaciones

Empieza aquí si puedes

Si tu tarea admite corrección funcional, no empieces con métricas vagas. La corrección funcional es la evaluación más robusta que existe.

Métricas de similarity

Para tareas donde la respuesta no se puede verificar funcionalmente pero hay una respuesta de referencia, repasamos las métricas de similarity más usadas.

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

Familia de métricas estándar en summarization. Mide el overlap de n-gramas (secuencias de palabras) entre la respuesta del modelo y la referencia.

ROUGE en acción

Referencia: “El gato se sentó en la alfombra.” Modelo: “El gato se sentó sobre la alfombra.” ROUGE-1: 6/7 = 0.86 (6 palabras coinciden de 7). ROUGE-2: 5/6 = 0.83 (5 bigramas de 6 coinciden).

Limitaciones de ROUGE

BLEU y METEOR

Métricas populares en traducción automática, similares a ROUGE pero con matices:

BERTScore

Una mejora moderna: usa embeddings (representaciones vectoriales del significado) en lugar de n-gramas. Compara los vectores de la salida con los de la referencia.

BERTScore > ROUGE para matices

Si necesitas una métrica que capture significado y no solo palabras, BERTScore gana. Es más cara de calcular pero más fiel a la calidad semántica.

Embeddings: la base de las métricas modernas

El libro introduce embeddings porque aparecen en varias métricas y técnicas posteriores (RAG, búsqueda semántica, evaluación).

Qué es un embedding

Un embedding es una representación vectorial densa de un texto (palabra, frase, párrafo, imagen). Las posiciones en el espacio vectorial capturan similitud semántica: textos con significado parecido están cerca.

Embeddings en la práctica

“El gato está en el sofá” y “Un felino descansa sobre el mueble” tienen embeddings cercanos, aunque no comparten casi palabras. “El gato está en el sofá” y “La cocina está desordenada” tienen embeddings lejanos.

Cómo se generan

Los embeddings se generan con un encoder, un modelo entrenado para representar texto en un espacio vectorial. Modelos populares:

Dimensionalidad

Los embeddings tienen entre 256 y 4096 dimensiones. Más dimensiones capturan más detalle, pero cuestan más espacio y más cómputo.

Métricas de similaridad entre embeddings

¿Cuándo cosine vs euclidean?

En la práctica, casi siempre cosine. Funciona bien incluso cuando los embeddings tienen magnitudes distintas, y es invariante a la longitud del texto.

AI as a judge

La técnica más disruptiva de los últimos años en evaluación: usar un modelo (a menudo uno más potente o especializado) para evaluar la salida de otro modelo.

El problema que resuelve

Las métricas automáticas clásicas (ROUGE, BERTScore) son baratas pero limitadas. La evaluación humana es la mejor pero cara y lenta. AI as judge es el punto medio: razonablemente buena, razonablemente barata, razonablemente rápida.

Cómo funciona

  1. Defines una rúbrica de evaluación (criterios, escala).
  2. Le pasas al modelo evaluador el prompt original, la respuesta del modelo a evaluar y la rúbrica.
  3. El modelo devuelve una puntuación o veredicto.
# Pseudo-código
def llm_as_judge(prompt, response, rubric, judge_model):
    eval_prompt = f"""
    Evalúa la siguiente respuesta según esta rúbrica:
    {rubric}

    Prompt del usuario: {prompt}
    Respuesta: {response}

    Puntuación (1-5):
    """
    return judge_model.generate(eval_prompt).score

Ventajas

Limitaciones

El modelo es juez, no dios

El libro repite que AI as judge es una herramienta, no una verdad. Funciona cuando la rúbrica es clara y la tarea es razonablemente objetiva. Falla en tareas muy subjetivas (estilo, creatividad) y en preguntas multi-paso donde el modelo se pierde.

Cuándo usar AI as judge

Modelos como jueces

Combina AI judge con humanos

El libro recomienda una pirámide invertida: AI judge evalúa el 100% de las salidas; humanos evalúan un 5–10% muestreado. Cuando AI judge y humanos discrepan, etiquetas ese caso para revisarlo y ajustar la rúbrica.

Evaluación comparativa

La última técnica del capítulo: en lugar de evaluar un modelo en abstracto, comparas dos modelos directamente y determinas cuál es mejor.

Pairwise comparison

En lugar de pedir “del 1 al 10”, presentas dos respuestas y preguntas “¿cuál es mejor?”. Esta técnica reduce el sesgo y es más fácil para el modelo evaluador.

Pairwise en acción

Ventajas de la comparación

Cómo implementarla

Limitaciones

Intercambia el orden

En pairwise, siempre evalúa dos veces, con orden invertido. Si “A > B” y “B > A” según el orden, sabes que tienes positional bias y descartas esa comparación.

Resumen en tres frases

Próximos pasos