Anleitungen
Vergleichsregeln
Einen Kandidaten mit einer Baseline vergleichen zeigt den Workflow. Diese Seite ist die Referenz für die Regeln, nach denen ein Vergleich entschieden wird: welche Arten es gibt, was jede fragt, in welcher Einheit eine Marge gemessen wird und was das Intervall verschiebt, aus dem sie gelesen werden.
Drei Arten
Eine Vergleichsregel benennt eine Art (kind) und eine Metrik. Sie nimmt niemals min oder max: Ein Unterschied wird nicht aus einem Schwellenwert gefolgert.
| Art | Fragt | Nimmt |
|---|---|---|
| superiority | Ist der Kandidat besser als die Baseline? | keine Marge |
| non_inferiority | Ist der Kandidat um nicht mehr als die Marge schlechter als die Baseline? | margin und optional direction |
| equivalence | Liegt der Kandidat in beide Richtungen innerhalb der Marge um die Baseline? | margin |
Eine Marge wird in den eigenen Einheiten der Metrik angegeben. Für eine Rate sind 0.05 fünf Prozentpunkte; für ein Latenz-Quantil sind 5 fünf Millisekunden.
version: 1
rules:
- id: not-worse
kind: non_inferiority
metric: exact_label
margin: 0.05
- id: same-quality
kind: equivalence
metric: exact_label
margin: 0.05
- id: better
kind: superiority
metric: exact_label
- id: not-slower
kind: non_inferiority
metric: latency_p50
direction: max
margin: 5Die Vergleichsregeln stehen in einer eigenen Datei, die mit --policy übergeben wird, denn release.yaml entscheidet einen einzelnen Lauf, und eine Schwellenwertregel und eine Vergleichsregel lesen unterschiedliche Evidenz.
oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yamlDieselben Regeln gegen zwei Kandidaten
Zweihundert gelabelte Fragen. Die Baseline labelt zwanzig davon falsch. Jeder der folgenden Kandidaten wurde über dieselbe Suite ausgeführt und mit der obigen Datei gegen diese Baseline verglichen.
Ein Kandidat, der sich genau wie die Baseline verhält:
Comparison sha256:7d2396c475b94028925930d4e52ae070d9a216a4558e22646169db492757c4de of run_01M3C44TVGT0X067W2H0BZ6GC9 against run_01M3C44SWMXMSQJE17SYHV87PW · 200 paired cases
exact_label: +0.0 points [-2.7, +2.7] · 200 paired · 0 missing · 0 excluded
latency_p50: -0.067 ms [-0.113, -0.001] ms · p50 of per-case differences · 200 paired · 0 missing
Decisions
not-worse exact_label non-inferiority, margin 5.0 points PASS lower_bound_above_margin
same-quality exact_label equivalence, margin ±5.0 points PASS interval_within_margins
better exact_label superiority INSUFFICIENT_EVIDENCE interval_overlaps_zero
not-slower latency_p50 maximum increase 5 ms PASS lower_bound_above_margin
Gate: BLOCK (exit 3)Ein Kandidat, der die zwanzig korrigiert:
Comparison sha256:1e36f48662cbbc0af20217a2c69248f90b473bbf0873dc6dd222ccb1895bb33a of run_01M3C44VQ0TFFNW4FRM5Z2D12R against run_01M3C44SWMXMSQJE17SYHV87PW · 200 paired cases
exact_label: +10.0 points [+4.6, +17.9] · 200 paired · 0 missing · 0 excluded
latency_p50: -0.038 ms [-0.089, +0.009] ms · p50 of per-case differences · 200 paired · 0 missing
Decisions
not-worse exact_label non-inferiority, margin 5.0 points PASS lower_bound_above_margin
same-quality exact_label equivalence, margin ±5.0 points INSUFFICIENT_EVIDENCE interval_overlaps_margins
better exact_label superiority PASS difference_above_zero
not-slower latency_p50 maximum increase 5 ms PASS lower_bound_above_margin
Gate: BLOCK (exit 3)Lesen Sie die beiden Gates zusammen. Beide blockieren, aus entgegengesetzten Gründen. Der erste Kandidat ist als äquivalent belegt und nicht als besser belegt; der zweite ist als besser belegt und daher nicht als äquivalent belegt. Eine Policy, die alle drei Arten für eine Metrik enthält, stellt zwei unvereinbare Fragen, und eine davon bleibt immer unbeantwortet. Wählen Sie die Regel, die die Behauptung ausdrückt, die Sie aufstellen.
Richtung
non_inferiority verwendet standardmäßig direction: min: Höher ist besser, und die Regel verlangt, dass der Kandidat nicht um mehr als die Marge unter die Baseline fällt. direction: max ist für Metriken, bei denen niedriger besser ist, etwa Latenz, Tokens oder Kosten. Die Regel liest sich dann als Obergrenze für einen Anstieg, und so gibt das Terminal sie aus: maximum increase 5 ms.
superiority und equivalence nehmen keine Richtung. Äquivalenz begrenzt ohnehin beide Seiten, und Überlegenheit fragt, ob der Unterschied im eigenen Sinn der Metrik über null liegt.
Was das Intervall verschiebt
Ein Vergleich ist gepaart: Das Ergebnis des Kandidaten für jeden Fall wird seinem eigenen Baseline-Ergebnis gegenübergestellt. Zwei Dinge verbreitern das resultierende Intervall, und keines davon ist die Änderung, die Sie vorgenommen haben.
Fälle, die auf einer der Seiten fehlen
Ein Fall, der in einem der beiden Läufe einen Fehler hatte, fehlt im Paar, und er wird begrenzt statt verworfen: Das Intervall lässt zu, dass jeder fehlende Fall in beide Richtungen ausgegangen sein könnte. Eine kleinere Suite mit einem Kriterium namens ok: dieselben vier Abweichungen über vierunddreißig gepaarte Fälle, zuerst ohne fehlende Fälle und dann mit vier weiteren, die in beiden Läufen fehlschlugen:
ok: +11.8 points [-7.2, +34.3] · 34 paired · 0 missing · 0 excludedok: +11.8 points [-24.8, +44.7] · 34 paired · 4 missing · 0 excludedDie Schätzung ist dieselbe, weil sie aus den Fällen berechnet wird, die auf beiden Seiten beobachtet wurden. Das Intervall ist es nicht, denn vier Fälle, die niemand gesehen hat, hätten den Unterschied jeweils um einen ganzen Fall verschieben können. Beheben Sie die Fehler, bevor Sie Fälle hinzufügen: Mehr Fälle bei derselben Fehlerrate schließen die Lücke nicht.
Ein gepaarter Ranking-Unterschied, etwa ROC-AUC zwischen zwei Modellversionen, kann fehlende Zeilen nicht auf diese Weise begrenzen: Er vergleicht die Zeilen, die beide Seiten bewertet haben. Eine Regel darauf lautet missingness_unbounded, bis sie max_missing_fraction deklariert, den Anteil fehlender Zeilen, den sie als zufällig fehlend akzeptiert.
Die Methode
Das Standardintervall für einen Ratenunterschied ist ein Intervall für beschränkte Mittelwerte über die Unterschiede pro Fall. Eine Policy kann stattdessen die bedingte exakte Methode benennen:
version: 1
difference_method: conditional_exact_paired_difference@1
rules:
- {id: not-worse, metric: exact_label, kind: non_inferiority, margin: 0.05}Der obige Kandidat, der zehn Punkte besser ist, lautet unter dem Standard [+4.6, +17.9] und unter der exakten Methode so:
exact_label: +10.0 points [+3.5, +15.8] · 200 paired · 0 missing · 0 excludedKeines ist durchweg schmaler, weshalb die Methode in der Policy gewählt wird, bevor irgendeine Evidenz gelesen wird, und niemals von der Engine anhand der Daten. Sie gilt nur für Ratenunterschiede.
Wenn eine Regel nicht entscheiden kann
Eine Vergleichsregel mit INSUFFICIENT_EVIDENCE kann darunter eine Zeile tragen, die angibt, was sie entscheiden würde. Der Vergleich mit vierunddreißig Fällen, bei dem nichts fehlt:
Decisions
not-worse ok non-inferiority, margin 5.0 points INSUFFICIENT_EVIDENCE interval_overlaps_margin
about 5 more paired cases would decide it, if the difference holds (39 in total at 12% discordance)
Gate: BLOCK (exit 3)Diese Schätzung setzt voraus, dass der Unterschied und der Anteil der abweichenden Fälle beide bestehen bleiben, während weitere Fälle hinzukommen. oloproof plan COMPARISON_ID gibt dieselbe Zeile zusammen mit der Zeit aus, die die zusätzlichen Fälle benötigen würden.
Wenn Paare fehlen, wird keine Größe angeboten, denn die fehlenden Paare werden im ungünstigsten Fall begrenzt, und mehr Fälle würden sie nicht auflösen. Derselbe Vergleich mit vier fehlenden Paaren gibt keine Hinweiszeile aus, und der Plan sagt, warum:
oloproof plan COMPARISON_IDComparison sha256:22c1aa4fddc4e96ca77e0509ac9835c2a377ed237ca80556bbf1a54a172239bd: no sample size can be computed for a rule that did not decide.
not-worse: 4 missing pairs are bounded at their worst, and the advice does not size under missingness; resolve them and compare againUnd wenn der Unterschied selbst auf der falschen Seite der Marge liegt, würden mehr Fälle ihn nur bestätigen, daher sagt der Hinweis stattdessen das:
overall ok non-inferiority, margin 5.0 points INSUFFICIENT_EVIDENCE interval_overlaps_margin
no sample size would make this PASS: the difference itself (-5.0 points) is outside the margin, so more cases would move it toward FAILWie es weitergeht
- Einen Kandidaten mit einer Baseline vergleichen behandelt den Workflow und das erste Lesen
eines Intervalls.
- Geclusterte Fälle behandelt Suites, deren Fälle nicht unabhängig sind, was ein
Vergleich noch nicht entscheidet.
- Slices behandelt Regeln, die auf einen Teil der Suite beschränkt sind.