Skip to content

Przewodniki

Reguły porównań

Porównywanie kandydata z punktem odniesienia pokazuje przebieg pracy. Ta strona jest dokumentacją referencyjną reguł, według których rozstrzygane jest porównanie: jakie rodzaje istnieją, o co pyta każdy z nich, w jakich jednostkach mierzony jest margines i co przesuwa przedział, z którego są odczytywane.

Trzy rodzaje

Reguła porównania określa kind i metrykę. Nigdy nie przyjmuje min ani max: różnicy nie wnioskuje się z progu.

RodzajPytaniePrzyjmuje
superiorityCzy kandydat jest lepszy od punktu odniesienia?bez marginesu
non_inferiorityCzy kandydat nie jest gorszy od punktu odniesienia o więcej niż margines?margin i opcjonalnie direction
equivalenceCzy kandydat mieści się w marginesie wokół punktu odniesienia, w obu kierunkach?margin

Margines wyraża się w jednostkach samej metryki. Dla odsetka 0.05 oznacza pięć punktów procentowych; dla kwantyla opóźnienia 5 oznacza pięć milisekund.

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: 5

Reguły porównań znajdują się we własnym pliku, przekazywanym przez --policy, ponieważ release.yaml rozstrzyga pojedyncze uruchomienie, a reguła progowa i reguła porównania odczytują różne dowody.

oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yaml

Te same reguły wobec dwóch kandydatów

Dwieście oznaczonych pytań. Punkt odniesienia błędnie oznacza dwadzieścia z nich. Każdy z poniższych kandydatów został uruchomiony na tym samym zestawie i porównany z tym punktem odniesienia przy użyciu powyższego pliku.

Kandydat, który zachowuje się dokładnie tak jak punkt odniesienia:

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)

Kandydat, który naprawia te dwadzieścia:

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)

Należy odczytywać obie bramki razem. Obie blokują, z przeciwnych powodów. Pierwszy kandydat ma ustaloną równoważność i nieustaloną przewagę; drugi ma ustaloną przewagę, a zatem nieustaloną równoważność. Polityka, która dla jednej metryki zawiera wszystkie trzy rodzaje, zadaje dwa niezgodne pytania i jedno z nich zawsze pozostanie bez odpowiedzi. Należy wybrać regułę, która wyraża stawiane twierdzenie.

Kierunek

non_inferiority domyślnie przyjmuje direction: min: wyższa wartość jest lepsza, a reguła wymaga, by kandydat nie spadł poniżej punktu odniesienia o więcej niż margines. direction: max służy metrykom, dla których niższa wartość jest lepsza, takim jak opóźnienie, tokeny lub koszt. Reguła jest wtedy odczytywana jako górny limit wzrostu i tak wypisuje ją terminal: maximum increase 5 ms.

superiority i equivalence nie przyjmują kierunku. Równoważność już ogranicza obie strony, a przewaga pyta, czy różnica jest powyżej zera w sensie właściwym dla metryki.

Co przesuwa przedział

Porównanie jest sparowane: wynik kandydata dla każdego przypadku zestawia się z wynikiem punktu odniesienia dla tego samego przypadku. Dwie rzeczy poszerzają wynikowy przedział i żadna z nich nie jest wprowadzoną zmianą.

Przypadki brakujące po którejkolwiek stronie

Przypadek, który zakończył się błędem w którymkolwiek uruchomieniu, brakuje w parze i jest ograniczany, a nie pomijany: przedział dopuszcza, że każdy brakujący przypadek mógł wypaść w dowolną stronę. Mniejszy zestaw z kryterium o nazwie ok: te same cztery rozbieżności w trzydziestu czterech sparowanych przypadkach, najpierw bez brakujących przypadków, a potem z czterema kolejnymi, które zakończyły się błędem w obu uruchomieniach:

ok: +11.8 points [-7.2, +34.3] · 34 paired · 0 missing · 0 excluded
ok: +11.8 points [-24.8, +44.7] · 34 paired · 4 missing · 0 excluded

Oszacowanie jest takie samo, ponieważ oblicza się je z przypadków zaobserwowanych po obu stronach. Przedział nie jest, ponieważ cztery przypadki, których nikt nie widział, mogły każdy przesunąć różnicę o cały przypadek. Należy naprawić błędy, zanim doda się przypadki: więcej przypadków przy tym samym odsetku błędów nie zamyka tej luki.

Sparowana różnica rankingowa, taka jak ROC-AUC między dwiema wersjami modelu, nie może w ten sposób ograniczać brakujących wierszy: porównuje wiersze ocenione przez obie strony. Reguła na takiej różnicy zwraca missingness_unbounded, dopóki nie zadeklaruje max_missing_fraction, czyli udziału brakujących wierszy, który akceptuje jako brakujące losowo.

Metoda

Domyślny przedział dla różnicy odsetków to przedział ograniczonej średniej dla różnic w poszczególnych przypadkach. Polityka może zamiast tego wskazać warunkową metodę dokładną:

version: 1
difference_method: conditional_exact_paired_difference@1
rules:
  - {id: not-worse, metric: exact_label, kind: non_inferiority, margin: 0.05}

Powyższy kandydat, lepszy o dziesięć punktów, ma przy metodzie domyślnej [+4.6, +17.9], a przy metodzie dokładnej:

exact_label: +10.0 points [+3.5, +15.8] · 200 paired · 0 missing · 0 excluded

Żadna z nich nie jest jednolicie węższa, dlatego metodę wybiera się w polityce, zanim odczyta się jakiekolwiek dowody, a nigdy nie wybiera jej silnik na podstawie danych. Dotyczy ona wyłącznie różnic odsetków.

Gdy reguła nie może rozstrzygnąć

Reguła porównania z wynikiem INSUFFICIENT_EVIDENCE może mieć pod spodem wiersz mówiący, co by ją rozstrzygnęło. Porównanie trzydziestu czterech przypadków bez braków:

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)

To oszacowanie zakłada, że różnica i udział rozbieżnych przypadków utrzymają się w miarę napływania kolejnych przypadków. oloproof plan COMPARISON_ID wypisuje ten sam wiersz wraz z czasem, jaki zajęłyby dodatkowe przypadki.

Gdy brakuje par, nie podaje się żadnej liczebności, ponieważ brakujące pary są ograniczane w najgorszym wariancie, a więcej przypadków by ich nie rozstrzygnęło. To samo porównanie z czterema brakującymi parami nie wypisuje wiersza porady, a plan wyjaśnia dlaczego:

oloproof plan COMPARISON_ID
Comparison 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 again

A gdy sama różnica leży po złej stronie marginesu, więcej przypadków jedynie by to potwierdziło, więc porada mówi właśnie to:

  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 FAIL

Co dalej

odczytanie przedziału.

czego porównanie jeszcze nie rozstrzyga.

  • Wycinki opisuje reguły ograniczone do jednej części zestawu.