Skip to content
Announcements7 min read

Potato 2.6: गुणात्मक डेटा विश्लेषण मिलता है एजेंट मूल्यांकन से

Potato 2.6 जारी: गुणात्मक कोडिंग के लिए QDA मोड, LLM-as-judge अंशांकन और संरेखण वर्कफ़्लो, ट्रैजेक्टरी संपादन जो SFT और DPO प्रशिक्षण डेटा बनाता है, 3 गुना तेज़ बूट, और GPL-3.0-or-later में पुनः लाइसेंसिंग।

Potato Team

Potato 2.6 जारी हो गया है। यह दो गुरुत्व-केंद्रों वाला रिलीज़ है। एक ओर, यह Potato को गुणात्मक डेटा विश्लेषण में ले आता है—साक्षात्कार प्रतिलेखों, कोडबुक और मेमो की वह दुनिया जो अब तक मालिकाना डेस्कटॉप उपकरणों में बसी रही है। दूसरी ओर, यह एजेंट-मूल्यांकन टूलकिट को केवल स्कोर देने के बजाय प्रशिक्षण डेटा उत्पन्न करने की दिशा में और गहरा करता है। और इन दोनों के नीचे, यह उल्लेखनीय रूप से तेज़ हो जाता है और अपना लाइसेंस बदल लेता है।

यदि आप साथ-साथ देखते रहे हैं, तो पिछले कुछ सप्ताहों की पोस्टों ने इन सुविधाओं को एक-एक करके पहले से दिखाया था। यह वही रिलीज़ है जो इन्हें वास्तव में पेश करता है।

Potato 2.6, गुणात्मक डेटा विश्लेषण और एजेंट मूल्यांकन के बीच विभाजितPotato 2.6

पहले एक बात: Potato अब GPL-3.0 है

Potato को PolyForm Shield से GPL-3.0-or-later में पुनः लाइसेंस दिया गया है। यह वैसा बदलाव है जिसे दबा देना आसान है पर ऐसा नहीं करना चाहिए, क्योंकि यह बदल देता है कि आपको इस परियोजना के साथ क्या करने की अनुमति है।

GPL-3.0-or-later के अंतर्गत आप Potato का उपयोग, उसमें संशोधन और उसका पुनर्वितरण कर सकते हैं—व्यावसायिक रूप से भी—बशर्ते व्युत्पन्न कार्य GPL के अधीन ही रहें। पुराने PolyForm Shield लाइसेंस में एक गैर-प्रतिस्पर्धा प्रतिबंध था, जिसके कारण कुछ अपनाने वाले (और उनकी कानूनी टीमें) हिचकिचाते थे। GPL ऐसा लाइसेंस है जिसे वे टीमें पहले से समझती हैं। यदि कोई लाइसेंसिंग सवाल आपकी प्रयोगशाला या कंपनी को रोक रहा था, तो उस सवाल का अब एक परिचित उत्तर है। विवरण के लिए About पृष्ठ देखें।

QDA मोड

गुणात्मक शोधकर्ताओं के लिए सबसे बड़ी बात है QDA मोड: एक ही स्विच जो Potato को एक सहयोगात्मक गुणात्मक-कोडिंग कार्यक्षेत्र में बदल देता है।

yaml
qda_mode:
  enabled: true            # codebook + memos + cases + search
codebook_invivo_key: i     # mint a code from a text selection

इसे सक्षम करने से एक जीवंत कोडबुक, in-vivo कोडिंग, विश्लेषक मेमो, केस और पूर्ण-पाठ खोज एक साथ बन जाते हैं, जिनकी डिफ़ॉल्ट सेटिंग्स एक अकेले विश्लेषक द्वारा पूरे कॉर्पस को कोड करने के लिए तैयार की गई हैं। आप पढ़ते-पढ़ते कोडबुक को बढ़ा और पुनर्व्यवस्थित कर सकते हैं, किसी हाइलाइट किए गए अंश से सीधे एक कीस्ट्रोक में कोड बना सकते हैं, किसी भी उद्धरण से निजी या साझा मेमो जोड़ सकते हैं, उद्धरणों को प्रतिभागी के अनुसार केस में समूहित कर सकते हैं, और पूरे कॉर्पस पर FTS5 खोज चला सकते हैं। यह NVivo, ATLAS.ti, MAXQDA और Dedoose का एक निःशुल्क, ओपन-सोर्स, वेब-आधारित विकल्प है, जो आपके बाकी एनोटेशन कार्य के साथ उसी एक उपकरण में बैठता है।

हमने इसके डिज़ाइन के बारे में गुणात्मक कोडिंग को Potato में लाना में लिखा था। पूरा संदर्भ: QDA मोड दस्तावेज़

