Skip to content

مختبر الحدود

افحص حدّ القرار، لا النقطة وحدها. بعد كل تصنيف، يسأل Potato ما إذا كان تعديل مضاد للواقع بأدنى قدر سيغيّره، فتنتج مجموعات تباين ومراقبة جودة من التعليق التوضيحي الاعتيادي.

جديد في الإصدار v2.7.0

تجمع كل أدوات التعليق التوضيحي تصنيفات نقطية: العنصر X يأخذ التصنيف Y. أما مختبر الحدود (Boundary Lab) فيجعل Potato يجمع حدود القرار. فبمجرد أن يثبّت المعلّق تصنيفاً، يعرض Potato تعديلات مضادة للواقع بأدنى قدر على النص ويسأل، مسبراً واحداً في كل مرة:

قلتَ Polite. هل يصمد ذلك أمام هذا التعديل؟

بعد كل تصنيف، مسبر مضاد للواقع فوق فرق ملوّن: "هل يبقى ذلك صحيحاً؟"

كل إجابة بنقرة واحدة. وعندها يُنتج التعليق التوضيحي الاعتيادي ثلاثة مخرجات لا يوفّرها تصدير التصنيفات وحده.

  1. مجموعات تباين، بلا كلفة إضافية. كل مسبار (probe) مُجاب عنه هو زوج مُصنَّف (الأصل، المضاد للواقع): أي البيانات المعزّزة بالمضادات للواقع التي تبيّن أنها تحسّن متانة النماذج (Gardner et al. 2020؛ Kaushik et al. 2020). وبناء مجموعة تباين هو عادةً جهد منفصل ومكلف.
  2. مبرّرات الحدود. عندما ينقلب التصنيف، يذكر المعلّق ما الذي تجاوز الخط الفاصل. وتحدّد هذه المبرّرات بدقة مواضع الغموض في دليل الترميز.
  3. مراقبة جودة غير مرئية. مسابر الثبات هي إعادات صياغة تحافظ على المعنى، والمعلّق المتّسق لا ينقلب عليها أبداً. ويُعلَّم من ينقلبون عليها في لوحة التحكم، فتحصل على إشارة انتباه دون زرع أي عنصر ذهبي مزيّف.

التهيئة

yaml
boundary_probing:
  enabled: true
  schema: politeness          # scheme to probe (default: first radio scheme)
  probes_per_item: 3          # probes per (instance, label), invariance included
  include_invariance: true    # add one paraphrase probe (the QC signal)
  sources:                    # probe generation tiers, in priority order
    - precomputed
    - llm
    - rules
  precomputed_key: counterfactuals   # item-data field for precomputed probes
  rationale_on_flip: true     # ask "what crossed the line?" when a label flips
  debounce_ms: 900            # delay between label selection and probe fetch

مصادر المسابر

تأتي المسابر من ثلاث طبقات. وتملأ الطبقات اللاحقة الخانات التي تتركها الطبقات السابقة فارغة، فتتراجع الميزة بلطف بدل أن تتعطّل.

precomputed — اشحن مضادات واقع منسّقة مع بياناتك. حتمية، ومثالية للدراسات المضبوطة:

json
{"id": "req_02", "text": "Send me the slides before the meeting.",
 "counterfactuals": [
   {"text": "Please send me the slides before the meeting.", "kind": "flip",
    "edit_hint": "added \"please\""},
   {"text": "Before the meeting, send me the slides.", "kind": "invariance",
    "edit_hint": "reordered clauses"}
 ]}

llm — ولّد المسابر آنياً عبر أي نقطة نهاية للذكاء الاصطناعي مضبوطة (Anthropic، OpenAI، Ollama، vLLM). تُولَّد المسابر مرة واحدة لكل (instance, label) وتُشارَك بين المعلّقين، فتكون كلفة LLM محدودة بحجم مجموعة البيانات لا بعدد المعلّقين.

rules — تحويلات معجمية حتمية: قلب النفي، وتبديل أدوات التشديد، وعلامات التأدّب، وحدّة الترقيم، وإعادات صياغة الاختصارات أو التحيات لأجل الثبات. بلا تبعيات وبلا استدعاءات نماذج، وهو ما يتيح تشغيل مختبر الحدود دون أي LLM مضبوط إطلاقاً.

أنواع المسابر والأحكام

النوعالمعنىالسلوك المتوقع
flipأصغر تعديل يقصد تجاوز حدّ التصنيفقد ينقلب أو يصمد، وكلاهما مفيد
invarianceإعادة صياغة تحافظ على المعنىلا ينبغي أن ينقلب أبداً؛ والانقلاب دليل على عدم الاتساق

يجيب المعلّقون عن كل مسبار بـ holds (يصمد التصنيف) أو flips (يتغير التصنيف، فيختارون الجديد ويذكرون السبب اختياريًا) أو can't tell (يتعذّر الجزم).

لوحة التحكم

على /boundary/dashboard (بصلاحية المشرف):

  • حساسية الحدّ بحسب التصنيف — من بين التعديلات الدنيا الموجّهة لكل تصنيف، نسبة ما انقلب منها. معدّل انقلاب 90% يعني أن التصنيف يقف على حدّ السكين؛ و10% يعني أنه متين أمام الاضطرابات الصغيرة.
  • اتساق ثبات المعلّق — نسبة الصمود لكل معلّق على مسابر إعادة الصياغة، وتُعلَّم بالأحمر تحت 60%.
  • أين تنقلب التصنيفات — معرض للانقلابات المؤكدة مع الفروق على مستوى الكلمة ومبرّرات المعلّقين.

تصدير مجموعة التباين

ينزّل GET /boundary/api/export (للمشرف) ملف JSONL يضم زوجاً مُصنَّفاً واحداً لكل مسبار مُجاب عنه:

json
{"instance_id": "req_02", "schema": "politeness",
 "original_text": "Send me the slides before the meeting.",
 "original_label": "Impolite",
 "counterfactual_text": "Please send me the slides before the meeting.",
 "counterfactual_label": "Neutral",
 "kind": "flip", "flipped": true,
 "rationale": "please softens the command",
 "edit_hint": "added \"please\"", "probe_source": "precomputed",
 "annotator": "alice", "timestamp": 1783827299.4}

تُصدَّر أحكام holds بقيمة counterfactual_label مساوية للتصنيف الأصلي، مما يجعلها مفيدة كأمثلة سالبة صعبة. وتُستبعد أحكام unsure.

ملاحظات التصميم

  • تُخزَّن المسابر مؤقتاً لكل (instance, schema, label) وتُشارَك بين المعلّقين، فيكون اتساق الثبات قابلاً للمقارنة بينهم.
  • لوحة المسابر طبقة علوية. لا تعيق مسار التعليق التوضيحي الأساسي أبداً، والإجابة عن المسابر اختيارية، وللمعلّقين إغلاقها في أي وقت.
  • يستهدف السبر حالياً مخططاً واحداً أحادي الاختيار (radio) لكل مهمة.

قراءات إضافية