Skip to content

Aan de slag

Een suite schrijven

Een suite bestaat uit twee bestanden en een dataset. oloproof init zet beide op, en de opzet is van commentaar voorzien omdat de eerste onboardingronde vier pogingen verloor aan een ontbrekende string in plaats van aan een ontbrekende functie.

Het projectbestand

oloproof.yaml declareert wat er gemeten wordt en wat het meten doet.

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 is een importpad naar wat er getest wordt. criterion is de naam die een metriek, een drempel en een rapport allemaal zullen gebruiken voor het resultaat van deze evaluator, dus het loont om een woord te kiezen dat je in een gate herkent.

De evaluatortypen

Elk type: dat het bestand accepteert, per familie. Een geweigerd veld antwoordt met de velden die die evaluator wel accepteert, zodat een verkeerde gok één run van de juiste af zit.

FamilieTypen
Deterministischexact_match, contains, regex, json_schema
LLM-judgerubric_judge, groundedness_judge, citation_support_judge, probability_judge, cascade
modelmodel_classifier
Retrievalhit_rate, recall, mrr, ndcg, citation_validity
Agentagent_max_steps, agent_tool_called, agent_no_tool_loop, agent_tool_sequence, agent_no_undeclared_tool, agent_constraints_satisfied
Multi-agentagent_route, agent_tool_permissions, agent_max_handoffs
Predictiefpredictive_correct, predictive_precision, predictive_recall, predictive_ranking, predictive_brier, predictive_log_loss, predictive_absolute_error

Een LLM-judge op een endpoint dat niet van OpenAI is, heeft twee extra velden nodig: base_url: en api_key_env:. De sleutel wordt op het moment van aanroepen uit de omgeving gelezen en nooit opgeslagen.

Draaien

oloproof run

Een run voert elke case uit, beoordeelt elke case met elke evaluator en slaat de resultaten op als content-geadresseerde records. Opnieuw draaien tegen een ongewijzigd systeem en een ongewijzigde dataset hergebruikt wat er al is, en daarom kost een herhaalde run bijna niets en wordt die niet gemeten voor verbruik.

oloproof plan RUN_ID --run rapporteert wat er nodig zou zijn om een onbesliste regel te beslechten, geprijsd op basis van wat die run werkelijk uitgaf. Met een vergelijkings-id in plaats daarvan is er geen vlag nodig.

Replicaten

Een case die één keer gemeten is, vertelt je wat er één keer gebeurde. replicates: meet elke case meer dan eens en rapporteert hoeveel cases hun oordeel veranderden tussen identieke metingen.

Dat getal is het waard om te kennen voordat je een vergelijking vertrouwt: tegen een live assistent veranderde ongeveer één op de negen geobserveerde cases van oordeel tussen identieke runs.

Verder lezen

Classifiers en regressors behandelen de retrieval-, agent- en predictieve typen.

  • CI gaten zet een beslissing om in een exitcode.
  • Judges behandelt waaraan een LLM-judge moet voldoen voordat die een release mag gaten.
  • Kernbegrippen legt de vier beslissingstoestanden uit en waarom noemers ertoe doen.