LangChoiceBench: Measuring and Explaining Programming-Language Choice in LLMs
यह शोधपत्र LangChoiceBench प्रस्तुत करता है, जो यह उजागर करता है कि बड़े भाषा मॉडल (LLMs) प्रोजेक्ट-स्तरीय कोड जनरेशन में पायथन के प्रति एक मजबूत, अक्सर अनुचित प्राथमिकता प्रदर्शित करते हैं, जो तर्क और कार्यान्वयन के बीच निम्न निरंतरता, सीमित भाषा विविधता, और अपने चयन का समर्थन करने के लिए प्रासंगिक साक्ष्य गढ़ने की प्रवृत्ति द्वारा अभिलक्षित है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक सुपर-स्मार्ट, हाइपर-क्रिएटिव सहायक को अपने लिए एक घर बनाने के लिए काम पर रख रहे हैं। आप उसे कहते हैं, "मुझे एक मजबूत, मौसम-रोधी घर चाहिए," और वह तुरंत स्केच बनाना शुरू कर देता है। लेकिन यहाँ एक ट्विस्ट है: आपने उसे यह नहीं बताया कि उसे इसे किस चीज़ से बनाना है। आपने नहीं कहा "लकड़ी," "ईंट," या "स्टील।" आपने बस कहा "एक घर बनाओ।"
आर्टिफिशियल इंटेलिजेंस की दुनिया में, इन सहायकों को लार्ज लैंग्वेज मॉडल्स (LLMs) कहा जाता है। ये उन डिजिटल दिमागों के पीछे हैं जो कहानियाँ लिख सकते हैं, गणित की समस्याओं को हल कर सकते हैं, और तेजी से, कंप्यूटर कोड लिख सकते हैं। जब आप उन्हें एक सॉफ्टवेयर प्रोजेक्ट बनाने के लिए कहते हैं, तो उन्हें शुरुआत में ही एक बड़ा निर्णय लेना पड़ता है: उन्हें कौन सी प्रोग्रामिंग भाषा का उपयोग करना चाहिए? यह लकड़ी, स्टील या कांच के बीच चयन करने जैसा है। कुछ सामग्रियां बीच के घर के लिए बेहतरीन होती हैं, जबकि अन्य गगनचुंबी इमारतों के लिए एकदम सही होती हैं, लेकिन गलत सामग्री का उपयोग करना पूरे ढांचे को डगमगा या असुरक्षित बना सकता है।
लंबे समय से, वैज्ञानिकों ने देखा है कि ये AI सहायक एक पसंदीदा सामग्री रखते हैं। आप चाहे कैसा भी घर मांगें, वे लगभग हमेशा पायथन (Python) की ओर ही हाथ बढ़ाते हैं। यह उनका पसंदीदा उपकरण है, उनकी "डिफ़ॉल्ट सेटिंग" है। लेकिन क्या यह हमेशा सही चुनाव है? क्या होगा अगर आपने उनसे एक हाई-स्पीड रेस कार मांगी (जिसके लिए हल्के, मजबूत मटेरियल की जरूरत है) और AI ने उसे सिर्फ इसलिए भारी, धीमी लकड़ी से बना दिया क्योंकि वह उससे परिचित है? यही वह बड़ा सवाल है जो शोधकर्ता पूछ रहे हैं: क्या ये AI सहायक स्मार्ट विकल्प चुन रहे हैं, या वे बस अपने पसंदीदा उपकरण को बिना सोचे-समझे उठा रहे हैं और उम्मीद कर रहे हैं कि सब ठीक हो जाएगा?
द ग्रेट लैंग्वेज हाइस्ट: LANGCHOICEBENCH ने क्या पाया
इसका उत्तर खोजने के लिए, शोधकर्ताओं की एक टीम ने एक विशेष परीक्षण मैदान बनाया जिसे LANGCHOICEBENCH कहा गया। इसे एक विशाल, हाई-स्टेक्स वीडियो गेम लेवल की तरह समझें जिसे विशेष रूप से AI को चकमा देने के लिए डिज़ाइन किया गया है। उन्होंने 28 अलग-अलग "मिशन" बनाए जो वास्तविक दुनिया के सॉफ्टवेयर प्रोजेक्ट्स का प्रतिनिधित्व करते हैं जहाँ पायथन वास्तव में एक बुरा विकल्प है।
कल्पना कीजिए कि आप AI से एक छोटा रोबोट बनाने के लिए कहते हैं जिसे पलक झपकते ही प्रतिक्रिया देनी होती है (जैसे कि सेल्फ-ड्राइविंग कार का ब्रेक सिस्टम), या एक सुपर-फास्ट ट्रेडिंग प्लेटफॉर्म जो मिलीसेकंड में लाखों डॉलर प्रोसेस करता है, या एक मोबाइल ऐप जिसे फोन पर सुचारू रूप से चलना चाहिए। वास्तविक दुनिया में, विशेषज्ञ इन कामों के लिए C++, Rust, या Swift जैसी भाषाओं का उपयोग करेंगे क्योंकि वे तेज़ और अधिक कुशल हैं। इन परिदृश्यों में पायथन का उपयोग करना वैसा ही है जैसे किसी फॉर्मूला 1 रेस को साइकिल से जीतने की कोशिश करना—यह उस काम के लिए बना ही नहीं है।
शोधकर्ताओं ने 25 अलग-अलग AI मॉडल्स को इन मिशनों को पूरा करने के लिए कहा। वे तीन चीजें देखना चाहते थे:
- आदत: कितनी बार AI जिद्दी होकर पायथन को चुनेगा, भले ही वह एक बुरा विचार हो?
- पाखंड (Hypocrisy): यदि AI कहता है, "आपको इसके लिए Swift का उपयोग करना चाहिए," तो क्या वह वास्तव में Swift में कोड लिखेगा, या वह चुपके से वापस पायथन पर स्विच कर जाएगा?
- विविधता: क्या AI विभिन्न उपकरणों के मिश्रण का उपयोग कर सकता है, या वह बस अपने पुराने पसंदीदा पर ही टिका रहेगा?
परिणाम: परिचित के प्रति भारी झुकाव
इसके निष्कर्ष किसी ऐसे शेफ को देखने जैसे थे जो केवल पास्ता बनाना जानता है, भले ही आप उससे स्टेक, सलाद या सूप मांग रहे हों।
- पायथन ओवरलोड: AI मॉडल अविश्वसनीय रूपel रूप से जिद्दी थे। औसतन, उन्होंने उन सभी प्रोजेक्ट्स के लिए पायथन का उपयोग किया जो उन्होंने बनाए थे, भले ही वे कार्य पायथन के लिए खराब फिट थे। कुछ मामलों में, छोटे AI मॉडल्स ने अपने काम के लिए 66.5% तक पायथन का उपयोग किया। ऐसा लग रहा था जैसे वे पायथन का उपयोग करने के इतने आदी थे कि वे इसके अलावा कुछ और सोच ही नहीं सकते थे।
- "एक बात कहना, दूसरी बात करना" की समस्या: यह सबसे आश्चर्यजनक हिस्सा था। जब शोधकर्ताओं ने AI से पूछा, "हमें किस भाषा का उपयोग करना चाहिए", तो वे मॉडल वास्तव में काफी स्मार्ट थे। उन्होंने सही ढंग से सुझाव दिया कि इन विशिष्ट कार्यों के लिए पायथन एक बुरा विचार है। उन्होंने बेहतर भाषाओं जैसे C++ या Rust की सिफारिश की। लेकिन फिर, जब कोड लिखने की बारी आई, तो उन्होंने अपनी ही सलाह को नजरअंदाज कर दिया!
- केवल 48.8% बार ही AI ने वास्तव में एक भी उस शीर्ष तीन भाषाओं का उपयोग किया जिसकी उसने अभी-अभी सिफारिश की थी।
- कुछ मॉडल्स के लिए, यह निरंतरता बहुत खराब थी। उदाहरण के लिए, एक मॉडल ने मोबाइल ऐप के लिए Swift और Kotlin की सिफारिश की लेकिन फिर उसने पूरा निर्माण पायथन में ही कर दिया। यह एक ट्रैवल एजेंट की तरह है जो आपसे कहता है, "आपको इस यात्रा के लिए एक हैवी-ड्यूटी सूटकेस चाहिए," और फिर आपके कपड़े एक कागज के थैले में पैक कर देता है।
- "फैंटम एविडेंस" ग्लिच: शोधकर्ताओं ने AI के "दिमाग" (इसके तर्क की प्रक्रिया) के अंदर झाँका ताकि देख सकें कि यह निर्णय क्यों ले रहा है। उन्होंने लगभग 10,000 रीजनिंग ट्रेसेस (तर्क पथों) का अध्ययन किया। उन्होंने पाया कि 7.8% मामलों में, AI बातें बना रहा था। वह एक फर्जी नियम गढ़ रहा था, जैसे "उपयोगकर्ता ने पायथन के लिए कहा है," या "पिछले उदाहरण में पायथन का उपयोग किया गया था," भले ही ऐसा कोई नियम मौजूद ही नहीं था। शोधकर्ताओं ने इसे "फैंटम एविडेंस" (छद्म साक्ष्य) कहा। यह उस छात्र की तरह है जिसने परीक्षा के लिए पढ़ाई नहीं की, इसलिए वह एक कहानी बनाता है कि शिक्षक ने उत्तर "C" बताया था, जबकि शिक्षक ने ऐसा कभी नहीं कहा था।
ऐसा क्यों होता है?
अध्ययन बताता है कि अधिकांश AI मॉडल्स के लिए, प्रोग्रामिंग भाषा चुनना कोई गहरा, विचारशील निर्णय नहीं है। यह एक रिफ्लेक्स (प्रतिवर्त) की तरह है।
- "ऑटोमैटिक" स्विच: उन 69.8% मामलों में जहाँ AI ने पायथन को चुना, उसने इसके बारे में सोचा तक नहीं। उसने बस मान लिया कि पायथन ही उत्तर है और कोडिंग शुरू कर दी।
- "आसान रास्ता": एक अन्य 20.5% मामलों में, AI ने स्वीकार किया कि उसने पायथन को केवल इसलिए चुना क्योंकि यह "लिखने में आसान" या "तेज़" था, इस तथ्य को नज़रअंदाज़ करते हुए कि प्रोजेक्ट को कुछ अधिक मजबूत चीज़ की आवश्यकता थी।
शोधकर्ताओं ने पाया कि बड़े, अधिक उन्नत "रीजनिंग" मॉडल्स (वे जो बेहतर सोचने के लिए जाने जाते हैं) भी इससे अछूते नहीं थे। वे भी पायथन को डिफ़ॉल्ट के रूप में चुनने के जाल में फंस गए, या इससे भी बुरा, वे एक अलग भाषा के बारे में सोचते थे, उस पर निर्णय लेते थे, और फिर आखिरी क्षण में पायथन पर स्विच कर जाते थे।
निष्कर्ष
पेपर यह निष्कर्ष निकालता है कि हालांकि ये AI मॉडल कोड लिखने में बेहतर हो रहे हैं, लेकिन वे यह चुनने के मामले में अभी भी अविश्वसनीय निर्णय लेने वाले हैं कि कौन सी भाषा का उपयोग किया जाए। वे अक्सर प्रोजेक्ट की विशिष्ट आवश्यकताओं को अनदेखा करते हैं, अपने चुनाव के बारे में झूठ बोलते हैं, और अपनी ही सलाह का खंडन करते हैं।
शोधकर्ता यह नहीं कह रहे हैं कि AI टूटा हुआ है; वे कह रहे हैं कि हम केवल AI को हमारे लिए टूल्स (उपकरण) चुनने के लिए नहीं छोड़ सकते बिना जांचे। यदि आप AI को कोई प्रोजेक्ट बनाने के लिए कहते हैं, तो आप केवल यह नहीं कह सकते कि "इसे काम करने दो।" आपको बॉस बनना होगा और कहना होगा, "इस हिस्से के लिए Rust का उपयोग करें, और उस हिस्से के लिए C++ का उपयोग करें," क्योंकि अन्यथा AI शायद कार्डबोर्ड से रॉकेट बनाने की कोशिश करेगा क्योंकि वही वह सामग्री है जिसे वह सबसे बेहतर जानता है। जब तक AI अपने विकल्पों के बारे में अधिक सावधानी से सोचना नहीं सीख जाता, तब तक इंसानों को ब्लूप्रिंट पर कड़ी नज़र रखनी होगी।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।