Tu modelo mental para las pruebas de IA

Qué se mantiene y qué se descarta: cómo aplicar tus conocimientos de pruebas web al nuevo mundo de los LLM

Aplicación de ejemplo

ThemeBuilder es tu aplicación de ejemplo a lo largo de esta serie. ThemeBuilder genera un objeto JSON que contiene un lema y una paleta de colores generados por un LLM.

  • El lema y la paleta deben coincidir con el nombre, la descripción, el público y el tono de la marca ingresados.
  • El lema no debe ser tóxico y debe ser corto (menos de 6 palabras).
  • El contraste de la paleta de colores debe ser accesible, según lo definen los lineamientos mínimos de WCAG, con una relación de contraste de 4.5:1.
Son las entradas y salidas de ThemeBuilder.
En ThemeBuilder, el usuario ingresa el nombre de la empresa y la descripción, un público objetivo, y un tono y un ambiente. El frontend envía esto a tu servidor. Tu servidor usa un LLM para generar un lema y una paleta de colores alineados con la marca.

Evaluaciones objetivas y subjetivas

¿Cómo pruebas que ThemeBuilder funciona según lo previsto?

Las evaluaciones basadas en reglas (a veces llamadas evaluaciones exactas) son pruebas objetivas con una respuesta binaria de correcta o incorrecta. Son ideales para preguntas sobre el formato de los datos, la relación de contraste o cualquier otra pregunta con una respuesta definitiva. Puedes implementar estas pruebas con código programático normal.

Algunas verificaciones son objetivas, con una respuesta binaria de correcta o incorrecta. Son ideales para preguntas sobre el formato de datos, la relación de contraste o cualquier otra pregunta con una respuesta definitiva. Puedes implementar estas pruebas con código programático normal. Se denominan evaluaciones basadas en reglas o evaluaciones exactas.

Por ejemplo:

// Example rule-based eval: data format
function evaluateFormat(appOutput) {
  // Check if JSON is valid, colors are hex, no empty strings, motto is 6 words or fewer
  // Use deterministic tools like zod for schema validation
  return "PASS"; // or "FAIL"
}

Otras verificaciones son subjetivas, como la alineación de la marca y el público con el lema y la paleta de colores. Si bien la detección de toxicidad es una tarea de clasificación, también es subjetiva porque implica un juicio.

Si bien las pruebas subjetivas también implican la clasificación, el rango de lo que es correcto y lo que es incorrecto puede variar mucho. Por ejemplo, evaluar la alineación de la marca y el público con el lema y la paleta de colores La detección de toxicidad también es subjetiva.

Si bien evaluar las cualidades subjetivas puede parecer algo que solo un experto humano puede hacer, puedes automatizar estas pruebas a gran escala con la técnica de LLM-as-a-judge.

[Los jueces de LLM] son rápidos, fáciles de usar y relativamente económicos […] Se han convertido en uno de los métodos más comunes, si no el más común, para evaluar los modelos de IA en producción.

—Ingeniería de IA, Chip Huyen

Por ejemplo:

// Example LLM-as-a-judge eval for a subjective quality like brand fit
async function evalBrandFit(userInput, appOutput) {
  const brandPrompt = `You are an expert brand strategist. Evaluate the
  following generated motto for the company whose target audience is
  ${userInput.audience}, and who describes itself as
  ${userInput.companyDescription}: ${appOutput.motto}`
  // Call the LLM judge
  const evalResult = evalWithLLM(brandPrompt);
  // Return the consolidated results
  return {
    mottoBrandFit: evalResult,
  };
}

// Helper that communicates with the LLM API
async function evalWithLLM(prompt) {
  // ... Call LLM with the prompt ...
  // ... Parse the resulting judgement ("PASS" or "FAIL") + rationale
  return {
    status: "PASS",
    rationale: "This motto perfectly captures the brand and tone, because..."
  };
}

El modelo imita el juicio humano, por lo que necesitas una forma de decirle al juez exactamente lo que buscas. Puedes hacerlo ofreciéndole al juez una rúbrica.

Una rúbrica es un conjunto estructurado de criterios o lineamientos de puntuación que un juez (humano o IA) usa para evaluar un resultado. Proporciona un marco de trabajo coherente para evaluar las cualidades subjetivas en cada evaluación.

Otros tipos de evaluaciones

Es posible que desees usar evaluaciones basadas en referencias o por pares.

Basado en referencias

Miden la similitud con una respuesta de verdad fundamental. Úsalos para tareas como la traducción o los datos técnicos en los que existe una respuesta correcta conocida.

