Skip to content

Loslegen

Eine Suite schreiben

Eine Suite besteht aus zwei Dateien und einem Datensatz. oloproof init legt beide an, und das Gerüst ist kommentiert, weil beim ersten Onboarding-Durchgang vier Versuche an einem fehlenden String scheiterten und nicht an einer fehlenden Funktion.

Die Projektdatei

oloproof.yaml deklariert, was gemessen wird und was die Messung vornimmt.

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 ist ein Importpfad zu dem, was getestet wird. criterion ist der Name, den eine Metrik, ein Schwellenwert und ein Bericht für das Ergebnis dieses Evaluators verwenden, daher lohnt es sich, ein Wort zu wählen, das Sie in einem Gate wiedererkennen.

Die Evaluator-Typen

Jeder type:, den die Datei akzeptiert, nach Familie. Ein abgelehntes Feld wird mit den Feldern beantwortet, die dieser Evaluator akzeptiert, sodass ein falscher Versuch nur einen Lauf vom richtigen entfernt ist.

FamilieTypen
Deterministischexact_match, contains, regex, json_schema
LLM-Judgerubric_judge, groundedness_judge, citation_support_judge, probability_judge, cascade
Modellmodel_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
Prädiktivpredictive_correct, predictive_precision, predictive_recall, predictive_ranking, predictive_brier, predictive_log_loss, predictive_absolute_error

Ein LLM-Judge an einem Endpunkt, der nicht der von OpenAI ist, braucht zwei weitere Felder: base_url: und api_key_env:. Der Schlüssel wird zum Zeitpunkt des Aufrufs aus der Umgebung gelesen und nie gespeichert.

Ausführen

oloproof run

Ein Lauf führt jeden Fall aus, beurteilt jeden mit jedem Evaluator und speichert die Ergebnisse als inhaltsadressierte Datensätze. Ein erneuter Lauf gegen ein unverändertes System und einen unveränderten Datensatz verwendet wieder, was bereits vorliegt. Deshalb kostet ein wiederholter Lauf fast nichts und wird nicht gezählt.

oloproof plan RUN_ID --run meldet, was es bräuchte, um eine unentschiedene Regel zu entscheiden, beziffert anhand dessen, was dieser Lauf tatsächlich verbraucht hat. Mit einer Vergleichs-ID statt einer Lauf-ID braucht es kein Flag.

Replikate

Ein einmal gemessener Fall sagt Ihnen, was einmal passiert ist. replicates: misst jeden Fall mehr als einmal und meldet, wie viele Fälle ihr Urteil zwischen identischen Messungen geändert haben.

Diese Zahl sollten Sie kennen, bevor Sie irgendeinem Vergleich vertrauen: Bei einem produktiven Assistenten änderte etwa jeder neunte beobachtete Fall sein Urteil zwischen identischen Läufen.

Wie es weitergeht

Latenzmetriken.

Klassifikatoren und Regressoren behandeln die Retrieval-, Agenten- und prädiktiven Typen.

  • Gating in der CI macht aus einer Entscheidung einen Exit-Code.
  • Judges behandelt, was ein LLM-Judge erfüllen muss, bevor er als Gate für ein

Release dienen darf.

  • Kernkonzepte erklärt die vier Entscheidungszustände und warum Nenner wichtig

sind.