CLARC: C/C++ Benchmark for Robust Code Search
यह शोध पत्र CLARC को प्रस्तुत करता है, जो 6,700 से अधिक क्वेरी-कोड युग्मों और आइडेंटिफायर एनोनिमाइजेशन (identifier anonymization) एवं लो-लेवल भाषाओं में कंपाइलेशन जैसे चुनौतीपूर्ण मूल्यांकन सेटिंग्स वाला एक सुदृढ़ C/C++ कोड सर्च बेंचमार्क है, जो यह प्रकट करता है कि वर्तमान अत्याधुनिक मॉडल वास्तविक अर्थ संबंधी समझ के बजाय लेक्सिकल फीचर्स (lexical features) पर अत्यधिक निर्भर हैं।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक विशाल, अराजक पुस्तकालय के लाइब्रेरियन हैं जिसमें लाखों किताबें एक गुप्त कोड में लिखी गई हैं। आपका काम एक संरक्षक (patron) द्वारा दिए गए विवरण को सुनकर ठीक वही किताब ढूंढना है जिसकी उन्हें आवश्यकता है।
लंबे समय से, लाइब्रेरियन (AI मॉडल) इसे करने में बहुत अच्छे होते जा रहे हैं, लेकिन ज्यादातर इसलिए क्योंकि वे धोखाधड़ी कर रहे थे। उन्होंने कहानी के वास्तविक अर्थ को समझने के बजाय, किताबों के शीर्षकों और स्पाइन के रंगों (वेरिएबल के नाम और कीवर्ड्स) को देखना सीख लिया है।
यह शोध पत्र एक नया, बहुत कठिन परीक्षण पेश करता है जिसे CLARC कहा जाता है, यह देखने के लिए कि क्या ये लाइब्रेरियन वास्तव में बुद्धिमान हैं या वे केवल अनुमान लगाने में बहुत अच्छे हैं।
यहाँ बताया गया है कि शोधकर्ताओं ने क्या किया, कुछ रोजमर्रा के उपमाओं (analogies) का उपयोग करते हुए:
1. समस्या: "शीर्षक-निर्भर" लाइब्रेरियन
कोड खोजने वाले अधिकांश पिछले परीक्षणों में सरल भाषाओं (जैसे Python) और आसान प्रश्नों का उपयोग किया गया था। AI मॉडल सीख गए थे कि यदि कोई उपयोगकर्ता "कैलकुलेटर" के लिए पूछता है, तो उन्हें उस कोड को खोजना चाहिए जिसमें "कैलकुलेटर" या "जोड़" (add) शब्द हो।
- दोष: यदि आप किताब का शीर्षक बदलकर "द मैथ मशीन" (The Math Machine) कर देते हैं लेकिन कहानी बिल्कुल वैसी ही रखते हैं, तो पुराने लाइब्रेरियन भ्रमित हो जाते हैं और वे उसे नहीं ढूंढ पाते। वे अर्थ (semantics) के बजाय लेक्सिकल संकेतों (lexical cues) (विशिष्ट शब्दों) पर निर्भर करते हैं।
2. समाधान: "CLARC" चुनौती
शोधकर्ताओं ने CLARC (C/C++ लैंग्वेज रिट्रीवल विद एनोनिमाइज्ड कोड) नामक एक नया बेंचमार्क बनाया। इसे एक "स्ट्रेस टेस्ट" के रूप में समझें। उन्होंने वास्तविक दुनिया के कोड (जैसे वास्तविक सॉफ़्टवेयर के ब्लूप्रिंट) लिए और तीन विशिष्ट "जाल" बनाए यह देखने के लिए कि क्या AI अभी भी सही किताब ढूंढ सकता है।
जाल A: "आंखों पर पट्टी" (आइडेंटिफायर एनोनिमाइजेशन)
कल्पना कीजिए कि एक किताब ली गई और उसके हर पात्र के नाम को बदलकर "व्यक्ति A," "व्यक्ति B," और "वस्तु C" कर दिया गया।
- परीक्षण: AI को "एक नायक द्वारा राजकुमारी को बचाने" की कहानी ढूंढनी है, भले ही अब टेक्स्ट कहता हो कि "व्यक्ति A, व्यक्ति B को बचाता है।"
- परिणाम: AI मॉडल क्रैश हो गए। वे सही किताब नहीं ढूंढ सके क्योंकि विशिष्ट नाम गायब थे। इसने साबित कर दिया कि वे कहानी नहीं पढ़ रहे थे; वे केवल नामों का मिलान कर रहे थे।
जाल B: "अनुवाद" (असेंबली और वेब-असेंबली)
कल्पना कीजिए कि एक जटिल उपन्यास को एक ऐसी भाषा में अनुवादित किया गया है जो पूरी तरह से संख्याओं और प्रतीकों (जैसे मोर्स कोड या बाइनरी) से बनी है, जहाँ मूल शब्द पूरी तरह से गायब हैं।
- परीक्षण: AI को "केक पकाने" के बारे में कहानी ढूंढनी है जब टेक्स्ट अब केवल रासायनिक प्रतिक्रियाओं और ओवन के तापमान की एक सूची है।
- परिणाम: AI खो गया। इसने दिखाया कि जब कोड को उसके कच्चे, लो-लेवल निर्देशों तक सीमित कर दिया जाता है, तो ये मॉडल बहुत खराब प्रदर्शन करते हैं।
जाल C: "डिपेंडेंसी" पहेली
कुछ कोड एक एकल प्रदर्शन (solo act) की तरह होते हैं; अन्य कोड एक बैंड की तरह होते जहाँ मुख्य गायक को लय बनाने के लिए एक ड्रमर और एक गिटारवादक की आवश्यकता होती है।
- परीक्षण: शोधकर्ताओं ने परीक्षण किया कि क्या AI मुख्य गीत को ढूंढ सकता है भले ही उसे लय को समझने के लिए ड्रमर और गिटारवादक के शीट म्यूजिक को देखना पड़े।
- परिणाम: AI संघर्ष करता रहा जब कोड जटिल था और अन्य सहायक कार्यों (helper functions) पर निर्भर था, जिससे पता चला कि उसे "बड़ी तस्वीर" (big picture) देखने में कठिनाई होती है।
3. निष्कर्ष: "वे धोखाधड़ी कर रहे हैं!"
शोधकर्ताओं ने आज उपलब्ध छह सबसे स्मार्ट AI मॉडलों का परीक्षण किया।
- सामान्य परिस्थितियों में: मॉडल बहुत अच्छे थे, और 90%+ बार सही कोड ढूंढ लेते थे।
- "आंखों पर पट्टी" और "अनुवाद" के जाल में: उनका प्रदर्शन तेजी से गिर गया। कुछ की सटीकता लगभग शून्य तक गिर गई।
बड़ा निष्कर्ष: वर्तमान अत्याधुनिक AI मॉडल उन छात्रों की तरह हैं जो विषय को समझने के बजाय परीक्षा के उत्तर रट लेते हैं। यदि आप प्रश्न की शब्दावली बदलते हैं (कोड को एनोनिमाइज करते हैं) या प्रश्न को एक अलग भाषा में पूछते हैं (असेंबली में कंपाइल करते हैं), तो वे विफल हो जाते हैं। वे वास्तविक तर्क (logic) के बजाय सतही पैटर्न (surface-level patterns) (उपयोग किए गए शब्दों) पर निर्भर करते हैं।
4. यह क्यों महत्वपूर्ण है
यह शोध पत्र केवल यह नहीं कह रहा है कि "AI मूर्ख है।" यह कह रहा है कि "हमें बेहतर AI बनाने की आवश्यकता है।"
- सुरक्षा: यदि हैकर्स मालवेयर को छिपाने के लिए कोड को अस्पष्ट (obfuscate) करते हैं (नामों को छिपा देते हैं), तो वर्तमान AI उपकरण उन्हें पहचानने में सक्षम नहीं हो सकते क्योंकि वे नामों पर निर्भर रहते हैं।
- वास्तविक दुनिया का उपयोग: वास्तविक सॉफ़्टवेयर जटिल होता है। यदि हम चाहते हैं कि AI डेवलपर्स की मदद करे, तो इसे केवल लेबल ही नहीं, बल्कि तर्क (logic) को समझना होगा।
सारांश उपमा
वर्तमान AI मॉडलों को एक सुपर-फास्ट बारकोड स्कैनर के रूप में सोचें।
- यदि आप एक बारकोड के साथ किताब स्कैन करते हैं, तो यह उसे तुरंत ढूंढ लेता है।
- लेकिन यदि आप बारकोड हटा देते हैं (एनोनिमाइज कोड) या किताब को ब्रेल (Assembly) में अनुवादित करते हैं, तो स्कैनर काम करना बंद कर देता है क्योंकि वह वास्तव में यह नहीं जानता कि किताब किस बारे में है।
CLARC वह नया परीक्षण है जो स्कैनर को केवल बारकोड स्कैन करने के बजाय खुद किताब को पढ़ना सीखने के लिए मजबूर करता है। शोध पत्र दिखाता है कि अभी भी, हमारे स्कैनर केवल बारकोड स्कैन कर रहे हैं, और हमें वास्तव में पढ़ने में सक्षम होने से पहले एक लंबा रास्ता तय करना है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।