الأدلة الإرشادية
الشرائح
قد يظل المعدل الإجمالي ثابتًا بينما ينهار جزء واحد من مجموعة الاختبار. الشريحة جزء مُعلَن من مجموعة الاختبار يُقاس وحده، فيصبح الانهيار مرئيًا. وتأتي الشرائح مع انضباطين اثنين، لأن النظر في أجزاء كثيرة من مجموعة الاختبار هو الطريقة التي يعثر بها التقييم على الضجيج فيسمّيه اكتشافًا.
إعلان الشرائح
تُسمّى الشريحة في oloproof.yaml. والنوع الشائع يقرأ مفتاحًا من metadata في كل حالة:
slices: [metadata.lang, metadata.topic]
min_slice_support: 30{"id": "c000", "input": {"lang": "en", "topic": "billing", "hard": false, "n": 0}, "expected": {"label": "yes"}, "metadata": {"lang": "en", "topic": "billing"}}كل أنواع الشرائح التي يقبلها الملف:
| الشريحة | تجمع الحالات حسب | تحتاج إلى |
|---|---|---|
| metadata.<key> | قيمة ذلك المفتاح في metadata الخاصة بالحالة | المفتاح على الحالات |
| relevant_position | الموضع الذي استُرجع فيه أول مقطع نصي ذي صلة: top_k أو beyond_top_k أو not_retrieved | نظام RAG وexpected.relevant |
| context_truncated | ما إذا كانت ميزانية الرموز قد أسقطت مقاطع نصية من السياق | نظام RAG مع token_budget |
| first_tool | الأداة التي استدعاها الوكيل أولًا | سجل agent_trajectory/v1 |
| repeated_action | ما إذا كرر الوكيل استدعاءً مطابقًا | سجل agent_trajectory/v1 |
| route | الوكلاء الذين أمسكوا بزمام التحكم، مكتوبة بالشكل triage>billing | سجل agent_trajectory/v1 تسمّي خطواته وكلاءها |
| trajectory_length:4,8 | عدد الخطوات، مقسَّمًا إلى فئات عند حدود تعلنها | سجل agent_trajectory/v1 |
| confidence:0.5 | الدرجة التي أعطاها النموذج للصف، مقسَّمة إلى نطاقات عند حدود تعلنها | كتلة predictive: |
الاسم الذي لا يتعرّف عليه الملف يُرفض قبل تشغيل أي شيء:
Configuration error: unknown slice 'lang'; declare metadata.<key>, relevant_position, context_truncated, first_tool, repeated_action, route, trajectory_length:<bounds> or confidence:<bounds>الشرائح تُبلِّغ ولا تحجب أبدًا
يطبع التشغيل شرائحه تحت عنوانها الخاص. مرشَّحٌ أصلح الإنجليزية وأفسد الفرنسية:
│ metadata.lang=de │ ok │ 100.0% │ [95.4%, 100.0%] │ 80 / 80 observed · 0 missing · 0 excluded · exploratory · support 80 │
│ metadata.lang=en │ ok │ 100.0% │ [95.4%, 100.0%] │ 80 / 80 observed · 0 missing · 0 excluded · exploratory · support 80 │
│ metadata.lang=fr │ ok │ 32.5% │ [22.4%, 43.9%] │ 26 / 80 observed · 0 missing · 0 excluded · exploratory · support 80 │
│ metadata.topic=account │ ok │ 88.3% │ [81.2%, 93.5%] │ 106 / 120 observed · 0 missing · 0 excluded · exploratory · support 120 │
│ metadata.topic=billing │ ok │ 66.7% │ [57.4%, 75.1%] │ 80 / 120 observed · 0 missing · 0 excluded · exploratory · support 120 │عنوان الجدول يقول Slices (exploratory; never gated)، وهو يعني ذلك حقًا. كان المعدل الإجمالي لذلك التشغيل 77.5% وسمحت بوابته بالإصدار، بينما كانت الفرنسية عند ثلث ذلك. قاعدة الإصدار على التشغيل تسمّي مقياسًا إجماليًا، والقاعدة المقصورة على شريحة من تشغيل واحد تُرفض:
Configuration error: release rule 'fr-floor' targets slice/metadata.lang=fr; a run's slice results are exploratory, and only a comparison rule gates a slice, inside a family with a correctionذلك هو الانضباط الأول. مجموعة الاختبار المقسَّمة بعشر طرق لديها عشر فرص لإظهار فرق بالصدفة، والبوابة التي تقرأ الشرائح ستحجب الإصدارات بسبب الضجيج. الشرائح وُجدت لتحديد أين ينبغي أن تنظر.
أي الشرائح تبرز
يرتّب التشغيل أيضًا شرائحه مقابل معدل التشغيل نفسه، ويُعلِّم تلك التي تختلف عنه، باستخدام إجراء Benjamini-Yekutieli كي تبقى نسبة العلامات الخاطئة مضبوطة مهما تداخلت الشرائح. يعرض جدول الشرائح في الطرفية كل واحدة منها في عمود BY mark الخاص به — marked أو not marked، أو فارغًا لشريحة أرقّ من أن تُختبر — مع قيمة p التي رُتِّبت بها. وهي أيضًا مخزَّنة في التشغيل ومُصدَّرة في run.json ضمن حزمته:
jq -c '.run.slice_metrics[] | {scope, estimate, fdr_marked, fdr_p_value}' .oloproof/bundles/RUN_ID/run.json{"scope":"slice/metadata.lang=de","estimate":1.0,"fdr_marked":true,"fdr_p_value":0.0001}
{"scope":"slice/metadata.lang=en","estimate":1.0,"fdr_marked":true,"fdr_p_value":0.0001}
{"scope":"slice/metadata.lang=fr","estimate":0.325,"fdr_marked":true,"fdr_p_value":0.0001}
{"scope":"slice/metadata.topic=account","estimate":0.8833333333333333,"fdr_marked":true,"fdr_p_value":0.0037003540039062493}
{"scope":"slice/metadata.topic=billing","estimate":0.6666666666666666,"fdr_marked":true,"fdr_p_value":0.008582189941406249}الشريحة غير المُعلَّمة لم يثبت أنها تطابق التشغيل؛ كل ما في الأمر أنها لم تُنبَّه إليها. العلامة توجّه الانتباه ولا تصل إلى أي بوابة.
الدعم
min_slice_support هو أقل عدد من الحالات تحتاجه الشريحة قبل أن تحصل على فترة. تحته يُعرض التقدير وتُحجب الفترة. من مشروع ضبطه على 4:
│ metadata.topic=account │ answer_correct │ 100.0% │ │ 1 / 1 observed · 0 missing · 0 excluded · exploratory · support 1 │
│ │ │ │ │ < 4, no interval │القيمة الافتراضية 30. ومجموعة الاختبار الصغيرة التي تخفضها تحصل على فترات للشرائح الرقيقة، وتلك الفترات عريضة بما يكفي لتقول ذلك بنفسها.
الحجب بالبوابة على شريحة، داخل مقارنة
حيث يجب حقًا ألا تتراجع شريحة ما، يمكن قصر قاعدة مقارنة عليها. النطاق هو اسم الشريحة مسبوقًا بـ slice/، وتنص القاعدة على الدعم الذي تحتاجه قبل قراءة أي أدلة:
version: 1
rules:
- {id: overall, metric: ok, kind: non_inferiority, margin: 0.05}
- {id: fr-not-worse, metric: ok, kind: non_inferiority, margin: 0.05, scope: slice/metadata.lang=fr, min_support: 30}
- {id: en-not-worse, metric: ok, kind: non_inferiority, margin: 0.05, scope: slice/metadata.lang=en, min_support: 30}
- {id: de-not-worse, metric: ok, kind: non_inferiority, margin: 0.05, scope: slice/metadata.lang=de, min_support: 30}
families:
- {id: languages, correction: holm, rules: [fr-not-worse, en-not-worse, de-not-worse]}إذا كُتب النطاق دون البادئة، يُرفض:
Configuration error: rule 'fr-not-worse' has unknown scope 'metadata.lang=fr'; a comparison rule decides on the global scope or on slice/<name>=<value>ومعها، المرشَّح أعلاه مقابل خط الأساس الخاص به:
oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yamlComparison sha256:cd2693b505e645919d397e8d7a87eaf0a841ab0c11c0b95484912363381b72e0 of run_01M3C46CYA163JSMSA5QZ6KAZA against run_01M3C46B3PSNP1ZTC8X05AG0GE · 240 paired cases
ok: -5.0 points [-15.2, +4.9] · 240 paired · 0 missing · 0 excluded
ok [slice/metadata.lang=de]: +8.8 points [-0.5, +21.5] · 80 paired · 0 missing · 0 excluded · exploratory · support 80
ok [slice/metadata.lang=en]: +18.8 points [+7.0, +34.4] · 80 paired · 0 missing · 0 excluded · exploratory · support 80
ok [slice/metadata.lang=fr]: -42.5 points [-60.3, -26.8] · 80 paired · 0 missing · 0 excluded · exploratory · support 80
ok [slice/metadata.topic=account]: +7.5 points [+0.9, +17.1] · 120 paired · 0 missing · 0 excluded · exploratory · support 120
ok [slice/metadata.topic=billing]: -17.5 points [-35.0, -0.1] · 120 paired · 0 missing · 0 excluded · exploratory · support 120
Decisions
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
fr-not-worse ok non-inferiority, margin 5.0 points FAIL upper_bound_below_margin
en-not-worse ok non-inferiority, margin 5.0 points PASS lower_bound_above_margin
de-not-worse ok non-inferiority, margin 5.0 points PASS lower_bound_above_margin
Family languages: Holm over 3 rules; adjusted levels 0.01667
Gate: BLOCK (exit 1)ذلك هو الانضباط الثاني. القاعدة المقصورة على شريحة لا تحجب إلا داخل مُدخَل في families:، الذي يسرد القواعد التي تُضبط حالات فشلها الزائفة معًا. وholm هو التصحيح: القاعدة التي تفشل ضمن العائلة يُعاد اختبارها عند مستوى أشد صرامة، يُحدَّد بعدد القواعد التي تضمها العائلة، كي لا تتراكم ثلاث فرص للفشل بالصدفة لتصبح ثلاثة أضعاف المخاطرة. عند مستوى ثقة 0.95 وثلاث قواعد، يُعاد اختبار أقوى فشل عند 0.05 / 3، والذي يليه عند 0.05 / 2، والأخير عند 0.05. لا يُعاد اختبار إلا حالات الفشل: فالنجاح ليس رفضًا ولا يحتاج إلى تصحيح. هنا فشلت قاعدة واحدة، وأُعيد اختبارها عند 0.01667، وما زالت الفرنسية تفشل. لم تستطع القاعدة الإجمالية أن تحسم، والنصيحة تحتها تقول إن مزيدًا من الحالات لن يؤدي إلا إلى دفعها نحو FAIL.
القاعدة الخاصة بشريحة خارج أي عائلة تُرفض:
Configuration error: slice rule 'fr-not-worse' belongs to no family; slice rules multiply the chances of a false FAIL, so they gate only inside a family with a correctionإلى أين بعد ذلك
- تشرح صفحة قواعد المقارنة أنواع القواعد التي يمكن وضع نطاق عليها.
- تستخدم صفحات تقييم RAG والوكلاء والأدوات و
المُصنِّفات ونماذج الانحدار الشرائح غير المعتمدة على البيانات الوصفية.