Skip to content

बाउंड्री लैब

निर्णय सीमा की जाँच करें, केवल बिंदु की नहीं। हर लेबल के बाद Potato पूछता है कि क्या कोई न्यूनतम काउंटरफैक्चुअल संपादन उसे बदल देगा, जिससे सामान्य एनोटेशन से ही कॉन्ट्रास्ट सेट और गुणवत्ता नियंत्रण मिल जाते हैं।

v2.7.0 में नया

हर एनोटेशन टूल पॉइंट लेबल जमा करता है: आइटम X को लेबल Y मिलता है। बाउंड्री लैब Potato से निर्णय सीमाएँ जमा करवाता है। जिस क्षण कोई एनोटेटर लेबल तय करता है, Potato टेक्स्ट के न्यूनतम काउंटरफैक्चुअल संपादन दिखाता है और एक-एक करके प्रोब पूछता है:

आपने Polite कहा। क्या यह इस संपादन के बाद भी टिकेगा?

हर लेबल के बाद, रंगीन diff पर एक काउंटरफैक्चुअल प्रोब: “क्या यह अब भी टिकेगा?”

हर उत्तर में एक क्लिक लगता है। इसके बाद सामान्य एनोटेशन से तीन ऐसी चीज़ें निकलती हैं जो सादा लेबल निर्यात नहीं दे सकता।

  1. कॉन्ट्रास्ट सेट, मुफ़्त में। उत्तर दी गई हर प्रोब एक लेबल किया हुआ (मूल, काउंटरफैक्चुअल) जोड़ा है: वही काउंटरफैक्चुअल-संवर्धित डेटा जो मॉडल की मज़बूती बढ़ाता हुआ पाया गया है (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 — किसी भी कॉन्फ़िगर किए गए AI एंडपॉइंट (Anthropic, OpenAI, Ollama, vLLM) से चलते-चलते प्रोब बनाएँ। प्रोब प्रति (instance, label) एक बार बनते हैं और सभी एनोटेटरों में साझा होते हैं, इसलिए LLM की लागत एनोटेटरों की संख्या के बजाय डेटासेट के आकार से बँधी रहती है।

rules — निर्धारक शाब्दिक रूपांतरण: निषेध पलटना, तीव्रता-वाचक शब्दों की अदला-बदली, विनम्रता के मार्कर, विराम-चिह्नों की तीव्रता, और इन्वेरिएंस के लिए संक्षिप्त रूपों या अभिवादन के पैराफ़्रेज़। न कोई निर्भरता, न कोई मॉडल कॉल, और इसी वजह से बाउंड्री लैब बिना किसी LLM कॉन्फ़िगर किए चल सकता है।

प्रोब के प्रकार और निर्णय

प्रकारअर्थअपेक्षित व्यवहार
flipलेबल की सीमा पार करने के इरादे से किया गया सबसे छोटा संपादनपलट सकता है या टिक सकता है, दोनों ही जानकारी देते हैं
invarianceअर्थ-संरक्षक पैराफ़्रेज़कभी नहीं पलटना चाहिए; पलटना असंगति दर्शाता है

एनोटेटर हर प्रोब का उत्तर टिकता है (लेबल बना रहता है), पलटता है (लेबल बदल जाता है, और वे नया लेबल चुनते हैं और चाहें तो कारण बताते हैं), या कह नहीं सकते के रूप में देते हैं।

डैशबोर्ड

/boundary/dashboard पर (एडमिन एक्सेस):

  • लेबल के अनुसार सीमा संवेदनशीलता — हर लेबल पर लक्षित न्यूनतम संपादनों में से कितने पलटे। 90% पलटाव दर का मतलब है कि लेबल चाकू की धार पर टिका है; 10% का मतलब है कि वह छोटे बदलावों के आगे मज़बूत है।
  • एनोटेटर की इन्वेरिएंस संगति — पैराफ़्रेज़ प्रोब पर प्रति-एनोटेटर टिकने की दर, 60% से नीचे लाल रंग में चिह्नित।
  • लेबल कहाँ पलटते हैं — पुष्ट पलटावों की एक गैलरी, शब्द-स्तरीय diff और एनोटेटरों के तर्कों के साथ।

कॉन्ट्रास्ट-सेट निर्यात

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) योजना पर काम करती है।

आगे पढ़ें