Skip to content

विषमांगी एनोटेटर कवरेज

अलग-अलग आइटमों को अलग-अलग संख्या में एनोटेटर असाइन करें। एक डिफ़ॉल्ट सीमा, गुणवत्ता निगरानी के लिए एक स्तरीकृत ओवरलैप नमूना, असहमति पर अनुकूली बूस्ट, प्रति-एनोटेटर कोटा और स्वचालित निर्णय रूटिंग कॉन्फ़िगर करें।

विषमांगी कवरेज आपको एक समान सीमा के बजाय अलग-अलग आइटमों को अलग-अलग संख्या में एनोटेटर असाइन करने देती है। आम शोध डिज़ाइन यह है कि अधिकांश आइटमों पर एक एनोटेटर हो, और गुणवत्ता निगरानी के लिए 5–10% नमूने पर दो या तीन एनोटेटर ओवरलैप करें। Potato इसे num_annotators_per_item और per_annotator_quota कॉन्फ़िग ब्लॉकों के माध्यम से व्यक्त करता है।

प्रति-आइटम एनोटेटर सीमाएँ

num_annotators_per_item विहित कुंजी है। यह एक समान सीमा के लिए एकल पूर्णांक स्वीकार करती है, या एक डिफ़ॉल्ट, एक ओवरलैप नमूना और एक वैकल्पिक अनुकूली बूस्ट वाली संरचित मैपिंग:

yaml
num_annotators_per_item:
  default: 1
  overlap_sample:
    fraction: 0.1
    count: 3
    stratify_by: domain
    seed: 42
  adaptive:
    enabled: true
    disagreement_threshold: 0.5
    boost_to: 3
  min: 1

max_annotations_per_item अब num_annotators_per_item: <int> का एक पदावनत उपनाम है।

ओवरलैप नमूना

overlap_sample ब्लॉक गुणवत्ता निगरानी के लिए आइटमों के एक नियतात्मक उपसमुच्चय पर सीमा बढ़ा देता है। नमूनाकरण आरंभ के समय एक बार होता है, और चुने गए आइटमों पर required_annotations की मुहर लग जाती है ताकि असाइनमेंट तर्क उन्हें उच्च-कवरेज के रूप में मानता रहे।

फ़ील्डप्रकारविवरण
fraction(0, 1] में फ़्लोटनमूना लेने वाले आइटमों का अनुपात
countint ≥ 2नमूना किए गए आइटमों के लिए एनोटेटर सीमा (default से अधिक होनी चाहिए)
stratify_byस्ट्रिंग (वैकल्पिक)नमूने को स्तरीकृत करने के लिए उपयोग किया जाने वाला आइटम-डेटा फ़ील्ड
seedint (वैकल्पिक)RNG सीड; डिफ़ॉल्ट रूप से वैश्विक random_seed

जब stratify_by सेट होता है, तो अंश प्रति स्तर लागू होता है, ताकि प्रत्येक श्रेणी आनुपातिक रूप से योगदान दे।

अनुकूली बूस्ट

अनुकूली बूस्ट उस आइटम की सीमा का विस्तार करता है जिसके आरंभिक एनोटेटर असहमत हुए थे। एक बार जब किसी आइटम पर कम से कम दो एनोटेशन हो जाते हैं और उसका असहमति स्कोर disagreement_threshold को पार कर लेता है, तो उसकी सीमा boost_to तक बढ़ा दी जाती है और आइटम असाइनमेंट कतार में फिर से प्रवेश करता है। बूस्ट प्रति आइटम केवल एक बार होता है।

प्रति-एनोटेटर कोटा

per_annotator_quota यह नियंत्रित करता है कि प्रत्येक एनोटेटर को कितने आइटम असाइन किए जाएँ, जो प्रति-आइटम सीमाओं से स्वतंत्र है:

yaml
per_annotator_quota:
  default: 100
  by_user:
    alice: 30
  by_user_role:
    expert: 30
    novice: 200
 
user_roles:
  alice: expert
  carol: novice

समाधान क्रम: by_user[uid]by_user_role[user_roles[uid]]default

निर्णय स्वचालित रूटिंग

जब निर्णय ब्लॉक सक्षम होता है, तो अपनी सीमा तक पहुँचने वाले ओवरलैप-नमूना आइटम स्वचालित रूप से स्कोर किए जाते हैं और यदि सहमति agreement_threshold से नीचे गिरती है तो उन्हें निर्णय कतार में धकेल दिया जाता है। निम्न-गुणवत्ता वाले आइटम तभी सामने आ जाते हैं जब नमूना संतृप्त हो जाता है, न कि तब जब कोई निर्णयकर्ता मैन्युअल रूप से कतार का पुनर्निर्माण करता है।

yaml
adjudication:
  enabled: true
  adjudicator_users: [admin]
  min_annotations: 2
  agreement_threshold: 0.75

सहमति का निरीक्षण

एक बार ओवरलैप-नमूना आइटम संतृप्त हो जाने पर, सहमति आँकड़े /admin/iaa पर उपलब्ध होते हैं, जो प्रत्येक स्कीमा के annotation_type के लिए उपयुक्त मीट्रिक सेट की गणना करता है — उदाहरण के लिए नामिक योजनाओं के लिए Cohen's और Fleiss' kappa, क्रमसूचक योजनाओं के लिए weighted kappa, और स्पैन के लिए टोकन-स्तरीय kappa के साथ span F1। इन मीट्रिक का क्या अर्थ है, यह जानने के लिए एनोटेटरों के बीच सहमति गाइड देखें।

उदाहरण

एक चलाने योग्य प्रदर्शन examples/advanced/heterogeneous-coverage/ पर मौजूद है। रिपॉज़िटरी रूट से:

bash
python potato/flask_server.py start examples/advanced/heterogeneous-coverage/config.yaml -p 8000

यह दो डोमेन में फैले 20 आइटमों का उपयोग करता है, डोमेन द्वारा स्तरीकृत 3-एनोटेटर ओवरलैप के लिए 20% का नमूना लेता है, सीमा 0.5 पर एक अनुकूली बूस्ट सक्षम करता है, दो विशेषज्ञता स्तर परिभाषित करता है, और निम्न-सहमति वाले आइटमों को निर्णय में रूट करता है।

संबंधित

कार्यान्वयन विवरण के लिए, स्रोत दस्तावेज़ देखें।