SWE-CI: Evaluating Agent Capabilities in Maintaining Codebases via Continuous Integration
यह शोध पत्र SWE-CI को प्रस्तुत करता है, जो निरंतर एकीकरण (Continuous Integration) लूप्स पर निर्मित पहला रिपॉजिटरी-स्तरीय बेंचमार्क है, जो LLM एजेंटों की दीर्घकालिक कोड रखरखाव क्षमता का मूल्यांकन करने के लिए उन्हें लंबी अवधि में जटिल, बहु-कमिट विकास कार्यों को हल करने की आवश्यकता के माध्यम से बनाया गया है, जिससे ध्यान स्थिर, एक-बार के कार्यात्मक शुद्धता से हटाकर गतिशील, निरंतर कोड गुणवत्ता पर केंद्रित किया गया है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक घर बनाने के लिए एक नया आर्किटेक्ट (वास्तुकार) काम पर रख रहे हैं।
पुराना तरीका (पिछले बेंचमार्क):
आप आर्किटेक्ट को एक एकल ब्लूप्रिंट देते हैं: "एक किचन बनाओ जिसमें एक सिंक और एक चूल्हा हो।" वे आपको एक किचन बनाकर देते हैं। आप सिंक और चूल्हे की जांच करते हैं, और वे काम कर रहे हैं! आप उन्हें एक गोल्ड स्टार देते हैं।
समस्या क्या है? आपको यह नहीं पता कि उन्होंने घटिया सामग्री का उपयोग किया है जो एक महीने में सड़ जाएगी, या उन्होंने किचन को इस तरह से बनाया है कि बाद में उसमें डाइनिंग रूम जोड़ना असंभव हो जाए। वास्तविक दुनिया में, घर एक दिन में नहीं बनते; उन्हें दशकों तक जिया जाता है, बदला जाता है और विस्तारित किया जाता है। पुराने परीक्षण केवल यह देखते थे कि क्या पहले दिन घर "तैयार" था, यह नहीं कि क्या वह एक बढ़ते हुए परिवार के साथ रहने के लिए सक्षम है।
नया तरीका (SWE-CI):
यह पेपर एक नया टेस्ट पेश करता है जिसे SWE-CI कहा जाता है। एक बार किचन बनाने के लिए AI से पूछने के बजाय, वे कहते हैं:
"यहाँ एक घर है जैसा कि वह 2020 में था। अगले 71 दिनों में, परिवार को एक नर्सरी, फिर एक होम ऑफिस, फिर एक सोलर पैनल सिस्टम, और अंत में एक दूसरी मंजिल जोड़ने की आवश्यकता होगी। आपका काम केवल पहला कमरा बनाना नहीं है; आपका काम यह सुनिश्चित करना है कि पूरा घर खड़ा रहे, सुरक्षित रहे, और अगले 71 दिनों तक विस्तार के लिए आसान बना रहे।"
मुख्य विचार: "वह घर जो बदलता रहता है"
शोधकर्ताओं ने एक बेंचमार्क बनाया जिसमें 100 वास्तविक दुनिया के सॉफ्टवेयर प्रोजेक्ट्स (जैसे लोकप्रिय पायथन लाइब्रेरीज़) शामिल हैं। उन्होंने केवल शुरुआत और अंत के बिंदुओं को नहीं देखा; उन्होंने उनके बीच की पूरी यात्रा को देखा।
- टाइमलाइन: औसतन, प्रत्येक कार्य वास्तविक इतिहास के 233 दिनों और 71 अपडेट्स (कमिट्स) को कवर करता है।
- चुनौती: AI को एक ऐसे सॉफ्टवेयर टीम की तरह काम करना होगा जो केवल एक बग ठीक करके छोड़ नहीं देता। उसे नए फीचर्स जोड़ते समय, पुराने को ठीक करते समय और यह सुनिश्चित करते हुए कि नया सामान पुराने सामान को खराब न करे, कोड को "स्वस्थ" रखना होगा।
वे AI का परीक्षण कैसे करते हैं: "आर्किटेक्ट और बिल्डर" की टीम
इसे वास्तविक बनाने के लिए, उन्होंने केवल AI से "इसे ठीक करने" के लिए नहीं कहा। उन्होंने AI को दो भूमिकाओं में विभाजित किया, जो एक वास्तविक सॉफ्टवेयर कंपनी की नकल करती है:
- आर्किक्ट (दिमाग): यह एजेंट घर के टूटे हुए हिस्सों (फेल होने वाले टेस्ट) को देखता है और कहता है, "ठीक है, छत टपक रही है, और हमें एक नई खिड़की चाहिए। चलो पहले लीकेज को ठीक करने के लिए एक योजना लिखते हैं, लेकिन अभी खिड़की की चिंता मत करो।"
- बिल्डर (हाथ): यह एजेंट उस योजना को लेता है और लीकेज को ठीक करने के लिए वास्तव में कोड लिखता है।
वे इसे एक लूप में करते हैं: योजना (Plan) → निर्माण (Build) → परीक्षण (Test) → योजना (Plan) → निर्माण (Build)।
यदि बिल्डर लीकेज को ठीक करता है लेकिन उसे ठीक करते समय गलती से एक दीवार गिरा देता है, तो आर्किटेक्ट को अगले राउंड में उस दीवार को नोटिस करना होगा और उसे ठीक करना होगा। यह चक्र दर्जनों बार दोहराया जाता है।
स्कोर: "भविष्य के अनुकूल स्कोर" (EvoScore)
पुराने टेस्ट में, यदि कोड अंत में काम करता है, तो आपको 100% मिलता है। SWE-CI में, वे एक विशेष स्कोर का उपयोग करते हैं जिसे EvoScore कहा जाता है।
इसे कोड की गुणवत्ता के क्रेडिट स्कोर की तरह समझें:
- यदि AI आज एक समस्या को ठीक करता है लेकिन कोड को इतना अस्त-व्यस्त बना देता है कि अगले सप्ताह एक अलग समस्या को ठीक करना एक दुःस्वप्न बन जाता है, तो उनका स्कोर कम हो जाता है।
- यदि AI आज समस्या को एक साफ, व्यवस्थित तरीके से ठीक करता है जो अगले सप्ताह के काम को आसान बनाता है, तो उनका स्कोर बढ़ जाता है।
वे एक "रिग्रेशन" (regression) चेक भी करते हैं। यदि AI एक बग को ठीक करता है लेकिन गलती से एक ऐसे फीचर को तोड़ देता है जो पहले बिल्कुल सही काम कर रहा था, तो यह एक "रिग्रेशन" है (जैसे लीकेज ठीक करना लेकिन इसके कारण पाइप फट जाना)। पेपर ने पाया कि अधिकांश AI मॉडल इसमें बहुत खराब हैं; वे लंबे समय तक काम करते समय ठीक करने की तुलना में अधिक चीजें तोड़ देते हैं।
उन्होंने क्या पाया?
- AI बेहतर हो रहा है, लेकिन अभी तक वहां नहीं पहुँचा है: नए AI मॉडल पुराने मॉडलों की तुलना में बहुत बेहतर हैं, लेकिन वे अभी भी "लंबे खेल" (long game) के लिए संघर्ष करते हैं। वे त्वरित सुधारों के लिए बेहतरीन हैं लेकिन अक्सर "तकनीकी ऋण" (technical debt/messy code) पैदा करते हैं जो बाद में उन्हें नुकसान पहुँचाता है।
- अलग-अलग कंपनियों के अलग-अलग स्टाइल हैं: कुछ AI मॉडल (जैसे क्लाउड के) दीर्घकालिक स्थिरता पर अधिक ध्यान देते हैं, जबकि अन्य तत्काल समस्या को ठीक करने के लिए जल्दबाजी करते हैं और भविष्य के कचरे को अनदेखा कर देते हैं।
- "जीरो-रिग्रेशन" की समस्या: अधिकांश AI मॉडल कोड को स्थिर रखने में विफल रहते हैं। टेस्ट में, अधिकांश मॉडलों ने कोड को विकसित करने की कोशिश करते समय 75% से अधिक समय में मौजूदा फीचर्स को तोड़ दिया।
निचोड़
यह पेपर एक चेतावनी है। यह हमें बताता है कि हालांकि AI एक एकल कार्य के लिए कोड लिखने में अद्भुत है, लेकिन यह अभी भी एक अच्छा सॉफ्टवेयर इंजीनियर बनने की सीख रहा है जो प्रोजेक्ट के दीर्घकालिक स्वास्थ्य की परवाह करता है।
SWE-CI वह नया जिम है जहाँ हम AI को न केवल भारी वजन उठाने (कोड लिखने) के लिए प्रशिक्षित करते हैं, बल्कि मैराथन दौड़ने (कोड बनाए रखने) के लिए भी प्रशिक्षित करते हैं, ताकि वह अपने ही जूतों के फीतों में उलझकर गिर न जाए।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।