When LLMs Invent Rust Crates: An Empirical Study of Hallucination Patterns and Mitigation
यह शोध पत्र LLM-जनित कोड में रस्ट (Rust) क्रेट हैलुसिनेशन (hallucinations) पर पहला बड़े पैमाने का अनुभवजन्य अध्ययन प्रस्तुत करता है, जो यह प्रकट करता है कि पायथन या जावास्क्रिप्ट के विपरीत, हैलुसिनेशन दरें मॉडलों में सुसंगत हैं और मापदंडों (parameters) के प्रति असंवेदनशील हैं, साथ ही कोड की गुणवत्ता से समझौता किए बिना इन सुरक्षा जोखिमों को कम करने के लिए प्रॉम्प्ट इंजीनियरिंग रणनीतियों का भी मूल्यांकन करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक बहुत ही बुद्धिमान, विद्वान लाइब्रेरियन से घर बनाने में मदद करने के लिए कह रहे हैं। आप उनसे विशिष्ट उपकरण और सामग्री मांगते हैं, जैसे कि "SuperHammer ब्रांड का एक हथौड़ा" या "StrongBolt फैक्ट्री का एक बोल्ट।"
कंप्यूटर प्रोग्रामिंग की दुनिया में, इन "उपकरणों" को crates (कोड के पैकेज) कहा जाता है। वह लाइब्रेरियन एक AI (एक लार्ज लैंग्वेज मॉडल) है। यह शोध पत्र जिस समस्या की जांच करता है वह यह है कि कभी-कभी लाइब्रेरियन बहुत अधिक आत्मविश्वासी हो जाता है और ऐसे उपकरण बना देता है जो वास्तव में अस्तित्व में ही नहीं हैं। वे कह सकते हैं, "यहाँ एक SuperHammer है," लेकिन जब आप उसे खरीदने के लिए दुकान पर जाते हैं, तो वह वहाँ नहीं होता। कंप्यूटर की दुनिया में, इसे hallucination (भ्रम) कहा जाता है।
यह शोध पत्र पहला बड़ा अध्ययन है जो यह देखता है कि यह कितनी बार होता है जब AI Rust नामक भाषा में कोड लिख रहा होता है।
शोधकर्ताओं ने जो पाया है, उसे सरल कहानियों में यहाँ दिया गया है:
1. "नकली उपकरण" की समस्या
शोधकर्ताओं ने 14 अलग-अलग AI लाइब्रेरियन (कुछ मुफ्त, कुछ सशुल्क) से 2,794 विभिन्न कार्यों के लिए Rust कोड लिखने को कहा। उन्होंने पाया कि AI द्वारा सुझाए गए हर 5 में से लगभग 1 उपकरण नकली था।
- आश्चर्य: आप सोच सकते हैं कि एक बड़ा, अधिक स्मार्ट लाइब्रेरियन (एक बड़ा AI मॉडल) कम गलतियाँ करेगा। लेकिन अध्ययन में पाया गया कि आकार से ज्यादा फर्क नहीं पड़ा। एक छोटा AI भी लगभग उतनी ही संख्या में नकली उपकरण बनाता था जितना कि एक विशाल AI।
- टेम्परेचर टेस्ट: AI में, "तापमान" (temperature) यह है कि AI को कितना रचनात्मक या रैंडम होने की अनुमति है। आमतौर पर, AI को अधिक रचनात्मक बनाने से वह अधिक गलतियाँ करता है। लेकिन Rust में, "रचनात्मकता के डायल" को बदलने से इस बात में कोई खास बदलाव नहीं आया कि AI कितने नकली उपकरण बनाता था। सेटिंग्स का उपयोग करने के बावजूद गलती की दर स्थिर बनी रही।
2. AI कैसे भ्रमित होता है (पैटर्न)
शोधकर्ताओं ने नकली उपकरणों का बारीकी से निरीक्षण किया और पाया कि AI केवल यादृच्छिक (random) नाम नहीं बना रहा था। वह बहुत विशिष्ट तरीकों से भ्रमित हो रहा था:
- "स्टैंडर्ड लाइब्रेरी" का मिश्रण: Rust में बुनियादी उपकरणों का एक बॉक्स होता है जो भाषा के साथ मुफ्त आता है (जैसे कि एक बना हुआ हथौड़ा)। AI अक्सर भूल जाता था कि ये मुफ्त हैं और उन्हें एक विशेष, सशुल्क टूल के रूप में "ऑर्डर" करने की कोशिश करता था। यह वैसा ही था जैसे किसी हार्डवेयर स्टोर से हथौड़ा खरीदने के लिए कहना जबकि आपके पास पहले से ही अपनी जेब में एक हथौड़ा हो।
- "लगभग सही" नाम: जब AI ने कोई नकली उपकरण बनाया, तो उसका नाम आमतौर पर असली नाम के बहुत करीब था।
- असली Rust स्टाइल:
http-response(हाइफ़न के साथ)। - AI स्टाइल:
httpresponse(बिना हाइफ़न के)। - यह ऐसा है जैसे AI "apple" शब्द जानता है लेकिन वह इसे "aple" या "apples" लिखने की गलती करता रहता है। यह एक मामूली चूक है, न कि पूरी तरह से नया आविष्कार।
- असली Rust स्टाइल:
- "उधार लिए गए" नाम: AI कभी-कभी अन्य भाषाओं (जैसे Python) या ऑपरेटिंग सिस्टम (जैसे Windows) से नाम उठा लेता था और उन्हें Rust में उपयोग करने की कोशिश करता था, भले ही वे वहां के न हों।
3. क्या हम इसे ठीक कर सकते हैं? (शमन/Mitigation)
शोधकर्ताओं ने इन गलतियों को रोकने के लिए दो सरल तरकीबें आजमाईं:
- "ढूँढने की" तरकीब (RAG): उन्होंने काम शुरू करने से पहले AI को सभी असली उपकरणों की एक फोनबुक दे दी।
- "दोबारा जाँचने की" तरकीब (Self-Refinement): उन्होंने AI को कोड लिखने के लिए कहा, फिर रुकने और खुद से पूछने के लिए कहा, "क्या मैंने कोई नकली उपकरण बनाया है? यदि हाँ, तो इसे ठीक करें।"
परिणाम: इन तरकीबों ने थोड़ी मदद की, लेकिन पर्याप्त नहीं।
- "दोबारा जाँचने" वाली तरकीब सबसे अच्छी थी, जिससे नकली उपकरण लगभग 10-15% कम हो गए।
- "ढूँढने की" तरकीब ने बहुत कम प्रभाव डाला।
- मुख्य बात: आप केवल AI को "सावधान रहने" के लिए कहकर या उसे एक सूची देकर यह उम्मीद नहीं कर सकते कि समस्या समाप्त हो जाएगी। AI अभी भी एक स्थिर दर पर नकली उपकरण बनाता रहता है।
यह क्यों महत्वपूर्ण है
शोध पत्र बताता है कि हालांकि ये नकली उपकरण हमेशा सुरक्षा आपदा का कारण नहीं बनते (क्योंकि Rust के लिए आपको यह स्पष्ट रूप से पुष्टि करनी होती है कि आप एक टूल डाउनलोड करना चाहते हैं), वे एक बड़ी परेशानी हैं। वे कोड को तोड़ देते हैं, निर्माण (build) विफल कर देते हैं, और डेवलपर्स का समय बर्बाद करते हैं क्योंकि वे उन टूल्स को खोजने की कोशिश करते हैं जो मौजूद ही नहीं हैं।
संक्षेप में: अध्ययन दिखाता है कि Rust कोड लिखते समय AI अभी भी नकली सॉफ्टवेयर टूल्स बनाने के प्रति प्रवृत्त है, और केवल AI को बड़ा, स्मार्ट या प्रॉम्प्ट के साथ अधिक सावधान बनाना इस समस्या को रोकने के लिए पर्याप्त नहीं है। हमें इन गलतियों को होने से पहले पकड़ने के लिए बेहतर, अधिक विशिष्ट उपकरणों की आवश्यकता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।