Skip to content
Announcements6 min read

Potato 2.2: घटनाएँ, entity linking, निर्यात, और 55 सर्वे उपकरण

Potato 2.2.0 में 9 नए एनोटेशन स्कीमा, एक pluggable निर्यात व्यवस्था, MACE से दक्षता का अनुमान, 55 जाँचे-परखे सर्वे उपकरण, और दूर रखे डेटा स्रोत जुड़े हैं।

Potato Team

ध्यान दें: यह पोस्ट Potato 2.2 का वह रूप बताती है जो रिलीज़ के वक़्त था। कुछ कॉन्फ़िगरेशन key और सुविधाएँ बाद के संस्करणों में बदल चुकी हैं। कॉन्फ़िगरेशन का मौजूदा सिंटैक्स ताज़ा दस्तावेज़ में देखें।

Potato 2.2.0 आ गया है, और यह दोनों तरफ़ जगह बढ़ाता है: आप किस चीज़ पर एनोटेशन कर सकते हैं, और गुणवत्ता कैसे बनाए रखते हैं। इसमें 9 नए एनोटेशन स्कीमा, एक pluggable निर्यात व्यवस्था, MACE से दक्षता का अनुमान, 55 जाँचे-परखे सर्वे उपकरण, और दूर रखे डेटा स्रोत जुड़े हैं।

नए एनोटेशन स्कीमा

घटना एनोटेशन

2.2 में स्कीमा के हिसाब से सबसे बड़ी चीज़ N-ary घटना एनोटेशन है। हर घटना में एक trigger span होता है (वह शब्द जो घटना का संकेत देता है) और argument span होते हैं जिन पर तयशुदा semantic भूमिकाएँ लगती हैं। एक hub-and-spoke चाप-चित्र हर trigger को उसके argument से जोड़ देता है।

yaml
annotation_schemes:
  - annotation_type: event_annotation
    name: events
    span_schema: entities
    event_types:
      - type: "ATTACK"
        trigger_labels: ["EVENT_TRIGGER"]
        arguments:
          - role: "attacker"
            entity_types: ["PERSON", "ORGANIZATION"]
            required: true
          - role: "target"
            entity_types: ["PERSON", "ORGANIZATION", "LOCATION"]
            required: true

इससे information extraction, semantic role labeling, और knowledge graph बनाने का काम सधता है, जिनके लिए पहले अलग से टूल बनाने पड़ते थे।

घटना एनोटेशन के दस्तावेज़ पढ़ें →

Entity linking

Span एनोटेशन अब बाहरी knowledge base की ओर इशारा कर सकते हैं। एनोटेटर टेक्स्ट चुनता है, लेबल लगाता है, फिर एक search modal से Wikidata, UMLS या अपने KB में मेल खाती entity ढूँढ़कर उससे जोड़ देता है।

yaml
annotation_schemes:
  - annotation_type: span
    name: ner
    labels: [PERSON, ORGANIZATION, LOCATION]
    entity_linking:
      enabled: true
      knowledge_bases:
        - name: wikidata
          type: wikidata
          language: en

जिन entity का मतलब साफ़ न हो उनके लिए multi-select मोड भी है, और एक ही कार्य में कई knowledge base जोड़े जा सकते हैं।

Entity linking के दस्तावेज़ पढ़ें →

Triage, pairwise, coreference, और बाक़ी

v2.2 में छह और एनोटेशन टाइप जुड़े हैं:

  • Triage डेटा की तेज़ छँटाई के लिए accept/reject/skip इंटरफ़ेस देता है, अपने आप आगे बढ़ने और कीबोर्ड शॉर्टकट के साथ
  • Pairwise तुलना में A/B का दो-तरफ़ा चुनाव या एक स्लाइडर मिलता है, preference learning और RLHF डेटा के लिए
  • बातचीत के ट्री में श्रेणीबद्ध ट्री एनोटेशन होता है, हर node पर रेटिंग और रास्ता चुनने की सुविधा के साथ
  • Coreference chain से एक ही चीज़ की ओर इशारा करने वाले उल्लेख समूह में रखे जा सकते हैं, और chain दिखाने के लिए निशान भी बनते हैं
  • Segmentation mask में fill, eraser और brush टूल आए हैं, पिक्सल-स्तर के इमेज एनोटेशन के लिए
  • टूटे हुए span (allow_discontinuous: true) से टेक्स्ट के अलग-अलग टुकड़े एक साथ चुने जा सकते हैं

एनोटेशन में ज़्यादा समझदारी

MACE से दक्षता का अनुमान

MACE एक Variational Bayes EM एल्गोरिथ्म चलाकर एक साथ दो चीज़ों का अनुमान लगाता है: असली लेबल क्या है, और हर एनोटेटर कितना दक्ष है (0.0 से 1.0 के बीच एक अंक)। यह भरोसेमंद एनोटेटर पहचानता है, बेपरवाह जवाब देने वालों को पकड़ता है, और बेहतर अनुमानित लेबल देता है।

