Przewodniki
Przypadki klastrowane
Większość obliczeń przedziałów zakłada, że każdy przypadek jest niezależny od wszystkich pozostałych. Trzy tury jednej rozmowy takie nie są: gdy rozmowa idzie źle, zwykle idą źle wszystkie trzy. Zestaw, który traktuje je jako niezależne, raportuje przedział węższy, niż uzasadniają to dowody, a bramka może na jego podstawie przepuścić zmianę.
Deklarowanie klastra
Przypadek wskazuje swój klaster przez group_id, na najwyższym poziomie wiersza obok id:
{"id": "conv00_t0", "group_id": "conv00", "input": {"question": "Conversation 0 turn 0: refund please (garbled)"}, "expected": {"label": "refund"}}
{"id": "conv00_t1", "group_id": "conv00", "input": {"question": "Conversation 0 turn 1: where is my order (garbled)"}, "expected": {"label": "other"}}
{"id": "conv00_t2", "group_id": "conv00", "input": {"question": "Conversation 0 turn 2: refund please (garbled)"}, "expected": {"label": "refund"}}Gdy którykolwiek przypadek go zadeklaruje, cały zestaw jest analizowany według klastrów. Nie ma przełącznika dla poszczególnych metryk, który by to cofał: traktowanie pogrupowanych przypadków jako niezależnych jest kierunkiem niebezpiecznym, więc nie jest oferowane.
Co się zmienia
Te same 108 tur z 36 rozmów, przy czym jedna rozmowa na sześć jest zniekształcona od pierwszej do ostatniej tury. Bez group_id:
│ exact_label │ 83.3% │ [74.9%, 89.9%] │ 90 / 108 observed · 0 missing · 0 excluded │Z nim:
│ exact_label │ 83.3% │ [65.2%, 94.6%] │ 90 / 108 observed · 0 missing · 0 excluded · 36 clusters · approximate │Oszacowanie jest identyczne. Przedział jest mniej więcej dwa razy szerszy, ponieważ zestaw zawiera 36 niezależnych obserwacji, a nie 108. Przy dolnym progu 0.70 i opisanej niżej zgodzie pierwsze uruchomienie przechodzi, a drugie nie:
label-floor: PASS (lower_bound_meets_minimum)label-floor: INSUFFICIENT_EVIDENCE (interval_overlaps_threshold)Druga odpowiedź jest właściwa dla tych danych.
Zgoda
Przedział klastrowy to studentyzowany bootstrap klastrowy. Jest to metoda przybliżona, a polityka musi zadeklarować, że ją akceptuje, zanim reguła będzie mogła na jej podstawie rozstrzygać. Bez tego to samo pogrupowane uruchomienie daje:
label-floor: MANUAL_REVIEW (approximate_method_not_permitted)i kończy się kodem 4. Aby pozwolić regule rozstrzygać, należy dodać to do release.yaml:
allow_approximate_methods: trueDwa kolejne ustawienia ograniczają zakres zaufania do tej metody.
| Ustawienie | Domyślnie | Działanie |
|---|---|---|
| min_clusters | 20 | Przy mniejszej liczbie klastrów reguła zwraca INSUFFICIENT_EVIDENCE z insufficient_clusters. Można je obniżyć do 10, ale nie niżej. |
| max_missing_fraction | brak | Ustawiane na regule. Przedział klastrowy nie może ograniczać brakujących przypadków tak jak przedział dla niezależnych przypadków, więc reguła klastrowa dla metryki z jakimkolwiek brakującym przypadkiem zwraca missingness_unbounded, dopóki reguła nie określi, jaki poziom braków akceptuje. |
Polityka, która ustawia min_clusters: 5, jest odrzucana, zanim cokolwiek zostanie rozstrzygnięte:
Configuration error: p5.yaml: min_clusters: Input should be greater than or equal to 10Te same rozmowy, gdy jedna z nich kończy się błędem w każdej turze:
│ exact_label │ 82.9% │ [64.3%, 94.5%] │ 87 / 105 observed · 3 missing · 0 excluded · 35 clusters · approximate │label-floor: INSUFFICIENT_EVIDENCE (missingness_unbounded)Reguła, która określa akceptowany poziom braków:
rules:
- id: label-floor
metric: exact_label
min: 0.60
max_missing_fraction: 0.15label-floor: PASS (lower_bound_meets_minimum)Podanie udziału zapisuje założenie: że brakujące przypadki brakują losowo. Decyzja jest tylko tak dobra jak to założenie, dlatego silnik nie przyjmie go za użytkownika.
Czego zestaw klastrowy jeszcze nie potrafi
Przedział klastrowy mają tylko odsetki zaliczeń. W zestawie, który deklaruje group_id:
- średnia, kwantyl lub metryka rankingowa nie mają przedziału, a reguła na takiej metryce zwraca
MANUAL_REVIEW z unsupported_dependence_structure;
- przy replicates: powyżej 1 żadna metryka nie ma przedziału, łącznie z odsetkami zaliczeń,
ponieważ obie struktury zależności się nakładają i nic nie modeluje ich obu;
- porównanie dwóch uruchomień nie ma przedziału dla żadnej metryki.
Kwantyl opóźnienia w pogrupowanym zestawie:
│ latency_p50 │ 1.365 ms │ no interval: unsupported_dependence_structure │ p50 of 108 observed · 0 missing · 0 excluded │Ostatnie ograniczenie ma największe znaczenie. Porównanie dwóch uruchomień zestawu rozmów, w którym kandydat naprawia każdą zniekształconą rozmowę:
oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yamlComparison sha256:ed7820e6471f70ce2b5e16ba618fdd48ea92a5ed39d23cce0b719ab31fcb16af of run_01M3C43MWTH8127R7S5M4N9DQ9 against run_01M3C43J2DVM93EWWWRBMRW22E · 108 paired cases
exact_label: +16.7 points · 108 paired · 0 missing · 0 excluded
no interval: unsupported_dependence_structure
Decisions
no-regression exact_label non-inferiority, margin 5.0 points MANUAL_REVIEW unsupported_dependence_structure
Gate: BLOCK (exit 4)Żadna procedura sparowana dla zestawów klastrowych nie przeszła swojej siatki walidacyjnej, więc porównanie raportuje różnicę i prosi o decyzję człowieka, zamiast rozstrzygać w przybliżeniu. MANUAL_REVIEW zamiast INSUFFICIENT_EVIDENCE, ponieważ więcej przypadków tego samego rodzaju by tego nie naprawiło.
Co dalej
- Reguły porównań opisuje reguły, według których rozstrzygane jest
porównanie.
- Podstawowe pojęcia opisuje cztery stany decyzji.