इंसानों द्वारा मूल्यांकन (Human evaluation) सही तरीके से कैसे करें
इंसानी परख सबसे बेहतरीन पैमाना तभी बनती है जब इसे बहुत सावधानी से किया जाए: साफ़-सुथरे नियम (rubrics), एक से ज़्यादा मूल्यांकनकर्ता (raters), आपसी सहमति की जाँच, और पहचान छिपाकर तुलना (blind comparisons)।
60 सेकंड में
इंसानों द्वारा मूल्यांकन (Human evaluation) सही तरीके से कैसे करें
इंसानी परख सबसे बेहतरीन पैमाना तभी बनती है जब इसे बहुत सावधानी से किया जाए: साफ़-सुथरे नियम (rubrics), एक से ज़्यादा मूल्यांकनकर्ता (raters), आपसी सहमति की जाँच, और पहचान छिपाकर…
अच्छे ह्यूमन इवैल्यूएशन की चार आदतें
- 1
साफ़-सुथरा रूब्रिक (Rubric)
हर स्तर के उदाहरणों के साथ सटीक सवाल, और हर मूल्यांकनकर्ता के लिए एक जैसा ही रूब्रिक। - 2
सही मूल्यांकनकर्ता
वे लोग जो उस विषय और भाषा को अच्छी तरह जानते हों; पहले उन्हें उदाहरण दिखाकर ट्रेन करें। - 3
एक से ज़्यादा मूल्यांकनकर्ता
कम से कम कुछ सैंपल पर ज़रूर, ताकि आप उनकी आपसी सहमति को माप सकें। - 4
पहचान छिपाकर तुलना (Blind comparisons)
मूल्यांकनकर्ताओं को यह न पता हो कि कौन-सा जवाब किस मॉडल या वर्शन ने दिया है, और जवाबों का क्रम भी आगे-पीछे (shuffle) किया गया हो।
सहमति मापना: कोहेन का कप्पा (Cohen's kappa)
from collections import Counter
def cohens_kappa(a, b):
"""Cohen's kappa for two raters who labelled the same items."""
if len(a) != len(b) or not a:
raise ValueError("need two non-empty lists of the same length")
n = len(a)
observed = sum(x == y for x, y in zip(a, b)) / n
count_a, count_b = Counter(a), Counter(b)
labels = set(count_a) | set(count_b)
chance = sum(count_a[k] * count_b[k] for k in labels) / (n * n)
if chance == 1:
return float("nan") # both raters used one identical label: kappa is undefined
return (observed - chance) / (1 - chance)
rater_1 = ["good", "good", "good", "good", "good", "good", "bad", "bad", "bad", "bad"]
rater_2 = ["good", "good", "good", "good", "good", "bad", "bad", "bad", "bad", "good"]
print(round(cohens_kappa(rater_1, rater_2), 2)) # 0.58जब मूल्यांकनकर्ता आपस में असहमत हों
- एक ही व्यक्ति सब कुछ परखता है, और उसे पता होता है कि कौन-सा जवाब नए मॉडल का है
- बिना किसी उदाहरण के बस यह कह देना: "कुल गुणवत्ता को 1 से 5 तक रेट करें"
- जिस टीम ने मॉडल बनाया है, वही खुद सारी रेटिंग कर रही है
- सैंपल पर दो मूल्यांकनकर्ता, जवाबों का क्रम आगे-पीछे और मॉडल के नाम छिपे हुए
- हर स्तर के लिए हल किए गए उदाहरणों के साथ सटीक सवाल
- विषय के जानकार और यूज़र्स की भाषा बोलने वाले लोग
और देखें और पढ़ें
लैब
उन्हीं चीज़ों पर लेबल्स के दो सेट, एक कप्पा मान, और एक सुधरा हुआ रूब्रिक।
समस्या
- अपने टेस्ट सेट से 20 जवाब लें (या कोई भी 20 चैटबॉट जवाब जिनका आप इस्तेमाल कर रहे हों)। उनमें से यह पहचान हटा दें कि वे किस मॉडल से आए हैं और उनका क्रम आगे-पीछे कर दें।
- अच्छा, ठीक-ठाक और बुरा लेबल्स के साथ एक छोटा रूब्रिक लिखें, जिसमें हर एक का एक उदाहरण हो।
- आप और आपका दोस्त बिना आपस में बात किए सभी 20 को अलग-अलग लेबल करें।
- सीधी सहमति और कप्पा निकालने के लिए स्टार्टर स्क्रिप्ट चलाएँ।
- हर असहमति पर चर्चा करें। रूब्रिक को अपडेट करें, फिर दोनों मिलकर असहमत वाली चीज़ों को फिर से लेबल करें और दोबारा कप्पा का हिसाब लगाएँ।
प्रैक्टिस लैब
कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।
कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1सीधी सहमति ज़्यादा होने पर भी कप्पा कम क्यों हो सकता है?दिखाएं
कप्पा उस सहमति को घटा देता है जिसकी उम्मीद तुक्के से की जा सकती थी। अगर दोनों मूल्यांकनकर्ता ज़्यादातर चीज़ों को "अच्छा" ही कहते हैं, तो तुक्के से होने वाली सहमति पहले से ही बहुत ज़्यादा होती है, इसलिए तुक्के से ऊपर जाने की गुंजाइश बहुत कम बचती है। ऐसे में कभी-कभार आने वाले "बुरे" जवाबों पर थोड़ी-सी असहमति भी कप्पा को काफ़ी नीचे गिरा देती है। यह इसकी एक खूबी है: यह दिखाता है कि सबसे अहम मामलों में मूल्यांकनकर्ता अच्छी तरह सहमत नहीं हैं।
Q2रूब्रिक सुधारने के बाद कप्पा बढ़ गया। आपको सिर्फ़ उन्हीं चीज़ों पर इसका हिसाब लगाने से क्यों बचना चाहिए जिन पर आपने चर्चा की थी?दिखाएं
अब आप और आपका दोस्त उन खास चीज़ों पर एक-दूसरे की राय जान चुके हैं, इसलिए उन पर सहमति अब स्वतंत्र नहीं रह गई है। एक निष्पक्ष जाँच के लिए नई चीज़ों का इस्तेमाल करना चाहिए जिन पर आप में से किसी ने भी चर्चा न की हो। दूसरे राउंड के लिए कुछ बिल्कुल नए सवाल अलग बचाकर रखें।
अक्सर पूछे जाने वाले सवाल
यह छिपाना क्यों ज़रूरी है कि कौन-सा जवाब किस मॉडल ने दिया है?
क्योंकि लोग अपनी उम्मीदों और पूर्वाग्रहों के प्रभाव में आ जाते हैं। अगर मूल्यांकनकर्ताओं को पता हो कि कोई जवाब नए और महंगे मॉडल से आया है, तो वे उसे ज़्यादा रियायत देकर अच्छी रेटिंग दे सकते हैं। पहचान छिपाकर और क्रम बदलकर की गई तुलना इस प्रभाव को खत्म कर देती है।
क्या इंसानों का मूल्यांकन हमेशा LLM जज से बेहतर होता है?
सही जानकारों द्वारा सावधानी से किया गया इंसानी मूल्यांकन आमतौर पर सबसे बेहतरीन पैमाना माना जाता है। लेकिन बिना ट्रेनिंग वाले, जल्दबाज़ी में रहने वाले या गैर-जानकार मूल्यांकनकर्ता एक अच्छे से सेट किए गए LLM जज से भी बदतर हो सकते हैं। काम की गुणवत्ता सिर्फ़ इंसान होने से नहीं, बल्कि सही प्रक्रिया अपनाने से आती है।
क्या हो अगर मेरे पास दो से ज़्यादा विकल्प हों, जैसे अच्छा, ठीक-ठाक, बुरा?
Cohen's kappa कितनी भी श्रेणियों के साथ काम करता है, और ऊपर दिया गया फ़ंक्शन उन्हें संभाल लेता है। क्रमबद्ध पैमानों के लिए जहाँ "अच्छा बनाम ठीक-ठाक" की असहमति "अच्छा बनाम बुरा" की तुलना में छोटी मानी जाती है, वहाँ वेटेड कप्पा (weighted kappa) मामूली अंतर के लिए भी कुछ क्रेडिट देता है।
दो मूल्यांकनकर्ताओं को कम से कम कितने जवाबों को परखना चाहिए?
इतने कि असहमतियों का पैटर्न साफ़ दिखने लगे, और इतने कि किसी एक जवाब से पूरे नतीजे पर बहुत बड़ा असर न पड़े। एक सैंपल से शुरुआत करें, कप्पा निकालें, असहमतियों को पढ़ें, और अगर नतीजा साफ़ न हो तो दोनों से कुछ और जवाबों को परखने के लिए कहें।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।