yaml
mace:
  enabled: true
  trigger_every_n: 10
  min_annotations_per_item: 3

यह पीछे अपने आप चलता रहता है और admin डैशबोर्ड तथा adjudication व्यवस्था से जुड़ा है।

MACE के दस्तावेज़ पढ़ें →

विकल्पों को उभारना

यह नई AI सुविधा सामग्री पढ़कर उन विकल्पों को उभार देती है जिनके सही होने की सबसे ज़्यादा संभावना है, उन कार्यों में जहाँ विकल्प गिने-चुने हों। ऊपर के top-k विकल्प पूरी गहराई में और साथ में एक तारे के साथ दिखते हैं; बाक़ी धुँधले पड़ जाते हैं।

yaml
ai_support:
  option_highlighting:
    enabled: true
    top_k: 3
    dim_opacity: 0.4

विकल्प उभारने के दस्तावेज़ पढ़ें →

विविधता के हिसाब से क्रम

Sentence-transformer embedding मिलते-जुलते आइटम को गुच्छों में बाँट देती है, फिर round-robin नमूना बारी-बारी से अलग-अलग गुच्छों से आइटम उठाता है। एनोटेटर को ज़्यादा विविधता मिलती है, जिससे उसका मन लगा रहता है और विषय के दायरे की बेहतर पूर्ति होती है।

yaml
assignment_strategy: diversity_clustering
diversity_ordering:
  enabled: true
  prefill_count: 100

विविधता के क्रम के दस्तावेज़ पढ़ें →

निर्यात की व्यवस्था

नया export CLI (python -m potato.export) एक ही कमांड में एनोटेशन को 6 मानक प्रारूपों में बदल देता है:

bash
python -m potato.export --config config.yaml --format coco --output ./export/
python -m potato.export --config config.yaml --format yolo --output ./export/
python -m potato.export --config config.yaml --format conll_2003 --output ./export/

समर्थित प्रारूप: COCO, YOLO, Pascal VOC, CoNLL-2003, CoNLL-U, और segmentation mask। अगर आपको कोई ऐसा प्रारूप चाहिए जो सूची में नहीं है, तो BaseExporter का subclass बनाकर अपना लिख लीजिए।

निर्यात प्रारूपों के दस्तावेज़ पढ़ें →

दूर रखे डेटा स्रोत

एनोटेशन का डेटा URL, S3, Google Drive, Dropbox, Hugging Face डेटासेट, Google Sheets, और SQL डेटाबेस से लोड कीजिए:

yaml
data_sources:
  - type: huggingface
    dataset: "squad"
    split: "train"
 
  - type: s3
    bucket: "my-annotation-data"
    key: "datasets/items.jsonl"

बड़े डेटासेट के लिए यह थोड़ा-थोड़ा और चरणों में लोड करना भी सँभालता है, डेटा को स्थानीय रूप से cache करता है, और credential को config के बजाय environment variable में रखता है।

दूर रखे डेटा स्रोतों के दस्तावेज़ पढ़ें →

सर्वे उपकरण

55 जाँचे-परखे प्रश्नावलियों की एक लाइब्रेरी, जिन्हें आप अध्ययन से पहले और बाद के चरणों में लगा सकते हैं:

yaml
phases:
  prestudy:
    type: prestudy
    instrument: "tipi"      # 10-item personality questionnaire
 
  poststudy:
    type: poststudy
    instrument: "phq-9"     # 9-item depression screening

ये 8 श्रेणियों में फैली हैं: व्यक्तित्व (BFI-2, TIPI), मानसिक स्वास्थ्य (PHQ-9, GAD-7), भाव (PANAS), आत्म-छवि (RSE), सामाजिक रुख़ (SDO-7, MFQ), जवाब देने की शैली, छोटे रूप, और बड़े सर्वे से ली गई जनसांख्यिकी की सूचियाँ (ANES, GSS, ESS)।

सर्वे उपकरणों के दस्तावेज़ पढ़ें →

छोटे सुधार

  • Keyframe interpolation के साथ वीडियो में object tracking
  • PDF पन्नों पर bounding box एनोटेशन
  • अलग AI कॉन्फ़िग फ़ाइल का समर्थन
  • फ़ॉर्म के लेआउट grid में सुधार

v2.2 पर अपग्रेड करना

bash
pip install --upgrade potato-annotation

आपके v2.0 और v2.1 के config बिना बदलाव के चलते रहेंगे। जो कुछ नया है वह अलग कॉन्फ़िग ब्लॉक के ज़रिए, चुनने पर ही लागू होता है।

शुरुआत करना

पूरा changelog, और जो कॉन्फ़िग key बदली हैं, रिपॉज़िटरी के v2.2.0 रिलीज़ नोट्स में हैं।


सवाल या सुझाव हैं? हमारे Discord से जुड़िए या GitHub पर issue खोलिए।