LLM-as-judge: अंशांकन, संरेखण और ट्राइएज

मॉडल के आउटपुट को आँकने के लिए LLM का उपयोग अब आम बात है। उस पर कितना भरोसा किया जाए, यही वह हिस्सा है जिसे 2.6 संबोधित करता है—तीन सुविधाओं के साथ जो मिलकर काम करती हैं।

Judge Calibration आपके डेटा को एक या अधिक LLM जजों से स्वतः लेबल करता है, अनुभवजन्य विश्वास के लिए प्रत्येक आइटम को k बार सैंपल करता है, फिर एक ब्लाइंड मानव पास चलाता है (एनोटेटर कभी मॉडल के लेबल नहीं देखते) और सटीकता, Cohen's तथा Fleiss' kappa, Krippendorff's alpha, और अपेक्षित अंशांकन त्रुटि की रिपोर्ट देता है। यह "क्या मुझे इस जज पर भरोसा करना चाहिए?" का उत्तर ऐसे आँकड़ों से देता है जिनका आप बचाव कर सकें। हमने इसे क्या आप अपने LLM जज पर भरोसा कर सकते हैं? में कवर किया।

Judge Alignment एक ही जज को आपके मानव गोल्ड लेबल के सामने ट्यून करता है, और रुब्रिक को परिष्कृत करते जाने के साथ Cohen's kappa पर नज़र रखता है, तथा एनोटेशन के दौरान मानव लेबल के बगल में एक वैकल्पिक इनलाइन फैसला दिखा सकता है।

The Triage Queue एनोटेशन कतार को प्रति-आइटम संकेत (एजेंट की कोई त्रुटि, प्रोडक्शन में थम्स-डाउन, कोई कम स्कोर) के आधार पर प्राथमिकता देता है, ताकि समीक्षक आगमन-क्रम के बजाय सबसे संदिग्ध ट्रेस पहले देखें।

yaml
triage:
  enabled: true
  signal_field: quality_score
  invert_signal: true
assignment_strategy: priority

संरेखण और ट्राइएज मिलकर एक सक्रिय मूल्यांकन लूप बनाते हैं, जिससे हम लूप को बंद करना में गुज़रे। संदर्भ दस्तावेज़: Judge Calibration, Judge Alignment, Triage Queue

SFT और DPO के लिए ट्रैजेक्टरी संपादन

नया trajectory_edit स्कीमा एनोटेटरों को एक एजेंट ट्रेस के चरणों को फिर से लिखने देता है—एक लाइव शब्द-स्तरीय diff के साथ—ताकि किसी ग़लत तर्क चरण को ठीक किया जा सके, किसी टूल कॉल की मरम्मत की जा सके, या अंतिम उत्तर को मज़बूत किया जा सके। इसके बाद trajectory_correction एक्सपोर्टर प्रत्येक मूल/सुधारित जोड़े को प्रशिक्षण डेटा में बदल देता है: trajectory_sft.jsonl में पर्यवेक्षित फ़ाइन-ट्यूनिंग लक्ष्य, और trajectory_dpo.jsonl में DPO वरीयता जोड़े। बिना संपादित ट्रेस छोड़ दिए जाते हैं, क्योंकि किसी अपरिवर्तित ट्रैजेक्टरी पर प्रशिक्षण कुछ नहीं सिखाता।

यह Potato को केवल मूल्यांकन उपकरण नहीं, बल्कि प्रशिक्षण-डेटा उत्पादन उपकरण भी बना देता है। पूरा विवरण मूल्यांकन से प्रशिक्षण डेटा तक में है; संदर्भ ट्रैजेक्टरी संपादन दस्तावेज़ में।

eval_trace प्रदर्शन

एजेंट ट्रेस को तेज़ी से पढ़ना अपने आप में एक समस्या है। नया eval_trace प्रदर्शन एक ही ट्रेस को तीन समकालिक फलकों (Reasoning, Function Calls, और Final Answer) में बाँट देता है ताकि मूल्यांकनकर्ता एक ही नज़र में देख सके कि एजेंट ने क्या सोचा, क्या किया और क्या उत्पन्न किया। यह सतत मूल्यांकन के लिए बनाया गया है, जहाँ ट्रेस किसी webhook, Langfuse पोलर, या किसी निगरानी-अधीन डायरेक्टरी के ज़रिए आते रहते हैं और आते ही उन्हें आँकना होता है। eval_trace दस्तावेज़ देखें।

वर्कफ़्लो और परिनियोजन

