Tu juez de I.A. tiene favoritos, compruébalo
Le pides a una IA que elija la mejor de dos respuestas, y elige siempre la más larga, no la mejor. Tu juez tiene favoritos, y si no lo sabes de antemano, vas a confiar en puntajes que están midiendo lo que no es.
El problema: LLM-as-judge escala, pero no es neutral
"LLM-as-judge" es la práctica de usar un modelo de IA para calificar la salida de otro modelo de IA: comparar dos respuestas, puntuar una sola respuesta contra una rúbrica o clasificar un lote de salidas. Existe porque la revisión humana manual no escala: no puedes poner a una persona a leer cada salida de cada variante de prompt, cada versión de modelo, cada prueba de regresión. Un juez LLM puede correr miles de comparaciones en el tiempo que un revisor humano hace un puñado.
Pero un juez LLM sigue siendo un modelo emitiendo un juicio, y como un evaluador humano, tiene puntos ciegos. La diferencia es que los sesgos de un evaluador humano son al menos algo visibles para un equipo que trabaja con él a diario. Los sesgos de un juez LLM son silenciosos: el puntaje simplemente regresa como un número, y nada en ese número te dice que estuvo influido por algo distinto a la calidad.
Por qué funciona: tres modos de falla documentados
- Sesgo posicional. El juez tiende a favorecer la respuesta que vio primero (o, según el modelo, la segunda), sin importar cuál sea realmente mejor. Presenta siempre la salida del mismo sistema como "Opción A" y estarás midiendo preferencia posicional, no calidad.
- Sesgo de verbosidad. El juez tiende a favorecer la salida más larga, tratando la extensión en sí misma como señal de calidad. Una respuesta rellena y repetitiva puede superar en puntaje a una corta y correcta simplemente porque dice más.
- Sesgo de auto-mejora (self-enhancement). Un modelo juez puede favorecer una salida porque reconoce patrones estilísticos que coinciden con cómo él mismo habría generado la respuesta: favorece el "suena como yo" por encima del "es realmente mejor".
Ninguno de estos significa que el juez sea inútil. El sesgo no significa que el sistema de evaluación esté completamente roto: significa que debes mantenerte vigilante y probarlo en lugar de confiar en él a ciegas.
Cómo correrla: la prueba de intercambio posicional
- Corre la comparación una vez, Respuesta A vs. Respuesta B, y registra cuál elige el juez.
- Corre exactamente la misma comparación otra vez, con el orden intercambiado: B presentada donde estaba A, A donde estaba B.
- Compara los dos veredictos. Si el juez elige la misma respuesta subyacente ambas veces, eso es evidencia de que el veredicto refleja calidad. Si el ganador cambia, eso es la posición hablando, no la calidad.
El flujo: A vs. B → Swap: B vs. A → Compare verdicts. Esta única prueba aísla el sesgo posicional de forma limpia, y es barata: una llamada extra al modelo por comparación, automatizada como parte de tu arnés de evaluación.
Para detectar el sesgo de verbosidad en específico, agrega una segunda variante: prueba una respuesta corta y correcta contra una larga y rellena donde el relleno no aporta información real. Si el juez favorece la extensión por encima de la corrección, instruye al juez explícitamente a ignorar la longitud, o normaliza las longitudes de salida antes de comparar cuando el caso de uso lo permita.
Casos de uso
- Calificar respuestas de chatbot en una suite de evaluación, antes de confiar en la tasa de aprobación agregada.
- Comparar dos variantes de prompt (A/B testing de prompts) donde el "ganador" determina qué va a producción.
- Clasificar salidas de modelo a escala: un sesgo posicional sistemático puede favorecer silenciosamente al candidato que resulte quedar primero en tu pipeline.
Trampas comunes
- Correr la comparación una vez y confiar en el número. Un puntaje de juez de una sola pasada, sin prueba de intercambio, no te dice casi nada sobre si la posición o la longitud impulsaron el resultado.
- Suponer que la prueba de intercambio es una validación única. El sesgo puede cambiar cuando cambias modelos juez, prompts o rúbricas; vuelve a correr la verificación cada vez que alguno de esos cambie.
- Confundir "sesgado" con "roto". Un juez sesgado, una vez que conoces su sesgo, todavía puede ser útil: puedes corregir un sesgo posicional o de verbosidad conocido. De un juez no examinado, no puedes corregir nada.
- Probar solo el sesgo posicional y saltarte verbosidad/auto-mejora. Son modos de falla independientes.
Trucos avanzados
- Automatiza el intercambio como parte del arnés de evaluación en vez de una revisión manual puntual: corre ambos órdenes cada vez, siempre.
- Empareja la prueba de intercambio con un par corto-vs-relleno para aislar el sesgo de verbosidad en específico, no solo el posicional.
- Rastrea la tasa de desacuerdo entre intercambios como una métrica propia: una tasa de desacuerdo creciente en el tiempo es una señal temprana de que tu configuración de juez necesita recalibración.
Recursos
- Zheng et al., "Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena" (2023)
- OpenAI Evals — referencia de evaluación calificada por modelo
¿Construyendo un pipeline de evaluación? Yeda AI diseña, audita y lanza sistemas LLM en producción.