Inizia
Scrivere una suite
Una suite è composta da due file e un dataset. oloproof init genera entrambi i file, e lo scaffold è commentato perché il primo percorso di onboarding ha perso quattro tentativi per una stringa mancante anziché per una funzionalità mancante.
Il file di progetto
oloproof.yaml dichiara che cosa viene misurato e che cosa effettua la misura.
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: labelsystem.callable è un percorso di import verso ciò che è sotto test. criterion è il nome che una metrica, una soglia e un report useranno tutti per il risultato di questo valutatore, quindi conviene scegliere una parola che riconoscerai in un gate.
I tipi di valutatore
Ogni type: accettato dal file, per famiglia. Un campo rifiutato risponde con quelli che il valutatore accetta, quindi un tentativo sbagliato è a un'esecuzione di distanza da quello giusto.
| Famiglia | Tipi |
|---|---|
| Deterministici | exact_match, contains, regex, json_schema |
| Giudice LLM | rubric_judge, groundedness_judge, citation_support_judge, probability_judge, cascade |
| modello | model_classifier |
| Recupero | hit_rate, recall, mrr, ndcg, citation_validity |
| Agente | agent_max_steps, agent_tool_called, agent_no_tool_loop, agent_tool_sequence, agent_no_undeclared_tool, agent_constraints_satisfied |
| Multi-agente | agent_route, agent_tool_permissions, agent_max_handoffs |
| Predittivi | predictive_correct, predictive_precision, predictive_recall, predictive_ranking, predictive_brier, predictive_log_loss, predictive_absolute_error |
Un giudice LLM su un endpoint che non è quello di OpenAI richiede due campi in più: base_url: e api_key_env:. La chiave viene letta dall'ambiente al momento della chiamata e non viene mai memorizzata.
Eseguirla
oloproof runUn'esecuzione esegue ogni caso, giudica ciascuno con ogni valutatore e memorizza i risultati come record indirizzati per contenuto. Eseguirla di nuovo su un sistema invariato e un dataset invariato riutilizza ciò che già possiede, ed è per questo che un'esecuzione ripetuta non costa quasi nulla e non viene conteggiata.
oloproof plan RUN_ID --run riporta ciò che servirebbe per risolvere una regola non decisa, stimato in base a ciò che quell'esecuzione ha effettivamente speso. Se riceve invece l'id di un confronto, non richiede alcun flag.
Repliche
Un caso misurato una volta ti dice che cosa è successo una volta. replicates: misura ogni caso più di una volta e riporta quanti casi hanno cambiato verdetto tra misure identiche.
Conviene conoscere quel numero prima di fidarti di qualsiasi confronto: su un assistente in produzione, circa un caso osservato su nove ha cambiato verdetto tra esecuzioni identiche.
Dove andare dopo
- Registrare ciò che un sistema ha fatto tratta gli artefatti, l'utilizzo e le
metriche di latenza.
Classificatori e regressori trattano i tipi di recupero, agente e predittivi.
- Gating in CI trasforma una decisione in un codice di uscita.
- Giudici tratta ciò che un giudice LLM deve superare prima di poter fare da gate
a un rilascio.
- Concetti fondamentali spiega i quattro stati di decisione e perché i
denominatori contano.