Gauge dependence and structured-output corruption in sign-branched repetition penalties: measurements across models, inference stacks, and alternative repetition controls
यह शोध पत्र यह प्रदर्शित करता है कि LLM इन्फरेंस इंजनों में व्यापक रूप से उपयोग किया जाने वाला साइन-ब्रांचिंग रिपिटिशन पेनल्टी (sign-branching repetition penalty) मौलिक रूप से त्रुटिपूर्ण है क्योंकि यह मनमाने लॉगिट ज़ीरो-पॉइंट (logit zero-point) पर निर्भर करता है, जिससे विभिन्न मॉडलों के बीच टोकन चयन में भारी अस्थिरता और स्ट्रक्चर्ड JSON आउटपुट में विनाशकारी विफलताएं होती हैं, एक ऐसी समस्या जिसे रॉ लॉगिट्स (raw logits) के बजाय सामान्यीकृत लॉग-प्रोबेबिलिटीज़ (normalized log-probabilities) पर पेनल्टी लागू करके हल किया गया है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपके पास एक सुपर-स्मार्ट रोबोट लेखक है जिसे कहानियाँ सुनाना बहुत पसंद है। कभी-कभी, वह एक लूप में फंस जाता है, एक ही शब्द को बार-बार दोहराता रहता है जैसे कोई टूटा हुआ रिकॉर्ड। इसे ठीक करने के लिए, इंजीनियरों ने रोबोट को एक "रिपिटिशन पेनल्टी" (पुनरावृत्ति दंड) का नॉब दिया है। विचार सरल है: यदि रोबोट उस शब्द को बोलने की कोशिश करता है जिसे उसने अभी इस्तेमाल किया है, तो उस नॉब को घुमाकर उस शब्द की संभावना को कम कर दें, जिससे रोबोट आगे बढ़ने के लिए मजबूर हो जाए।
वर्षों से, दुनिया के लगभग हर रोबोट लेखक में (Hugging Face से लेकर vLLM और llama.cpp तक) ठीक इसी तरह का एक ही प्रकार का नॉब इस्तेमाल किया जा रहा है। लेकिन यह शोध पत्र एक चौंकाने वाला रहस्य उजागर करता है: यह विशिष्ट नॉब टूटा हुआ है क्योंकि यह गलत नंबर को देख रहा है।
टूटा हुआ दिशा-सूचक (The Broken Compass)
इस गड़बड़ी को समझने के लिए, कल्पना कीजिए कि रोबोट का मस्तिष्क एक विशाल मानचित्र है जहाँ हर संभावित शब्द का एक स्कोर है। सकारात्मक (Positive) स्कोर का अर्थ है "मैं इसे कहना चाहता हूँ," और नकारात्मक (Negative) स्कोर का अर्थ है "मैं इसे बिल्कुल नहीं चाहता।" यह मानचित्र लचीला है; रोबोट इस पूरे मानचित्र को बाएँ या दाएँ खिसका सकता है (हर स्कोर में एक स्थिर संख्या जोड़कर) बिना अपने अगले शब्द को चुने बिना। यह एक मानचित्र पर पूरे शहर को खिसकाने जैसा है; शहर के अंदर की सड़कें अभी भी एक-दूसरे के सापेक्ष उसी क्रम में रहती हैं, भले ही वह शहर अब एक अलग देश में हो।
टूटा हुआ नॉब यह तय करने की कोशिश करता है कि दोहराए गए शब्द को कितना दंड दिया जाए, इसके लिए वह यह जाँचता है कि उसका स्कोर सकारात्मक है या नकारात्मक।
- यदि स्कोर सकारात्मक है, तो यह संख्या को एक पेनल्टी फैक्टर से विभाजित करता है (इसे छोटा बनाता है)।
- यदि स्कोर नकारात्मक है, तो यह संख्या को पेनल्टी फैक्टर से गुणा करता है (इसे और अधिक नकारात्मक बनाता है)।
समस्या यहाँ है: "सकारात्मक" और "नकारात्मक" के बीच की रेखा मनमानी है। क्योंकि रोबोट अपने व्यवहार को बदले बिना अपने पूरे मानचित्र को बाएँ या दाएँ खिसका सकता है, इसलिए एक शब्द जो एक रोबोट के लिए "सकारात्मक" है, वह दूसरे रोबोट के लिए "नकारात्मक" हो सकता है, या एक ही रोबोट पर भी ऐसा हो सकता है यदि मानचित्र थोड़ा सा खिसक जाए।
यह शोध पत्र सिद्ध करता है कि यह "साइन-ब्रांच" (यह जाँचना कि संख्या सकारात्मक है या नकारात्मक) एक ऐसे निर्देशांक (coordinate) को देख रहा है जिसे रोबोट के प्रशिक्षण ने वास्तव में कभी स्थिर नहीं किया। यह कार चलाने की कोशिश करने जैसा है जहाँ आप डैशबोर्ड के "लाल" या "नीले" क्षेत्र के आधार पर स्टीयरिंग करते हैं, जबकि पूरा डैशबोर्ड अपने आप आगे-पीछे खिसक सकता है।
"एक ही नॉब, अलग परिणाम" का कोलाहल (The Chaos of "Same Knob, Different Results")
इस खिसकने वाले मानचित्र के कारण, नॉब की एक ही सेटिंग (जैसे 1.3) अलग-अलग रोबोट्स पर बिल्कुल अलग चीजें करती है।
- एक रोबोट (जैसे
gpt2) पर, 1.3 की सेटिंग लगभग 84% दोहराए गए शब्दों को दंडित कर सकती है। - दूसरे रोबोट (जैसे
Qwen2.5-Coder-7B) पर, वही 1.3 की सेटिंग शायद ही किसी को दंडित करे, या उन्हें बिल्कुल अलग तरीके से दंडित करे।
लेखकों ने एक ही रोबोट को लेकर उसके मानचित्र को बाएँ और दाएँ खिसकाकर इसका परीक्षण किया। उन्होंने पाया कि 1.3 की मानक सेटिंग के साथ, रोबдно ने केवल इसलिए अपना निर्णय बदल लिया क्योंकि मानचित्र थोड़ा सा खिसक गया था, और रोबोट ने अपने 58% से 96% विकल्पों को बदल दिया!
- यदि आप एक "सबट्रैक्टिव" (घटाने वाला) पेनल्टी का उपयोग करते हैं (केवल एक संख्या घटाना), तो रोबोट समान रहता है।
- यदि आप मानक "मल्टीप्लिकेटिव" (गुणात्मक) साइन-ब्रांच का उपयोग करते हैं, तो रोबोट पागल हो जाता है, और लगभग हर शब्द को चुनने के अपने निर्णय को बदल देता है।
इसका मतलब है कि यदि आप अपने रोबोट को 1.3 की सेटिंग के साथ काम करने के लिए ट्यून करते हैं, तो आप वास्तव में उसे उस विशिष्ट, आकस्मिक "जीरो-पॉइंट" के लिए ट्यून कर रहे हैं जो उस विशेष रोबोट का है। यदि आप उस रोबोट को किसी दूसरे कंप्यूटर पर ले जाते हैं या उसका सॉफ्टवेयर अपडेट करते हैं, तो वही सेटिंग उसे पूरी तरह से खराब कर सकती है।
JSON की तबाही (The JSON Disaster)
इस बग का सबसे खतरनाक हिस्सा यह है कि यह "स्ट्रक्चर्ड आउटपुट" (संरचित आउटपुट) को नष्ट कर देता है। यह तब होता है जब आप रोबोट को कोड या JSON (डेटा के लिए एक विशिष्ट प्रारूप) लिखने के लिए कहते हैं, जिसे सख्त नियमों का पालन करना चाहिए, जैसे कि हर कर्ली ब्रैकेट { को बंद करना या कॉमा , जोड़ना।
इन नियमों के लिए रोबोट को कुछ प्रतीकों को दोहराना आवश्यक होता है। लेकिन क्योंकि पेनल्टी कच्चे नंबरों (raw numbers) को देखती है, इसलिए यह अक्सर एक "आवश्यक नियम" को "गलत पुनरावृत्ति" समझ लेती है।
- लेखकों ने 200 वास्तविक दुनिया के JSON स्कीमा पर इसका परीक्षण किया।
- 1.3 की मानक सेटिंग के साथ, वैध, काम करने वाला JSON आउटपुट दर 97% से गिरकर मात्र 23% रह गई।
- रोबोट व्याकरण तोड़ने लगा, ब्रैकेट बंद करना भूल गया या कॉमा छोड़ दिया, क्योंकि पेनल्टी गलत नंबरों पर बहुत अधिक आक्रामक थी।
यह केवल एक सिमुलेशन अनुमान नहीं था; लेखकों ने इसे पांच अलग-अलग मॉडल्स पर सीधे मापा, जिनमें कोड-विशेषज्ञ मॉडल भी शामिल थे, और हर प्रमुख सॉफ्टवेयर स्टैक (Hugging Face, vLLM, और llama.cpp) में यही क्रैश देखा गया।
समाधान: पहले नॉर्मलाइज़ करें (The Fix: Normalize First)
शोध पत्र एक सरल, सिद्ध समाधान प्रदान करता है। कच्चे, खिसकने वाले नंबरों को देखने के बजाय, पेनल्टी को नॉर्मलाइज्ड प्रोबेबिलिटीज (वास्तविक प्रतिशत संभावना कि एक शब्द चुना जाएगा) को देखना चाहिए।
- प्रोबेबिलिटीज हमेशा 0 और 1 के बीच होती हैं, इसलिए वे इधर-उधर नहीं खिसकतीं।
- जब लेखकों ने इन नॉर्मलाइज्ड नंबरों पर पेनल्टी लागू की, तो कोलाहल गायब हो गया।
- "फ्लिप रेट" (वह दर जिस पर रोबोट ने केवल एक स्लाइड के कारण अपना निर्णय बदला) गिरकर 0.00 हो गई।
- 1.3 पर JSON सफलता दर वापस बढ़कर 97% हो गई।
Hugging Face के पास पहले से ही LogitNormalization नामक एक टूल है जो यह करता है, लेकिन यह डिफ़ॉल्ट रूप से बंद रहता है और पेनल्टी के बाद चलता है। शोध पत्र सुझाव देता है कि यदि आप इसे चालू करते हैं और इसे पेनल्टी से पहले चलाते हैं, तो आपको एक स्थिर, विश्वसनीय परिणाम मिलता है जो हर मॉडल पर एक ही तरह से काम करता है।
निष्कर्ष (The Bottom Line)
"मल्टीप्लिकेटिव रिपिटिशन पेनल्टी" जो वर्तमान में लगभग हर AI इंजन में भेजी जा रही है, मौलिक रूप से त्रुटिपूर्ण है क्योंकि यह एक ऐसी संख्या रेखा पर निर्भर करती है जो खिसक सकती है। यह एक सार्वभौमिक नॉब नहीं है; यह एक टूटा हुआ डायल है जो हर मशीन पर अलग परिणाम देता है।
- यह क्या करता है: यह AI द्वारा लिखे जाने वाले कंटेंट में भारी, अप्रत्याशित बदलाव लाता है (58-96% विकल्प बदलना) और JSON जैसे संरचित प्रारूपों को तोड़ देता है (वैधता को 97% से 23% तक गिरा देता है)।
- यह क्या नहीं है: यह कोई फीचर नहीं है; यह एक बग है जिसे वर्षों से उद्योग में कॉपी किया गया है।
- समाधान: नंबरों को पहले नॉर्मलाइज़ करें। यह खिसकने वाले मानचित्र की समस्या को दूर करता है और पेनल्टी को सुसंगत बनाता है, चाहे आप किसी भी रोबोट का उपयोग कर रहे हों।
लेखकों ने इसे कई मॉडल्स और सॉफ्टवेयर स्टैक्स में मापा है, और परिणाम स्पष्ट हैं: वर्तमान मानक टूटा हुआ है, और इसका समाधान तैयार है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।