Skip to content

Kılavuzlar

Karşılaştırma kuralları

Bir adayı bir temelle karşılaştırmak iş akışını gösterir. Bu sayfa ise bir karşılaştırmanın hangi kurallarla karara bağlandığının başvuru kaynağıdır: hangi türlerin olduğu, her birinin ne sorduğu, bir marjın hangi birimle ölçüldüğü ve kuralların okunduğu güven aralığını neyin değiştirdiği.

Üç tür

Bir karşılaştırma kuralı bir kind ve bir metrik adlandırır. Asla min ya da max almaz: bir fark bir eşikten çıkarılmaz.

TürSorduğuAldığı
superiorityAday temelden daha mı iyi?marj yok
non_inferiorityAday temelden marjdan daha fazla kötü değil mi?margin ve isteğe bağlı olarak direction
equivalenceAday, her iki yönde de temelin marjı içinde mi?margin

Bir marj metriğin kendi birimindedir. Bir oran için 0.05 beş yüzde puanıdır; bir gecikme yüzdeliği için 5 beş milisaniyedir.

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

Karşılaştırma kuralları --policy ile verilen kendi dosyalarında durur, çünkü release.yaml tek bir çalıştırmaya karar verir ve bir eşik kuralı ile bir karşılaştırma kuralı farklı kanıtları okur.

oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yaml

Aynı kurallar, iki adaya karşı

İki yüz etiketli soru. Temel bunlardan yirmisini yanlış etiketliyor. Aşağıdaki her aday aynı paket üzerinde çalıştırıldı ve yukarıdaki dosyayla o temele karşı karşılaştırıldı.

Temelle tıpatıp aynı davranan bir aday:

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)

O yirmisini düzelten bir aday:

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)

İki kapıyı birlikte okuyun. İkisi de engelliyor, zıt nedenlerle. İlk adayın eşdeğer olduğu kanıtlanmıştır ama daha iyi olduğu kanıtlanmamıştır; ikincisinin daha iyi olduğu kanıtlanmıştır ve bu nedenle eşdeğer olduğu kanıtlanmamıştır. Tek bir metrik için üç türü de barındıran bir politika bağdaşmayan iki soru soruyordur ve bunlardan biri her zaman yanıtsız kalacaktır. Öne sürdüğünüz iddiayı ifade eden kuralı seçin.

Yön

non_inferiority varsayılan olarak direction: min kullanır: yüksek olan daha iyidir ve kural, adayın temelin altına marjdan fazla düşmemesini ister. direction: max, gecikme, token ya da maliyet gibi düşük olanın daha iyi olduğu metrikler içindir. Kural bu durumda bir artışa konan tavan olarak okunur ve terminal de onu böyle yazdırır: maximum increase 5 ms.

superiority ve equivalence yön almaz. Eşdeğerlik zaten iki tarafı da sınırlar; üstünlük ise farkın, metriğin kendi anlamında sıfırın üzerinde olup olmadığını sorar.

Güven aralığını ne değiştirir

Bir karşılaştırma eşleştirilmiştir: her vakanın aday sonucu, kendi temel sonucuyla karşı karşıya konur. Ortaya çıkan güven aralığını iki şey genişletir ve ikisi de yaptığınız değişiklik değildir.

Taraflardan birinde eksik olan vakalar

Çalıştırmalardan herhangi birinde hata veren bir vaka eşten eksiktir ve atılmak yerine sınırlandırılır: güven aralığı her eksik vakanın her iki yöne de gitmiş olabileceğini hesaba katar. ok adlı bir ölçüte sahip daha küçük bir paket: otuz dört eşleştirilmiş vaka üzerinde aynı dört uyuşmazlık, önce hiç eksik vaka olmadan, sonra iki çalıştırmada da hata veren dört vaka daha ile:

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

Tahmin aynıdır, çünkü iki tarafta da gözlenen vakalardan hesaplanır. Güven aralığı aynı değildir, çünkü kimsenin görmediği dört vakanın her biri farkı bütün bir vaka kadar kaydırmış olabilir. Vaka eklemeden önce hataları düzeltin: aynı hata oranında daha fazla vaka bu boşluğu kapatmaz.

İki model sürümü arasındaki ROC-AUC gibi eşleştirilmiş bir sıralama farkı, eksik satırları bu şekilde sınırlayamaz: iki tarafın da puanladığı satırları karşılaştırır. Böyle bir fark üzerindeki bir kural, rastgele eksik olarak kabul ettiği eksik satır payı olan max_missing_fraction değerini bildirene kadar missingness_unbounded sonucunu verir.

Yöntem

Bir oran farkı için varsayılan güven aralığı, vaka başına farklar üzerinde sınırlı ortalama aralığıdır. Bir politika bunun yerine koşullu kesin yöntemi adlandırabilir:

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

Yukarıdaki on puan daha iyi aday, varsayılan yöntemle [+4.6, +17.9], kesin yöntemle ise şöyle görünür:

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

İkisi de her durumda daha dar değildir; bu yüzden yöntem, herhangi bir kanıt okunmadan önce politikada seçilir ve asla motor tarafından verilere bakılarak seçilmez. Yalnızca oran farklarına uygulanır.

Bir kural karar veremediğinde

INSUFFICIENT_EVIDENCE sonucundaki bir karşılaştırma kuralı, altında onu neyin karara bağlayacağını söyleyen bir satır taşıyabilir. Hiçbir şeyin eksik olmadığı otuz dört vakalık karşılaştırma:

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)

Bu tahmin, daha fazla vaka geldikçe hem farkın hem de uyuşmayan vakaların payının aynı kalacağını varsayar. oloproof plan COMPARISON_ID aynı satırı, ek vakaların alacağı süreyle birlikte yazdırır.

Eşler eksik olduğunda hiçbir boyut önerilmez, çünkü eksik eşler en kötü durumlarında sınırlanır ve daha fazla vaka onları çözmez. Dört eksik eşli aynı karşılaştırma hiçbir öneri satırı yazdırmaz ve plan nedenini söyler:

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

Farkın kendisi marjın yanlış tarafında durduğunda ise daha fazla vaka onu yalnızca doğrular; öneri de bunun yerine bunu söyler:

  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

Sonraki adımlar

okunuşunu anlatır.

karşılaştırma bunlara henüz karar vermez.

  • Dilimler paketin tek bir bölümüyle sınırlı kuralları anlatır.