परिचालन सुविधाओं का एक समूह इस रिलीज़ को पूरा करता है:

  • विषमांगी कवरेज। अलग-अलग आइटमों को अलग-अलग संख्या में एनोटेटर सौंपें: अधिकांश पर एक, एक स्तरीकृत नमूने पर तीन, अनुकूली असहमति बूस्ट और स्वचालित निर्णयन रूटिंग के साथ। पूर्ण ओवरलैप से परे में कवर किया गया; संदर्भ विषमांगी कवरेज दस्तावेज़ में।
  • परित्यक्त असाइनमेंट पुनः प्राप्त करें। Prolific द्वारा छोड़े गए या QC-अवरुद्ध कर्मियों द्वारा छोड़े गए आइटमों को वापस पाएं, विन्यास-योग्य प्रतिधारण और idempotent पुनःप्राप्ति के साथ। कार्य असाइनमेंट देखें।
  • कस्टम बैच असाइनमेंट। आइटमों के पूर्वनिर्धारित बैच विशिष्ट एनोटेटरों को सौंपें, जो दोहराव-दौर अध्ययन डिज़ाइनों के लिए बनाया गया है।
  • रिवर्स-प्रॉक्सी URL प्रीफ़िक्स। किसी रिवर्स प्रॉक्सी के पीछे Potato को एक उप-पथ के अंतर्गत परोसें। रिवर्स प्रॉक्सी दस्तावेज़ देखें।

तेज़, और एक स्कीमा पुनर्नामकरण

दो बदलाव हर परियोजना को प्रभावित करते हैं।

बूट लगभग 3 गुना तेज़ है। मशीन-लर्निंग स्टैक अब स्टार्टअप पर ही पहले से लोड नहीं होता; इसके बजाय वह पहली बार उपयोग पर लोड होता है। इम्पोर्ट समय लगभग 6.5s से घटकर 2s हो गया, 50,000-आइटम का बूट लगभग 10 सेकंड से 5.7 हो गया, और निवासी मेमोरी लगभग 750MB से 365MB हो गई। कंटेनर पुनरारंभ तेज़ हैं और क्षैतिज स्केलिंग के लिए मेमोरी फ़ुटप्रिंट लगभग आधा हो गया है।

annotation_type: highlight अब span है। एक माइग्रेशन मौजूद है, और मौजूदा span विन्यास अप्रभावित रहते हैं। प्रकार का नाम बदलकर पुराने विन्यासों को अपडेट करें। "span" समूचे NLP में मानक शब्द है, और इस पुनर्नामकरण से एनोटेशन प्रकार उसके अनुरूप हो जाता है।

पीछे छूटे रिलीज़: 2.5 और 2.4.5

2.4 और 2.6 के बीच कुछ रिलीज़ यहाँ बिना किसी पोस्ट के निकल गए। उनकी मुख्य बातें उल्लेख के योग्य हैं, खासकर इसलिए कि गुणात्मक-कोडिंग का कार्य ही QDA मोड का आधार है:

2.5.0 गुणात्मक-कोडिंग की लहर थी। इसने Krippendorff's alpha के साथ-साथ Cohen's kappa और Fleiss' kappa, codebook और quotation_report एक्सपोर्टर, तथा कोड सह-घटना के लिए एडमिन विश्लेषण और एक कोड्स-बाय-एट्रिब्यूट क्रॉसटैब जोड़े। ये वही विश्वसनीयता और एक्सपोर्ट के टुकड़े हैं जिन पर QDA मोड बना है।

2.4.5 सोलो मोड में एनोटेशन दिशानिर्देशों को बेहतर बनाने के लिए एक सत्यापित-परिष्करण फ्रेमवर्क, एक कॉन्फ़िग वैलिडेटर CLI (python -m potato.validate_cli), और एक पाथ-ट्रैवर्सल बायपास के लिए सुरक्षा सुधार (GHSA-q9m2-fhv9-3jcf) लेकर आया। यदि आप किसी पुराने 2.4.x पर हैं, तो अपग्रेड करने पर वह सुधार मिल जाता है।

पूरा इतिहास नया क्या है पृष्ठ पर मौजूद है।

इसे पाना

bash
pip install --upgrade potato-annotation

फिर Potato को साथ दिए गए किसी उदाहरण (examples/advanced/qda-mode-example/, examples/ai-assisted/judge-calibration/, examples/agent-traces/trajectory-correction/) की ओर इंगित करें ताकि नए दृश्य चलते हुए दिख सकें। यहाँ का हर रिलीज़ इस उपकरण का उपयोग करने वाले किसी व्यक्ति के सवाल से शुरू हुआ; यदि 2.6 आपके मन में कोई सवाल जगाए, तो GitHub रिपॉज़िटरी उसे पूछने की जगह है।