Skip to content
Guides7 min read

जज को जाँचना: इंसानी और मॉडल का तर्क, आमने-सामने

कोई LLM जज उतना ही भरोसेमंद है जितने भरोसेमंद वे मानव लेबल हैं जिनके सामने आपने उसे परखा। एक ही आइटम पर किसी व्यक्ति की सोच की शृंखला को मॉडल की शृंखला के बग़ल में रखिए, और अपने जज को ऐसे लेबलों के सामने जाँचिए जो अपने विश्वास अंतराल साथ लिए चलते हैं।

Potato Team

बड़े पैमाने पर LLM का मूल्यांकन करने वाला हर व्यक्ति देर-सबेर किसी LLM को ही जज बना लेता है, और देर-सबेर यह भी पूछता है कि क्या जज पर भरोसा किया जा सकता है। आम जवाब यह है कि उसे मानव लेबलों के सामने जाँच लीजिए। पर वह जाँच उतनी ही अच्छी है जितने अच्छे वे मानव लेबल हैं, और “जज इंसानों से सहमत है” कमज़ोर दावा है अगर इंसान आपस में असहमत थे और किसी ने लिखकर नहीं रखा कि कितने। बात इसी खाई को पाटने की है: यह मापना कि मॉडल कैसे तर्क करता है, यह मापना कि व्यक्ति कैसे तर्क करता है, और दोनों की ईमानदारी से तुलना करना।

Potato 2.7 एक ही विचार के इर्द-गिर्द बना है: एनोटेशन टूल को यह मापना चाहिए कि निर्णय कैसे लिया गया, सिर्फ़ उसे दर्ज नहीं करना चाहिए। दिलचस्प बात यह है कि यह दोनों तरह के निर्णायकों पर लागू होता है।

जज को प्रमाणित करने में दिक़्क़त क्या है

मानक तरीक़ा वाजिब है। आपके पास इतना बड़ा टास्क है कि हाथ से लेबल नहीं हो सकता, इसलिए आप किसी मॉडल को प्रॉम्प्ट देकर उससे अंक निकलवाते हैं। अंकों पर भरोसा करने से पहले आप एक नमूना लेते हैं, उसे इंसानों से लेबल करवाते हैं, और जज तथा इंसानों के बीच सहमति नापते हैं। अगर Cohen's κ काफ़ी ऊँचा हो, तो आप आगे बढ़ जाते हैं।

कमज़ोर जगह आख़िरी क़दम है। वह κ आपके जज की तुलना एक मानव लेबल से करता है, आम तौर पर दो या तीन एनोटेटरों पर लिए गए बहुमत से। और बहुमत बिना एरर बार वाला बिंदु-अनुमान है। वह “sarcastic” ठीक उसी भरोसे के साथ कहता है चाहे तीनों एनोटेटर फ़ौरन सहमत हो गए हों या दो ने लंबी बहस के बाद तीसरे को दबा दिया हो।

इसलिए जब आप बताते हैं कि आपका जज इंसानों से κ = 0.71 पर सहमत है, तो आप ऐसी संख्या के साथ सहमति बता रहे हैं जिसकी अपनी अनिश्चितता आपने कभी नापी ही नहीं। अगर कठिन आइटमों पर मानव लेबल सिक्का उछालने के क़रीब हैं, तो उन आइटमों पर κ ज़्यादातर शोर ही नाप रहा है, और कितनी भी प्रॉम्प्ट इंजीनियरिंग उसे हिला नहीं पाएगी।

हमने पहले जज कैलिब्रेशन और जज–मानव संरेखण की कार्यविधि पर लिखा है। 2.7 जो जोड़ता है वह दूसरा आधा हिस्सा है: उस तुलना के मानव पक्ष को भी अपनी अनिश्चितता के साथ चलाना।

पहले मानव लेबलों को एरर बार दीजिए

