الأدلة الإرشادية
قواعد المقارنة
تعرض صفحة مقارنة المرشَّح بخط الأساس سير العمل. أما هذه الصفحة فهي المرجع للقواعد التي تُحسم بها المقارنة: ما الأنواع الموجودة، وما الذي يسأله كل نوع، وبأي وحدة يُقاس الهامش، وما الذي يحرّك الفترة التي تُقرأ منها هذه القواعد.
ثلاثة أنواع
تسمّي قاعدة المقارنة kind ومقياسًا. ولا تأخذ أبدًا min ولا max: فالفرق لا يُستنتج من عتبة.
| النوع | يسأل | يأخذ |
|---|---|---|
| superiority | هل المرشَّح أفضل من خط الأساس؟ | لا هامش |
| non_inferiority | هل المرشَّح ليس أسوأ من خط الأساس بأكثر من الهامش؟ | margin، واختياريًا direction |
| equivalence | هل المرشَّح ضمن الهامش من خط الأساس، في الاتجاهين كليهما؟ | margin |
يُعبَّر عن الهامش بوحدات المقياس نفسه. فبالنسبة إلى معدل، تعني 0.05 خمس نقاط مئوية؛ وبالنسبة إلى مئين زمن الاستجابة، تعني 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 اتجاهًا. فالتكافؤ يحدّ الجانبين كليهما أصلًا، والتفوق يسأل عمّا إذا كان الفرق أعلى من الصفر بالمعنى الخاص بالمقياس.
ما الذي يحرّك الفترة
المقارنة مقترنة: تُوضع نتيجة المرشَّح لكل حالة مقابل نتيجة خط الأساس للحالة نفسها. وهناك أمران يوسّعان الفترة الناتجة، وليس أيٌّ منهما التغيير الذي أجريته.
حالات مفقودة من أي من الجانبين
الحالة التي أخفقت بخطأ في أي من التشغيلين تكون مفقودة من الزوج، وتُحَدّ بدلًا من أن تُسقَط: إذ تسمح الفترة بأن تكون كل حالة مفقودة قد مالت إلى أي من الاتجاهين. مجموعة اختبار أصغر، بمعيار يُسمّى 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 بين نسختين من نموذج، فلا يمكنه أن يحدّ الصفوف المفقودة بهذه الطريقة: إذ يقارن الصفوف التي سجّل لها الجانبان كلاهما درجات. والقاعدة على فرق كهذا تُقرأ missingness_unbounded إلى أن تصرّح بـ max_missing_fraction، وهي حصة الصفوف المفقودة التي تقبلها على أنها مفقودة عشوائيًا.
الطريقة
الفترة الافتراضية لفرق المعدلات هي فترة متوسط محدود على الفروق لكل حالة. ويجوز للسياسة أن تسمّي بدلًا منها الطريقة الدقيقة الشرطية:
version: 1
difference_method: conditional_exact_paired_difference@1
rules:
- {id: not-worse, metric: exact_label, kind: non_inferiority, margin: 0.05}المرشَّح أعلاه الأفضل بعشر نقاط يُقرأ [+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إلى أين بعد ذلك
- تغطي صفحة مقارنة المرشَّح بخط الأساس سير العمل والقراءة الأولى
للفترة.
- تغطي صفحة الحالات العنقودية مجموعات الاختبار التي لا تكون حالاتها مستقلة،
وهي ما لا تحسمه المقارنة بعد.
- تغطي صفحة الشرائح القواعد المقصورة على جزء واحد من مجموعة الاختبار.