Panduan
Aturan perbandingan
Membandingkan kandidat dengan baseline menunjukkan alur kerjanya. Halaman ini adalah referensi untuk aturan yang memutuskan sebuah perbandingan: jenis apa saja yang ada, apa yang ditanyakan masing-masing, dalam satuan apa margin diukur, dan apa yang menggeser interval yang menjadi dasar pembacaannya.
Tiga jenis
Aturan perbandingan menyebut sebuah kind dan sebuah metrik. Aturan ini tidak pernah menerima min atau max: selisih tidak disimpulkan dari sebuah threshold.
| Jenis | Menanyakan | Menerima |
|---|---|---|
| superiority | Apakah kandidat lebih baik daripada baseline? | tanpa margin |
| non_inferiority | Apakah kandidat tidak lebih buruk daripada baseline melebihi margin? | margin, dan opsional direction |
| equivalence | Apakah kandidat berada dalam margin dari baseline, ke kedua arah? | margin |
Margin dinyatakan dalam satuan metrik itu sendiri. Untuk sebuah rasio, 0.05 adalah lima poin persentase; untuk kuantil latensi, 5 adalah lima milidetik.
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: 5Aturan perbandingan berada di file tersendiri, yang diberikan dengan --policy, karena release.yaml memutuskan satu eksekusi, sedangkan aturan threshold dan aturan perbandingan membaca bukti yang berbeda.
oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yamlAturan yang sama terhadap dua kandidat
Dua ratus pertanyaan berlabel. Baseline salah melabeli dua puluh di antaranya. Setiap kandidat di bawah ini dijalankan atas suite yang sama dan dibandingkan dengan baseline itu menggunakan file di atas.
Kandidat yang berperilaku persis seperti baseline:
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)Kandidat yang memperbaiki kedua puluh kasus itu:
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)Baca kedua gerbang itu bersama-sama. Keduanya memblokir, dengan alasan yang berlawanan. Kandidat pertama terbukti ekuivalen dan tidak terbukti lebih baik; kandidat kedua terbukti lebih baik dan karena itu tidak terbukti ekuivalen. Kebijakan yang memuat ketiga jenis untuk satu metrik mengajukan dua pertanyaan yang tidak saling cocok, dan salah satunya akan selalu tidak terjawab. Pilih aturan yang menyatakan klaim yang sedang Anda buat.
Arah
non_inferiority secara bawaan memakai direction: min: lebih tinggi lebih baik, dan aturan ini meminta agar kandidat tidak turun melebihi margin di bawah baseline. direction: max untuk metrik yang lebih rendah lebih baik, seperti latensi, token, atau biaya. Aturan ini lalu dibaca sebagai batas atas kenaikan, seperti yang dicetak terminal: maximum increase 5 ms.
superiority dan equivalence tidak menerima arah. Ekuivalensi sudah membatasi kedua sisi, dan superioritas menanyakan apakah selisihnya di atas nol menurut arti metrik itu sendiri.
Apa yang menggeser interval
Perbandingan bersifat berpasangan: hasil kandidat untuk setiap kasus dibandingkan dengan hasil baseline untuk kasus itu sendiri. Dua hal melebarkan interval yang dihasilkan, dan keduanya bukan perubahan yang Anda buat.
Kasus yang hilang di salah satu sisi
Kasus yang error di salah satu eksekusi hilang dari pasangannya, dan kasus itu dibatasi alih-alih dibuang: interval memperhitungkan kemungkinan setiap kasus yang hilang berakhir ke arah mana pun. Suite yang lebih kecil, dengan kriteria bernama ok: empat ketidaksesuaian yang sama atas tiga puluh empat kasus berpasangan, pertama tanpa kasus hilang lalu dengan empat kasus lagi yang error di kedua eksekusi:
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 excludedEstimasinya sama, karena dihitung dari kasus yang teramati di kedua sisi. Intervalnya tidak, karena empat kasus yang tidak dilihat siapa pun masing-masing dapat menggeser selisih sebesar satu kasus penuh. Perbaiki error sebelum menambah kasus: lebih banyak kasus dengan tingkat error yang sama tidak menutup celahnya.
Selisih peringkat berpasangan, seperti ROC-AUC antara dua versi model, tidak dapat membatasi baris yang hilang dengan cara ini: ia membandingkan baris yang dinilai kedua sisi. Aturan atasnya berbunyi missingness_unbounded sampai aturan itu menyatakan max_missing_fraction, yaitu porsi baris hilang yang diterimanya sebagai hilang secara acak.
Metodenya
Interval bawaan untuk selisih rasio adalah interval rata-rata terbatas atas selisih per kasus. Sebuah kebijakan dapat menyebut metode eksak kondisional sebagai gantinya:
version: 1
difference_method: conditional_exact_paired_difference@1
rules:
- {id: not-worse, metric: exact_label, kind: non_inferiority, margin: 0.05}Kandidat di atas yang sepuluh poin lebih baik terbaca [+4.6, +17.9] dengan metode bawaan dan seperti ini dengan metode eksak:
exact_label: +10.0 points [+3.5, +15.8] · 200 paired · 0 missing · 0 excludedTidak ada yang selalu lebih sempit, itulah sebabnya metode dipilih dalam kebijakan, sebelum bukti apa pun dibaca, dan tidak pernah oleh engine berdasarkan data. Metode ini hanya berlaku untuk selisih rasio.
Ketika aturan tidak dapat memutuskan
Aturan perbandingan yang INSUFFICIENT_EVIDENCE dapat membawa baris di bawahnya yang menyatakan apa yang akan memutuskannya. Perbandingan tiga puluh empat kasus tanpa kasus hilang:
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)Estimasi itu mengasumsikan bahwa selisihnya dan porsi kasus yang tidak sesuai tetap bertahan seiring bertambahnya kasus. oloproof plan COMPARISON_ID mencetak baris yang sama beserta waktu yang diperlukan kasus tambahan tersebut.
Ketika ada pasangan yang hilang, tidak ada ukuran yang ditawarkan, karena pasangan yang hilang dibatasi pada kemungkinan terburuknya dan lebih banyak kasus tidak akan menyelesaikannya. Perbandingan yang sama dengan empat pasangan hilang tidak mencetak baris saran, dan rencananya menjelaskan alasannya:
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 againDan ketika selisih itu sendiri berada di sisi margin yang salah, lebih banyak kasus hanya akan menegaskannya, sehingga sarannya menyatakan hal itu:
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 FAILLangkah selanjutnya
- Membandingkan kandidat dengan baseline membahas alur kerjanya dan cara pertama
membaca sebuah interval.
- Kasus berkelompok membahas suite yang kasusnya tidak independen, yang belum
dapat diputuskan oleh perbandingan.
- Irisan (slice) membahas aturan yang cakupannya satu bagian dari suite.