साइकोमेट्रिक्स इंजन आपके मानव एनोटेशन पर एक आइटम रिस्पॉन्स थ्योरी मॉडल फ़िट करता है और हर लेबल को अंतराल सहित एक पोस्टीरियर के रूप में बताता है (sarcastic, p = 0.94 [0.88 – 0.97]), जो सिर्फ़ कितनों ने वोट दिया इसके बजाय यह तौलता है कि किसने वोट दिया।

Truth Serum इसमें पीयर-प्रेडिक्शन स्कोरिंग जोड़ता है, जो उन आइटमों को चिह्नित करता है जहाँ भीड़ आश्वस्त होने के बावजूद शायद ग़लत है।

अब जज की तुलना की शक्ल बदल जाती है। इसके बजाय कि

जज 71% आइटमों पर बहुमत लेबल से सहमत है

आप कह सकते हैं

जज उन 94% आइटमों पर मानव पोस्टीरियर से सहमत है जहाँ मानव लेबल आश्वस्त है (p > 0.9), और उन 52% आइटमों पर जहाँ नहीं है। कम विश्वास वाले वे आइटम पूरे सेट का 18% हैं।

दूसरा कथन ऐसे ढंग से काम आता है जैसे पहला नहीं आता। वह बताता है कि आपका जज आसान मामलों पर ठीक है और कठिन मामलों पर अविश्वसनीय, और यह भी बताता है कि आपके डेटा का कितना हिस्सा कठिन है। साथ ही वह एक असहज पर काम की बात भी बताता है: सचमुच अस्पष्ट आइटमों पर शायद कोई ग्राउंड ट्रुथ है ही नहीं जिससे जज सहमत हो सके, और वहाँ ऊँचे κ के पीछे भागना शोर के पीछे भागना है।

जज ↔ मानव संरेखण डैशबोर्ड इसी काम के लिए है, और इसीलिए मानव-प्रक्रिया वाली सुविधाएँ और एजेंट-मूल्यांकन वाली सुविधाएँ दो नहीं, एक ही रिलीज़ हैं।

एक ही आइटम पर दो सोच की शृंखलाएँ

तुलना का दूसरा आधा हिस्सा तर्क ख़ुद है।

Think-Aloud मोड दर्ज करता है कि कोई व्यक्ति किसी लेबल तक कैसे तर्क करता है। एनोटेटर काम करते-करते बोलता है; स्पीच-टू-टेक्स्ट लोकल चलता है; ट्रांसक्रिप्ट शब्दशः और बिना सारांश के सहेजा जाता है, क्योंकि थिंक-अलाउड प्रोटोकॉल को दूसरे शब्दों में ढालना उसी चीज़ को नष्ट कर देता है जिसे आप जुटाने निकले थे।

एक शब्दशः बोला गया तर्क-ट्रांसक्रिप्ट, पहचाने गए वॉइस लेबल के साथइंसानी सोच की शृंखला, शब्दशः दर्ज

प्रोसेस रिवॉर्ड एनोटेशन दर्ज करता है कि कोई मॉडल कैसे तर्क करता है। मॉडल की सोच की शृंखला क़दमों में बाँट दी जाती है, और हर क़दम को अच्छा/बुरा/तटस्थ रिवॉर्ड संकेत मिलता है, जो प्रोसेस रिवॉर्ड मॉडल का प्रशिक्षण संकेत है।

yaml
annotation_schemes:
  - annotation_type: process_reward
    name: cot_review
    description: "Rate each step of the model's reasoning."
    steps_key: reasoning_steps

एक ही आइटम। दो सोच की शृंखलाएँ। उन्हें एक-दूसरे के बग़ल में रखिए।

इस तुलना से असल में क्या पता चलता है

ज़ाहिर इस्तेमाल यह ढूँढ़ना है कि मॉडल कहाँ उस व्यक्ति से अलग तरह से तर्क करता है, और यह साफ़ कहने लायक है कि इससे फ़र्क़ क्यों पड़ता है।

