BeyondSWE: Can Current Code Agent Survive Beyond Single-Repo Bug Fixing?
यह शोधपत्र BeyondSWE प्रस्तुत करता है, जो एक व्यापक बेंचमार्क है जो सिंगल-रेपो बग फिक्सिंग से परे जटिल, वास्तविक दुनिया के कार्यों को संभालने में वर्तमान कोड एजेंटों की क्षमता में महत्वपूर्ण सीमाओं को उजागर करता है, और डेवलपर वर्कफ़्लो का अनुकरण करने में सर्च ऑग्मेंटेशन (search augmentation) के असंगत लाभों की जांच करने के लिए SearchSWE का प्रस्ताव करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप अपनी कंपनी के कोड में बग्स ठीक करने के लिए एक जूनियर सॉफ्टवेयर आर्किटेक्ट (एक AI) को काम पर रख रहे हैं।
पिछले कुछ वर्षों से, हम इन AI आर्किटेक्ट्स का परीक्षण करने के लिए उन्हें एक छोटा सा कमरा (एक सिंगल सॉफ्टवेयर प्रोजेक्ट) देते रहे हैं और उनसे एक टपकते हुए नल (एक बग) को ठीक करने के लिए कहते रहे हैं। वे इसमें काफी अच्छे हो गए हैं। वे पाइप ढूंढ सकते हैं, रिंच घुमा सकते हैं और टपकना बंद कर सकते हैं।
लेकिन सॉफ्टवेयर इंजीनियरिंग की वास्तविक दुनिया केवल एक कमरे में टपकते नल को ठीक करने के बारे में नहीं है। यह इसके बारे में है:
- सीमाओं को पार करना: "हे, किचन का प्लंबिंग खराब है, लेकिन समाधान वास्तव में लाइब्रेरी के ब्लूप्रिंट में है।"
- एक विदेशी भाषा बोलना: "हमें इस कोड को ठीक करने की आवश्यकता है, लेकिन इसके लिए क्वांटम भौतिकी या जैव रसायन विज्ञान के ज्ञान की आवश्यकता है।"
- पूरे घर को स्थानांतरित करना: "जिस आधार (एक लाइब्रेरी जिसका हम उपयोग करते हैं) पर वह टिका है, उसने अपना आकार बदल लिया है। हमें नए आधार के अनुकूल होने के लिए पूरे घर को फिर से बनाना होगा।"
- शून्य से निर्माण करना: "यहाँ एक नैपकिन पर बना एक स्केच है; कृपया एक पूरी तरह से कार्यात्मक गगनचुंबी इमारत बनाएं।"
"BeyondSWE" पेपर का तर्क है कि हमारे वर्तमान परीक्षण बहुत आसान हैं। वे केवल यह जांचते हैं कि क्या AI एक अकेले कमरे में टपकते नल को ठीक कर सकता है। लेखकों ने एक बहुत अधिक कठिन परीक्षण बनाया है जिसे BeyondSWE कहा जाता है, ताकि यह देखा जा सके कि क्या ये AI आर्किटेक्ट वास्तव में वास्तविक दुनिया में जीवित रह सकते हैं।
नया परीक्षण: BeyondSWE
लेखकों ने चार "कठिनाई स्तरों" में विभाजित 500 वास्तविक दुनिया की चुनौतियाँ बनाईं, जैसे कि एक वीडियो गेम:
- जासूस (Cross-Repo): AI को प्रोजेक्ट A में एक बग ठीक करना है, लेकिन उत्तर प्रोजेक्ट B में छिपा है। यह बिल्कुल वैसा ही है जैसे किसी दूसरे ब्रांड की कार का मैनुअल पढ़कर अपनी कार का इंजन ठीक करना।
- विशेषज्ञ (Domain-Specific): AI को एक क्वांटम भौतिकी सिम्युलेटर के लिए कोड ठीक करना है। इसे केवल कोडिंग ही नहीं आनी चाहिए; इसे वास्तविक विज्ञान, यानी क्वांटम मैकेनिक्स को भी समझना होगा।
- नवीनीकरणकर्ता (Dependency Migration): जिस प्रमुख टूल का प्रोजेक्ट उपयोग करता है, उसने एक नया संस्करण जारी किया है जिसने सब कुछ तोड़ दिया है। AI को पुराने घर को नए आधार के अनुकूल बनाने के लिए हजारों लाइनों के कोड को फिर से लिखना होगा।
- आर्किटेक्ट (Doc-to-Repo): AI को एक 10 पन्नों का डिज़ाइन दस्तावेज़ और एक खाली फोल्डर दिया जाता है। उसे शून्य से एक पूर्ण, कार्यात्मक सॉफ्टवेयर सिस्टम बनाना है।
परिणाम?
AI आर्किटेक्ट बुरी तरह विफल रहे। यहाँ तक कि सबसे स्मार्ट, सबसे उन्नत मॉडल ( "फ्रंटियर" मॉडल) भी इन कार्यों को केवल 45% ही हल कर पाए। वे छोटे, अलग-थलग समस्याओं को ठीक करने में माहिर हैं, लेकिन वे जटिल, वास्तविक दुनिया के परिदृश्यों के सामने ढह जाते हैं जिनमें अपने तत्काल दायरे से बाहर देखने की आवश्यकता होती है।
"गूगल" प्रयोग: SearchSWE
लेखकों ने पूछा: "क्या होगा अगर हम AI को एक गूगल सर्च बटन दे दें? शायद यदि वे चीजें खोज सकें, तो वे बेहतर हो जाएंगे?"
उन्होंने SearchSWE नामक एक टूल बनाया जो AI को कोड करते समय वेब ब्राउज़ करने, दस्तावेज़ पढ़ने और फ़ोरम खोजने की अनुमति देता है।
चौंका देने वाला मोड़:
AI को सर्च इंजन देने से हमेशा मदद नहीं मिली। वास्तव में, कभी-कभी इसने चीजों को और भी खराब कर दिया।
इसे इस तरह सोचें:
- अच्छा: कभी-कभी, AI एक विशिष्ट त्रुटि (error) पर फंस जाता है। वह खोजता है, सटीक मैनुअल पेज पाता है, और समस्या को तुरंत ठीक कर देता है।
- बुरा: कभी-कभी, AI भ्रमित हो जाता है। वह "टूटे हुए पाइप को कैसे ठीक करें" के लिए खोज करता है, लेकिन खोज परिणाम उसे बताते हैं कि कार का इंजन कैसे ठीक करें। AI गलत जानकारी से विचलित हो जाता है, कार-इंजन के तर्क को प्लंबिंग पर लागू करने की कोशिश करता है, और पाइप को और भी ज्यादा खराब कर देता है।
- भयानक: AI किसी टूल के नवीनतम संस्करण के लिए समाधान पा सकता है, लेकिन आपका प्रोजेक्ट एक पुराने संस्करण का उपयोग कर रहा है। AI उस नए समाधान को बिना सोचे-समझे कॉपी करता है, और पूरा सिस्टम क्रैश हो जाता है।
पेपर निष्कर्ष निकालता है कि खोजना और कोडिंग करना दो अलग कौशल हैं जो अभी तक एक साथ काम करना नहीं सीख पाए हैं। सिर्फ इसलिए कि एक AI किसी लाइब्रेरी को पढ़ सकता है, इसका मतलब यह नहीं है कि वह जानता है कि कौन सी किताब पढ़नी है, या गलत किताबों को कैसे अनदेखा करना है।
मुख्य निष्कर्ष
हम वर्तमान में अपने AI कोडर्स का आकलन बहुत अधिक बढ़ा-चढ़ाकर कर रहे हैं। वे उन प्रतिभाशाली छात्रों की तरह हैं जो एक शांत कमरे में गणित की परीक्षा में तो टॉप कर सकते हैं, लेकिन जब उन्हें एक शोर-शराबे वाले, अराजक निर्माण स्थल में वास्तविक जीवन की इंजीनियरिंग समस्या हल करने के लिए कहा जाता है, तो वे घबरा जाते हैं।
वास्तविक उपयोगी AI डेवलपर्स बनाने के लिए, हमें उन्हें सरल, अलग-थलग कार्यों पर परीक्षण करना बंद करना होगा और उन्हें यह सिखाना शुरू करना होगा कि:
- विभिन्न प्रोजेक्ट्स के बीच कैसे नेविगेट किया जाए।
- इंटरनेट के शोर को कैसे फ़िल्टर किया जाए।
- पुराने कोड को नए नियमों के अनुसार कैसे अनुकूलित किया जाए।
- एक मानव विशेषज्ञ की तरह कैसे सोचा जाए जो जानता है कि कब तथ्य खोजने के लिए देखना है और कब अपने स्वयं के ज्ञान पर भरोसा करना है।
BeyondSWE AI कोडर्स के लिए नया "ड्राइविंग टेस्ट" है, और फिलहाल, अधिकांश उनमें फेल हो रहे हैं। लेकिन यह एक अच्छी बात है! यह हमें ठीक-ठीक बताता है कि उन्हें वास्तविक दुनिया के लिए वास्तव में तैयार करने के लिए हमें कहाँ सुधार करने की आवश्यकता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।