Por pares

Un juez podría asignar una puntuación de PASS a dos versiones diferentes, incluso cuando una es mejor que la otra. La evaluación por pares resuelve este problema, ya que le proporciona al juez dos resultados (A y B) para la misma entrada y le indica que elija un ganador.

Por ejemplo, imagina que estás evaluando un lema para una cafetería amigable:

Input: "Friendly cafe"

Pointwise evaluation:
Output A: "Come get coffee." // PASS
Output B: "Your morning smile in a cup." // PASS
2 PASS. Unconclusive!

Pairwise evaluation:
Output B wins. It captures the "friendly" tone more effectively than the generic Output A.

Usa la evaluación por pares para seleccionar qué versión de tu modelo implementarás o para comparar dos instrucciones diferentes.

Comparación entre las pruebas web estándares y las evaluaciones de IA

Las pruebas web incluyen pruebas de regresión. Con la IA, debes agregar la optimización y la evaluación del modelo.

Suponemos que tú, lector de este curso, ya sabes cómo probar un sitio web y una aplicación web. Cuando agregas IA, debes cambiar tu modelo mental existente. Usa la evaluación de IA para realizar las siguientes acciones:

  • Realiza pruebas de regresión: Cuando cambias tu instrucción o modelo, ¿se interrumpió la aplicación? ¿Obtienes paletas de colores rotas o lemas tóxicos? A diferencia de una app web, en la que una pausa es una función de software, aquí verificas si el resultado del LLM es seguro y de alta calidad. Esto implica subjetividad.
  • Optimiza tu aplicación: ¿Tu aplicación está mejorando? ¿Estás mejorando las métricas que deseas? Por ejemplo, ¿obtienes más lemas alineados con la marca sin aumentar la toxicidad?
  • Elige el modelo adecuado: ¿Existe un modelo mejor para tu caso de uso? Antes de la IA, elegías tu pila web una sola vez. Con la IA, debes comparar los modelos de forma periódica para identificar oportunidades de cambiar a un modelo mejor (y potencialmente más económico).

Crea capas en tus pruebas

Hay cuatro capas de pruebas: pruebas de unidades, pruebas de unidades extendidas, pruebas de regresión y de integración, y pruebas humanas.

Una base de código en buen estado debe tener varias capas de pruebas: pruebas de unidades, pruebas de regresión y de integración, y pruebas de extremo a extremo. Tus evaluaciones también deben ser estratificadas.

  • Usa evaluaciones basadas en reglas combinadas con evaluaciones de LLM como juez para automatizar por completo las pruebas de tu aplicación de IA. De esta manera, puedes detectar problemas en el desarrollo diario y en la CI/CD, y probar que las versiones candidatas cumplan con tus estándares de calidad.
  • Ejecuta pruebas de integración y regresión para verificar la calidad a gran escala.
  • Ejecuta evaluaciones humanas manuales como prueba de aceptación.

Además de estas evaluaciones que ejecutas en el tiempo de compilación, supervisa el tráfico de producción con evaluaciones en el tiempo de ejecución. Estos pueden ayudarte a detectar problemas de calidad o seguridad en las entradas del mundo real.

Sigue desarrollando tus evaluaciones

Las evaluaciones deben crecer junto con tu aplicación. A medida que tus modelos se vuelven más inteligentes, actualiza tus evaluaciones anteriores.

Agrega ejemplos complejos a tus conjuntos de datos de prueba con regularidad, como casos extremos nuevos o entradas de usuarios sorprendentes que encuentres en producción.

¿Qué miden tus evaluaciones?

Antes de diseñar evaluaciones, debes comprender cómo evaluar un resultado. Hay algunos términos que debes conocer.

Los criterios son las reglas, las dimensiones que se deben probar. Por ejemplo, la alineación con la marca, la toxicidad y la accesibilidad.

Cada criterio de evaluación se mide con una métrica. Una métrica es una puntuación única y concreta que mide el resultado del modelo en función del criterio. Esta puntuación puede ser binaria o un valor dentro de un rango que mide qué tan lejos o cerca está el resultado de la expectativa del evaluador.

Es posible medir el mismo criterio con diferentes tipos de métricas. Por ejemplo, para la alineación de la marca:

  • "¿Este lema se ajusta a la marca?" La métrica es PASS o FAIL.
  • "En una escala del 1 al 5, ¿qué tan bien se alinea el lema con la marca?" La métrica es un número entero entre uno y cinco.

Un evaluador es el código o el modelo que califica el criterio. Los evaluadores determinan las métricas.