आख़िरी जवाब पर अंक देने से यह फ़र्क़ नहीं दिखता कि मॉडल को सही जवाब सही वजह से मिला या ग़लत वजह से। किसी व्यंग्य वाले टास्क पर कोई व्यक्ति कह सकता है, “यहाँ काम ‘thanks so much’ कर रहा है। दो दिन की देरी के लिए कोई इतना ज़ोर देकर शुक्रिया नहीं कहता।” (“the ‘thanks so much’ is doing the work here. Nobody thanks you that hard for a two-day delay.”) कोई मॉडल उसी लेबल तक इसलिए पहुँच सकता है कि टेक्स्ट में विस्मयादिबोधक चिह्न है। दोनों सही गिने जाएँगे। सामान्यीकृत उनमें से सिर्फ़ एक होगा।

यह आप लेबलों से नहीं पकड़ सकते। यह आप तर्क से पकड़ सकते हैं, और इसीलिए दोनों का होना इस झंझट के लायक है।

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

एक ईमानदार सीमा। Potato आपको दोनों दर्ज करने की सतहें देता है और उन्हें आमने-सामने रख देता है। वह इंसान की सोच की शृंखला और मॉडल की शृंखला के बीच कोई स्वचालित समानता मेट्रिक नहीं गिनता, और हमने जान-बूझकर ऐसा कुछ नहीं भेजा। “ये दो तर्क-निशान आपस में सहमत हैं” का मतलब क्या है, यह खुला शोध सवाल है, और हमारी गढ़ी हुई कोई संख्या किसी भी संख्या के न होने से बुरी होती, क्योंकि वह आधिकारिक दिखती और मतलब बहुत कम रखती। असली चीज़ कलाकृति है; मेट्रिक आपको ख़ुद तय करनी है।

सब मिलाकर

2.7 में एक बचाव करने लायक मूल्यांकन पाइपलाइन मोटे तौर पर ऐसी दिखती है।

  1. एक नमूना इंसानों से लेबल कराइए, साइकोमेट्रिक्स चालू रखते हुए। हर लेबल को एक पोस्टीरियर और एक अंतराल मिलता है। अस्पष्ट आइटम चुपचाप ग़लत लेबल होने के बजाय अस्पष्ट के रूप में पहचान लिए जाते हैं।
  2. Truth Serum चलाइए ताकि वे आइटम पकड़ में आएँ जहाँ आश्वस्त भीड़ शायद ग़लत है।
  3. दिशानिर्देश ठीक कीजिए वहाँ जहाँ कोडबुक-गड़बड़ी पकड़ने वाला ऋणात्मक विभेदन चिह्नित करता है, और सबसे अच्छा हो कि यह किसी नॉर्मिंग रूम में हो, जहाँ आप सहमति को क़रीब आते हुए देख सकें।
  4. जज को उन्हीं लेबलों के सामने कैलिब्रेट कीजिए, और संरेखण को एक अकेली संख्या के बजाय मानव विश्वास पर सशर्त बताइए।
  5. सिर्फ़ नतीजा नहीं, तर्क भी जाँचिए, उन आइटमों पर जहाँ जज और इंसान असहमत हैं।

हर क़दम YAML है, ख़ुद होस्ट किया जाता है, और निःशुल्क है। पहले तीन क़दमों को किसी LLM की ज़रूरत ही नहीं।

इनमें से कुछ भी अपने आप किसी LLM जज को भरोसेमंद नहीं बना देता। यह जो करता है वह भरोसेमंद होने के दावे को असली बना देता है: एक ऐसा कथन जिस पर अंतराल लगा हो, ऐसे मानव लेबलों के सामने जिन पर भी अंतराल हैं, और ऐसे आइटमों पर जिनकी कठिनाई के बारे में आप कुछ ईमानदार कह सकते हैं।

यह “हमारा जज मानव मूल्यों से संरेखित है” से नीची कसौटी है, और कहीं ज़्यादा काम की।

आगे पढ़ें