MÓDULO 6 · OBSERVABILIDAD · LECCIÓN 05 · 30 MIN

Scores y LLM-as-a-Judge

Un error 500 se delata solo. Una respuesta educada, fluida y falsa no lanza ninguna excepción: tu sistema funcionó "correctamente" a nivel de código y el usuario se fue enfadado. Un score es lo que convierte "mala calidad" en un dato consultable, adjunto a una ejecución concreta y no a una media suelta.
01 — El hueco
Dos clases de fallo, una sola alarma
Clase de falloEjemploQuién lo detecta
Error de ejecuciónTimeout, AuthenticationError, JSON mal formadoEl intérprete, y la traza lo marca en rojo
Error del modeloAlucinación, tono inapropiado, respuesta incompletaNadie, salvo que lo midas

Todo lo que hemos visto hasta ahora cubre la primera fila entera y cero de la segunda. El score es lo que cubre la segunda.

02 — Los tres orígenes
De dónde sale un score
Heurístico  ·  reglas sobre la respuesta o la traza — latencia > 3 s, más de 500 caracteres
Humano      ·  pulgar arriba/abajo en la interfaz — el dato más valioso y el más escaso
Por modelo  ·  un LLM lee la interacción y la puntúa — el único que escala
// la guía solo desarrolla los dos últimos; el heurístico es el que puedes tener funcionando hoy y sin coste por evaluación.
03 — El patrón
Tres piezas, y una fácil de saltarse
app → respuesta→ trace_id→ juez (NO trazado)→ score(trace_id, name, value)

La llamada del juez no se traza como parte de la aplicación: si la trazas, tus métricas de coste y latencia de producto quedan contaminadas con el coste de medirte. Y sin el último paso tienes un número en un print y nada consultable: el trace_id es lo que convierte una medición en un dato.

04 — La escala
Binaria o de 1 a 5
Binaria 0/1
Cuando la pregunta tiene respuesta objetiva. ¿Alució? ¿Respondió a lo que se le preguntaba?
Escala 1–5
Cuando hay matiz y grados: tono, profesionalidad, estilo.
La regla que vale para las dos
El prompt del juez debe definir qué es cada número. "Puntúa del 1 al 5 la profesionalidad" no es una métrica, es una opinión con formato numérico. Una rúbrica que diga qué es un 5, qué es un 3 y qué es un 1 sí lo es: otra persona con la misma rúbrica llegaría al mismo número.
05 — Las tres reglas del juez
Cómo no envenenar tus propias métricas
ReglaPor qué
No uses el mismo modelo para juzgarse a sí mismoTiende a ser indulgente con su propia salida
No evalúes en tiempo real con el usuario esperandoLa evaluación va en lote, por la noche o sobre una muestra
MuestreaCon volumen alto, evaluar el 100 % cuesta más que servir las peticiones
06 — Vocabulario de RAG
Tres métricas que acusan a etapas distintas
MétricaQué preguntaQué etapa acusa
Faithfulness¿La respuesta se inventa cosas que no están en el contexto?Generación
Answer relevance¿La respuesta contesta a la pregunta?Generación
Context precision¿Los documentos recuperados servían?Recuperación

La utilidad no es tener tres números: es que un número bajo te dice qué arreglar. Faithfulness bajo con context precision alta significa que el retriever hizo su trabajo y el modelo no lo usó. Cambiar el modelo de embeddings ahí no arregla nada.

Auditoría

El fallback silencioso. El juez de la guía parsea así:

try:
    return float(resp.choices[0].message.content)
except:
    return 0.5   # Valor por defecto si falla

En una métrica binaria donde 1 es "correcto" y 0 es "alució", un fallo de parseo se convierte en un 0,5 indistinguible de una evaluación real. Si el juez empieza a devolver texto en vez de números — porque cambió el modelo, o porque la respuesta lo despistó — tus medias se desplazan hacia el centro y el dashboard sigue tan tranquilo. Un fallo de medición debería registrarse como fallo, no como resultado intermedio.

Dos afirmaciones sin medir. La guía dice que "Ragas es el estándar industrial actual" y que LLM-as-a-Judge "correlaciona muy bien con el juicio humano en tareas objetivas". Las dos pueden ser verdad y ninguna viene con fuente ni con número, en una lección cuya tesis es que hay que medir en vez de suponer. ¿Correlaciona cuánto, medido por quién, en qué tarea? Si vas a apoyar una decisión en eso, busca el estudio.

07 — Ahora tú
Audíta a tu propio juez

Coge una respuesta cualquiera que ya tengas trazada y pásale tu juez cinco veces seguidas, sin cambiar nada. Apunta los cinco números. Después escribe a mano una respuesta deliberadamente pésima para la misma pregunta y pásasela también.

Dos preguntas con las que quedarte. ¿Son iguales los cinco números de la primera tanda? Si no, tu métrica tiene ruido: baja la temperatura del juez o afina la rúbrica. ¿Puntúa la respuesta pésima claramente por debajo? Si no, el juez no discrimina y el número que estás guardando es decoración.