Glosario · IA en el testing
Evaluación de LLM (evals)
En inglés: LLM evaluation
También llamado: evals, evals de LLM, evaluación de modelos de lenguaje, LLM evals
Definición
Medir sistemáticamente la calidad de una funcionalidad con LLM sobre un conjunto fijo de entradas y criterios, ya que las salidas varían y las assertions exactas no sirven.
La evaluación de LLM (“evals”) es la forma de probar una funcionalidad construida sobre un modelo de lenguaje grande: la ejecutas sobre un conjunto fijo de entradas, puntúas cada salida según criterios definidos y sigues las puntuaciones a lo largo del tiempo. Las pruebas tradicionales comprueban un único valor esperado exacto. La salida de un LLM es texto libre que varía entre ejecuciones, así que la evaluación sustituye la igualdad exacta por una mezcla de comprobaciones deterministas, puntuaciones calificadas y revisión humana, y juzga la funcionalidad por sus tasas de acierto en muchos casos, no por un único ejemplo.
Ejemplo
Un clasificador de tickets de soporte evaluado contra un dataset etiquetado:
import { readFileSync } from 'node:fs';
import { classifyTicket } from '../src/classifier';
type Case = { input: string; expected: 'billing' | 'bug' | 'account' | 'other' };
const cases: Case[] = JSON.parse(readFileSync('evals/tickets.json', 'utf8'));
let correct = 0;
for (const c of cases) {
const result = await classifyTicket(c.input);
if (result.label === c.expected) correct++;
else console.log(`MISS expected=${c.expected} got=${result.label} :: ${c.input}`);
}
const accuracy = correct / cases.length;
console.log(`accuracy ${(accuracy * 100).toFixed(1)}% over ${cases.length} cases`);
if (accuracy < 0.9) process.exit(1); // regression gate
Tipos de comprobaciones, de más a menos fiables
- Deterministas. JSON válido, cumple un esquema, contiene un campo obligatorio, no supera un límite de longitud, elige una etiqueta de un conjunto permitido. Baratas y repetibles; úsalas siempre que encajen.
- Basadas en referencia. Comparar con una respuesta correcta conocida: coincidencia exacta para etiquetas, o puntuaciones de solapamiento y similitud para texto libre. Las puntuaciones de similitud son aproximadas y necesitan calibración.
- Calificadas por un modelo. Otro LLM puntúa la salida según una rúbrica (LLM-as-judge). Escala a texto abierto, pero introduce sus propios errores.
- Revisión humana. La más fiable para la calidad con matices, y la referencia con la que se calibran las comprobaciones automáticas.
Qué está consolidado y qué sigue cambiando
Consolidado: evaluar sobre un dataset versionado, ejecutar evals en cada cambio de prompt o de modelo, seguir las puntuaciones a lo largo del tiempo e incluir casos adversariales como el prompt injection. Sigue cambiando: la elección de métricas para la generación abierta, hasta qué punto confiar en las puntuaciones calificadas por modelos, y las herramientas, que cambian rápidamente.
Errores comunes
Juzgar un cambio a partir de un puñado de chats manuales; usar tan pocos casos que no se distingue un cambio real del ruido; ejecutar cada caso una sola vez cuando las salidas varían (ejecútalo varias veces e informa de la dispersión), y dejar que el conjunto de evals se quede obsoleto mientras cambia el tráfico real de los usuarios.