Skip to content

Empezar

Escribir una suite

Una suite son dos archivos y un conjunto de datos. oloproof init genera ambos, y lo generado viene comentado porque en el primer recorrido de incorporación se perdieron cuatro intentos por una cadena ausente, no por una funcionalidad ausente.

El archivo del proyecto

oloproof.yaml declara qué se mide y qué realiza la medición.

version: 1
project: example
dataset: data/example.jsonl
system:
  name: example-support-bot
  version: "1"
  callable: app:answer
  config: {}
evaluators:
  - type: exact_match
    criterion: exact_label
    field: label

system.callable es una ruta de importación a lo que se está probando. criterion es el nombre que una métrica, un umbral y un informe usarán para el resultado de este evaluador, así que vale la pena elegir una palabra que se reconozca en un gate.

Los tipos de evaluador

Cada type: que acepta el archivo, por familia. Un campo rechazado responde con los que ese evaluador admite, así que una suposición equivocada queda a una ejecución de la correcta.

FamiliaTipos
Deterministasexact_match, contains, regex, json_schema
Juez LLMrubric_judge, groundedness_judge, citation_support_judge, probability_judge, cascade
modelomodel_classifier
Recuperaciónhit_rate, recall, mrr, ndcg, citation_validity
Agenteagent_max_steps, agent_tool_called, agent_no_tool_loop, agent_tool_sequence, agent_no_undeclared_tool, agent_constraints_satisfied
Multiagenteagent_route, agent_tool_permissions, agent_max_handoffs
Predictivospredictive_correct, predictive_precision, predictive_recall, predictive_ranking, predictive_brier, predictive_log_loss, predictive_absolute_error

Un juez LLM en un endpoint que no es el de OpenAI necesita dos campos más: base_url: y api_key_env:. La clave se lee del entorno en el momento de la llamada y nunca se almacena.

Ejecutarla

oloproof run

Una ejecución ejecuta cada caso, lo juzga con cada evaluador y almacena los resultados como registros direccionados por contenido. Volver a ejecutarla contra un sistema sin cambios y un conjunto de datos sin cambios reutiliza lo que ya tiene, y por eso una ejecución repetida no cuesta casi nada y no se mide.

oloproof plan RUN_ID --run indica lo que haría falta para resolver una regla sin decidir, con el costo calculado a partir de lo que esa ejecución gastó realmente. Si se le da un id de comparación en su lugar, no necesita ningún flag.

Réplicas

Un caso medido una vez dice lo que ocurrió una vez. replicates: mide cada caso más de una vez e informa cuántos cambiaron de veredicto entre mediciones idénticas.

Vale la pena conocer ese número antes de confiar en cualquier comparación: frente a un asistente en vivo, aproximadamente uno de cada nueve casos observados cambió de veredicto entre ejecuciones idénticas.

Siguientes pasos

de latencia.

Clasificadores y regresores cubren los tipos de recuperación, agentes y predictivos.

  • Gates en CI convierte una decisión en un código de salida.
  • Jueces cubre lo que un juez LLM debe superar antes de poder actuar como gate de

una publicación.

denominadores.