Skip to content

الأدلة الإرشادية

الحالات العنقودية

تفترض معظم حسابات الفترات أن كل حالة مستقلة عن كل حالة أخرى. لكن ثلاث جولات من محادثة واحدة ليست كذلك: حين تسوء المحادثة، تميل الجولات الثلاث كلها إلى السوء. ومجموعة الاختبار التي تعاملها على أنها مستقلة تُبلغ بفترة أضيق مما تدعمه الأدلة، وقد تُجيز البوابة بناءً عليها.

التصريح بعنقود

تُسمّي الحالة عنقودها بـ group_id، في المستوى الأعلى من الصف إلى جانب id:

{"id": "conv00_t0", "group_id": "conv00", "input": {"question": "Conversation 0 turn 0: refund please (garbled)"}, "expected": {"label": "refund"}}
{"id": "conv00_t1", "group_id": "conv00", "input": {"question": "Conversation 0 turn 1: where is my order (garbled)"}, "expected": {"label": "other"}}
{"id": "conv00_t2", "group_id": "conv00", "input": {"question": "Conversation 0 turn 2: refund please (garbled)"}, "expected": {"label": "refund"}}

ما إن تُصرّح أي حالة بعنقود حتى تُحلَّل مجموعة الاختبار كلها بحسب العناقيد. ولا يوجد مفتاح للعودة على مستوى كل مقياس: معاملة الحالات المجمَّعة على أنها مستقلة هي الاتجاه غير الآمن، لذا لا يُتاح.

ما الذي يتغيّر

الجولات الـ 108 نفسها من 36 محادثة، محادثة واحدة من كل ست مشوّهة من جولتها الأولى حتى الأخيرة. من دون group_id:

│ exact_label │ 83.3%    │ [74.9%, 89.9%] │ 90 / 108 observed · 0 missing · 0 excluded │

ومعه:

│ exact_label │ 83.3%    │ [65.2%, 94.6%] │ 90 / 108 observed · 0 missing · 0 excluded · 36 clusters · approximate │

التقدير متطابق. أما الفترة فأعرض بنحو الضعف، لأن مجموعة الاختبار تحوي 36 ملاحظة مستقلة لا 108. ومقابل حدٍّ أدنى قدره 0.70، ومع الموافقة الصريحة الموصوفة أدناه، يجتاز التشغيل الأول ولا يجتاز الثاني:

label-floor: PASS (lower_bound_meets_minimum)
label-floor: INSUFFICIENT_EVIDENCE (interval_overlaps_threshold)

الإجابة الثانية هي الصحيحة لهذه البيانات.

الموافقة الصريحة

الفترة العنقودية هي bootstrap عنقودي مُعايَر بطريقة student (studentized). وهي طريقة تقريبية، ويجب على السياسة أن تُصرّح بقبولها قبل أن يُسمح لقاعدة بأن تقرّر بناءً عليها. ومن دون ذلك، يُقرأ التشغيل المجمَّع نفسه هكذا:

label-floor: MANUAL_REVIEW (approximate_method_not_permitted)

ويخرج بالرمز 4. ولتسمح للقاعدة بأن تقرّر، أضف هذا إلى release.yaml:

allow_approximate_methods: true

إعدادان آخران يحدّان مما يُؤتمن عليه هذا الأسلوب.

الإعدادالقيمة الافتراضيةما يفعله
min_clusters20إذا قلّ عدد العناقيد عن هذا، تُقرأ القاعدة INSUFFICIENT_EVIDENCE مع insufficient_clusters. يمكن خفضه إلى 10 ولا أدنى من ذلك.
max_missing_fractionلا شيءيُضبط على القاعدة. لا تستطيع الفترة العنقودية أن تحصر الحالات المفقودة كما تفعل الفترة المستقلة، لذا فإن القاعدة العنقودية على مقياس فيه أي حالة مفقودة تُقرأ missingness_unbounded إلى أن تُصرّح القاعدة بمقدار الفقد الذي تقبله.

السياسة التي تضبط min_clusters: 5 تُرفض قبل اتخاذ أي قرار:

Configuration error: p5.yaml: min_clusters: Input should be greater than or equal to 10

المحادثات نفسها مع إحداها تقع في خطأ في كل جولة:

│ exact_label │ 82.9%    │ [64.3%, 94.5%] │ 87 / 105 observed · 3 missing · 0 excluded · 35 clusters · approximate │
label-floor: INSUFFICIENT_EVIDENCE (missingness_unbounded)

قاعدة تُصرّح بمقدار الفقد الذي تقبله:

rules:
  - id: label-floor
    metric: exact_label
    min: 0.60
    max_missing_fraction: 0.15
label-floor: PASS (lower_bound_meets_minimum)

التصريح بنسبة يسجّل افتراضًا: أن الحالات المفقودة مفقودة عشوائيًا. والقرار لا يكون أفضل من ذلك الافتراض، ولهذا لن يتخذه المحرك نيابةً عنك.

ما لا تستطيع مجموعة الاختبار العنقودية فعله بعد

معدلات النجاح/الإخفاق وحدها لها فترة عنقودية. في مجموعة اختبار تُصرّح بـ group_id:

  • المتوسط أو الكمّيّة أو مقياس الترتيب ليس له فترة، والقاعدة المبنية على أيٍّ منها تُقرأ

MANUAL_REVIEW مع unsupported_dependence_structure؛

  • مع replicates: أعلى من 1، لا يكون لأي مقياس فترة، بما في ذلك معدلات النجاح/الإخفاق، لأن

بنيتَي الاعتماد تتركّبان ولا شيء ينمذجهما معًا؛

  • مقارنة تشغيلين ليس لها فترة لأي مقياس.

كمّيّة زمن الاستجابة على مجموعة الاختبار المجمَّعة:

│ latency_p50 │ 1.365 ms │ no interval: unsupported_dependence_structure │ p50 of 108 observed · 0 missing · 0 excluded │

القيد الأخير هو الأهم. عند مقارنة تشغيلين لمجموعة اختبار المحادثات، حيث يُصلح المرشَّح كل محادثة مشوّهة:

oloproof compare CANDIDATE_RUN_ID BASELINE_RUN_ID --policy compare.yaml
Comparison sha256:ed7820e6471f70ce2b5e16ba618fdd48ea92a5ed39d23cce0b719ab31fcb16af of run_01M3C43MWTH8127R7S5M4N9DQ9 against run_01M3C43J2DVM93EWWWRBMRW22E · 108 paired cases
exact_label: +16.7 points · 108 paired · 0 missing · 0 excluded
  no interval: unsupported_dependence_structure
Decisions
  no-regression  exact_label  non-inferiority, margin 5.0 points  MANUAL_REVIEW  unsupported_dependence_structure
Gate: BLOCK (exit 4)

لم يجتز أي إجراء مقترن لمجموعات الاختبار العنقودية شبكةَ التحقق الخاصة به، لذا تُبلغ المقارنة بالفرق وتسأل شخصًا بدلًا من أن تقرّر تقريبيًا. MANUAL_REVIEW لا INSUFFICIENT_EVIDENCE، لأن مزيدًا من الحالات من النوع نفسه لن يُصلح ذلك.

إلى أين بعد ذلك