Desarrollo de páginas web y software a medida en Ecuador

[email protected] +593 97 876 6762
Publicado: /

Evaluación continua: asegurando que tu modelo no empeore con el tiempo

Configura un ciclo de evaluación continua: datasets versionados, pruebas offline/online, métricas de calidad, costo y seguridad, más “eval gates” en CI/CD. Incluye micro-workflow en n8n y tips para Laravel.

Evaluación continua: asegurando que tu modelo no empeore con el tiempo

Evaluación continua: asegurando que tu modelo no empeore con el tiempo

La calidad de un sistema con IA no es un logro único: es una disciplina. Con evaluación continua detectas regresiones, controlas costos y promueves solo mejoras reales.

En el post anterior vimos cómo observar tu sistema en producción. Ahora daremos el paso que evita “mejoras” que empeoran las cosas: evaluación continua (offline y online), versionada y automatizada.

¿Qué es la evaluación continua?

Es un ciclo repetible que compara tu pipeline actual contra un baseline usando datasets representativos y métricas acordadas. Si la variante nueva no gana en calidad sin romper seguridad ni costos, no se promociona.

Datasets que sí sirven (y cómo versionarlos)

  • Golden set (post #11): preguntas/entradas con criterio de evaluación claro.
  • Shadow data: muestras reales anonimizadas de producción.
  • Casos borde: longitudes extremas, formatos raros, idiomas, fechas y números críticos.
  • Anti-regresión: colecciona fallos históricos y conviértelos en pruebas permanentes.
// Esquema mínimo (JSONL)
{"id":"q-0001","input":"...","expected":{"type":"facts","rules":["citar","json_valido"]},"weight":1.0}
{"id":"q-0002","input":"...","expected":{"type":"gen","rubric":{"claridad":5,"formato":5}},"weight":0.8}

Métricas: calidad, seguridad y costo (las tres a la vez)

  • Calidad: win-rate A/B, exact match/F1 por campo, groundedness (% con cita válida), % JSON válido, tasa de abstención sana.
  • Seguridad: violaciones de política (0 es el objetivo), fuga de PII/secretos, ejecuciones de herramientas fuera de whitelist.
  • Operación: costo por request, latencia p95, tokens in/out, tamaño de contexto.

Decisión: “Promover solo si win-rate ≥ +3pts, costo ≤ baseline y 0 regresiones de seguridad”.

Offline vs. Online

  • Offline: rápido, barato, determinista; compara variantes contra tu golden/shadow set.
  • Online: canary A/B en producción; mide impacto real (CSAT, resolución, conversión).
// Veredicto de corrida offline
{
  "variant": "pipeline.v7",
  "baseline": "pipeline.v6",
  "win_rate": 0.58,
  "json_valid": 0.97,
  "groundedness": 0.81,
  "cost_delta": -0.06,
  "policy_violations": 0
}

Detectar “drift” (cuando todo cambia por debajo)

  • Entrada: distribución de longitudes/idiomas cambia.
  • Recuperación: baja el recall@K por corpus/ingesta/permiso.
  • Modelo: proveedor actualiza sin avisar → variaciones de calidad/costo.

Mitiga con checks diarios y alertas si groundedness o % JSON válido caen bajo umbral.

Eval gates en CI/CD (no pasa quien no gana)

  1. Pre-merge: corre batería offline sobre golden set.
  2. Gate: bloquea si no mejora calidad o rompe seguridad/costos.
  3. Canary: 5–10% del tráfico con monitoreo reforzado (post #19).
  4. Promoción: etiqueta pipeline.vN.prod si supera umbrales online.

Micro-workflow en n8n: “Evaluación continua nocturna”

  1. Cron (diario) → dispara el flujo.
  2. HTTP → descarga datasets (golden + shadow) versión actual.
  3. Split In Batches → ejecuta pipeline.candidate y pipeline.baseline.
  4. Function (judge) → evalúa con rúbrica y calcula métricas (win-rate, groundedness, json válido, costo).
  5. IF → si candidate ≥ umbral y sin violaciones → marca “ready for canary”.
  6. Database → persiste resultados por pipeline_version.
  7. Notifier → envía reporte y diff de calidad/costo.

Tips para Laravel/PHP

  • Esquema:
    eval_runs(id, pipeline, baseline, win_rate, groundedness, json_valid, cost_delta, policy_viol, created_at)
    eval_cases(run_id, case_id, verdict, cost_usd, lat_ms, tokens_in, tokens_out)
  • Jobs: EvalRunJob (columna eval), EvalCaseJob (por caso, paralelizable).
  • Endpoint CI: POST /eval/runs que acepte {pipeline, baseline, dataset_id} y devuelva veredicto.
  • Rutas seguras: rate limit + tokens; nunca expongas prompts/datasets sin auth.
  • Reportes: genera Markdown/HTML con tablas y anexos de fallos (top-10 casos con mayor impacto).

Anti-patrones frecuentes

  • “Funciona en mi demo” → sin golden set ni gate, se cuela a producción y regresa el lunes.
  • Medir solo gusto humano → necesitas métricas objetivas y rúbricas.
  • Ignorar costo/latencia → “mejor calidad” que duplica gastos.
  • Datasets estáticos por meses → envejecen; rota y añade fallos reales.

Conclusión

La evaluación continua convierte cambios arriesgados en mejoras controladas. Con datasets versionados, gates en CI/CD y canaries vigilados, tu asistente evoluciona sin sorpresas.

  • Evaluación
  • A/B
  • Golden set
  • Costos
  • n8n
  • Laravel