가이드
비교 규칙
후보를 기준선과 비교하기는 워크플로를 보여 줍니다. 이 페이지는 비교의 결정 기준이 되는 규칙에 대한 참조 문서입니다. 어떤 종류가 있는지, 각각 무엇을 묻는지, 마진은 어떤 단위로 측정되는지, 그리고 규칙이 읽는 구간을 무엇이 움직이는지를 다룹니다.
세 가지 종류
비교 규칙은 kind와 지표를 지정합니다. min이나 max는 절대 받지 않습니다. 차이는 임계값으로부터 추론되지 않습니다.
| 종류 | 묻는 것 | 받는 값 |
|---|---|---|
| superiority | 후보가 기준선보다 나은가? | 마진 없음 |
| non_inferiority | 후보가 기준선보다 마진을 넘는 만큼 나쁘지는 않은가? | margin, 선택적으로 direction |
| equivalence | 후보가 양방향 모두에서 기준선과의 차이가 마진 이내인가? | margin |
마진은 지표 자체의 단위로 표시합니다. 비율에서 0.05는 5퍼센트포인트이고, 지연 시간 분위수에서 5는 5밀리초입니다.
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비교 규칙은 --policy로 전달되는 별도의 파일에 둡니다. release.yaml은 단일 실행을 결정하며, 임계값 규칙과 비교 규칙은 서로 다른 근거를 읽기 때문입니다.
oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yaml같은 규칙을 두 후보에 적용하기
레이블이 붙은 질문 이백 개가 있습니다. 기준선은 그중 스무 개에 레이블을 잘못 붙입니다. 아래의 각 후보는 같은 스위트에서 실행되었고, 위의 파일로 그 기준선과 비교되었습니다.
기준선과 정확히 똑같이 동작하는 후보는 다음과 같습니다.
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)그 스무 개를 고친 후보는 다음과 같습니다.
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)두 게이트를 함께 읽으십시오. 둘 다 차단하지만 이유는 정반대입니다. 첫 번째 후보는 동등하다는 것이 입증되었지만 더 낫다는 것은 입증되지 않았습니다. 두 번째 후보는 더 낫다는 것이 입증되었고, 그래서 동등하다는 것은 입증되지 않았습니다. 한 지표에 세 종류를 모두 두는 정책은 양립할 수 없는 두 질문을 던지는 것이며, 그중 하나는 항상 답을 얻지 못합니다. 여러분이 하려는 주장을 나타내는 규칙을 고르십시오.
방향
non_inferiority의 기본값은 direction: min입니다. 높을수록 좋으며, 규칙은 후보가 기준선보다 마진 이상 낮아지지 않을 것을 요구합니다. direction: max는 지연 시간, 토큰, 비용처럼 낮을수록 좋은 지표를 위한 것입니다. 이때 규칙은 증가량의 상한으로 읽히며, 터미널도 그렇게 출력합니다: maximum increase 5 ms.
superiority와 equivalence는 방향을 받지 않습니다. 동등성은 이미 양쪽을 모두 제한하고, 우월성은 지표 자체의 의미에서 차이가 0보다 큰지를 묻습니다.
구간을 움직이는 것
비교는 짝지어집니다. 각 케이스의 후보 결과는 그 케이스 자신의 기준선 결과와 대조됩니다. 결과로 나오는 구간을 넓히는 요인은 두 가지이며, 어느 것도 여러분이 만든 변경이 아닙니다.
어느 한쪽에서 누락된 케이스
어느 한 실행에서 오류가 난 케이스는 짝에서 누락되며, 버려지는 대신 경계로 처리됩니다. 구간은 누락된 모든 케이스가 어느 쪽으로든 갔을 가능성을 허용합니다. ok라는 기준을 가진 더 작은 스위트에서, 짝지은 케이스 서른네 개에 대해 같은 네 건의 불일치가 있을 때, 먼저 누락된 케이스가 없는 경우와 두 실행 모두에서 오류가 난 케이스가 네 개 더 있는 경우입니다.
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 excluded추정값은 같습니다. 양쪽에서 관찰된 케이스로 계산되기 때문입니다. 구간은 다릅니다. 아무도 보지 못한 네 케이스가 각각 차이를 케이스 하나만큼 온전히 움직였을 수 있기 때문입니다. 케이스를 추가하기 전에 오류를 고치십시오. 같은 오류율에서 케이스를 늘려도 그 간극은 좁혀지지 않습니다.
두 모델 버전 사이의 ROC-AUC처럼 짝지은 순위 차이는 이런 방식으로 누락된 행을 경계 처리할 수 없습니다. 양쪽이 모두 점수를 매긴 행을 비교하기 때문입니다. 이런 지표에 대한 규칙은 max_missing_fraction, 즉 무작위 누락으로 받아들이는 누락 행의 비율을 선언하기 전까지 missingness_unbounded로 표시됩니다.
방법
비율 차이에 대한 기본 구간은 케이스별 차이에 대한 유계 평균 구간입니다. 정책은 대신 조건부 정확 방법을 지정할 수 있습니다.
version: 1
difference_method: conditional_exact_paired_difference@1
rules:
- {id: not-worse, metric: exact_label, kind: non_inferiority, margin: 0.05}위에서 10포인트 더 나은 후보는 기본 방법에서 [+4.6, +17.9]로, 정확 방법에서는 다음과 같이 표시됩니다.
exact_label: +10.0 points [+3.5, +15.8] · 200 paired · 0 missing · 0 excluded어느 쪽도 항상 더 좁지는 않습니다. 그래서 방법은 근거를 읽기 전에 정책에서 선택하며, 엔진이 데이터를 보고 고르는 일은 결코 없습니다. 이 방법은 비율 차이에만 적용됩니다.
규칙이 결정을 내리지 못할 때
INSUFFICIENT_EVIDENCE인 비교 규칙 아래에는 무엇이 있으면 결정되는지를 알려 주는 줄이 붙을 수 있습니다. 누락이 없는 서른네 케이스 비교의 경우입니다.
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)이 추정은 케이스가 더 들어오는 동안 차이와 불일치한 케이스의 비율이 모두 유지된다고 가정합니다. oloproof plan COMPARISON_ID는 추가 케이스에 걸릴 시간과 함께 같은 줄을 출력합니다.
짝이 누락된 경우에는 크기를 제시하지 않습니다. 누락된 짝은 최악의 경우로 경계 처리되며, 케이스를 늘려도 해소되지 않기 때문입니다. 누락된 짝이 네 개인 같은 비교는 조언 줄을 출력하지 않으며, 계획이 그 이유를 설명합니다.
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 again그리고 차이 자체가 마진의 잘못된 쪽에 있을 때는 케이스를 늘려도 그것을 확인해 줄 뿐이므로, 조언은 그렇게 말합니다.
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다음 단계
- 후보를 기준선과 비교하기는 워크플로와 구간을 처음 읽는 방법을 다룹니다.
- 군집 케이스는 케이스들이 독립적이지 않은 스위트를 다루며, 비교는 아직 이런
스위트에 대해 결정을 내리지 않습니다.
- 슬라이스는 스위트의 한 부분으로 범위를 한정한 규칙을 다룹니다.