MigrationBench: Repository-Level Code Migration Benchmark from Java 8
यह शोध पत्र MigrationBench प्रस्तुत करता है, जो Java 8 कोड को आधुनिक LTS संस्करणों (17 और 21) में माइग्रेट करने के लिए एक व्यापक रिपॉजिटरी-स्तरीय बेंचमार्क और मूल्यांकन ढांचा है, जो यह प्रदर्शित करता है कि एक एजेंटिक LLM फ्रेमवर्क इस चुनौतीपूर्ण कार्य पर उच्च सफलता दर प्राप्त कर सकता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपके पास एक विशाल, पुरानी लाइब्रेरी है जो एक विशिष्ट, थोड़ी पुरानी शैली की अंग्रेजी (आइए इसे "English 8" कहें) में लिखी गई किताबों से भरी हुई है। यह लाइब्रेरी बहुत बड़ी है, जिसमें हजारों किताबें हैं और उनमें से हर एक अभी भी बेहतरीन स्थिति में है।
अब, कल्पना कीजिए कि लाइब्रेरी बोर्ड इस पूरी इमारत को एक नए, आधुनिक मानक ("English 17") में अपग्रेड करने का निर्णय लेता है। यह केवल फॉन्ट बदलने के बारे में नहीं है; यह व्याकरण के नियमों, शब्दावली और किताबों को व्यवस्थित करने के तरीके को अपडेट करने के बारे में है ताकि वे नए भवन के सुरक्षा सिस्टम और लिफ्टों के साथ काम कर सकें।
MigrationBench एक विशाल चुनौती है जिसे AWS AI के शोधकर्ताओं द्वारा यह परीक्षण करने के लिए बनाया गया है कि आर्टिफिशियल इंटेलिजेंस (विशेष रूप से, लार्ज लैंग्वेज मॉडल्स या LLMs) इस बड़े नवीनीकरण प्रोजेक्ट को कितनी अच्छी तरह से संभाल सकते हैं।
यहाँ उनके काम का सरल उपमाओं (analogies) का उपयोग करके विवरण दिया गया है:
1. समस्या: केवल एक घर नहीं, बल्कि एक पूरा शहर बदलना
अधिकांश पिछले AI परीक्षण एक रोबोट से एक अकेला लीक होता नल ठीक करने या एक पैराग्राफ लिखने के लिए कहने जैसे थे। लेकिन वास्तविक दुनिया का सॉफ्टवेयर केवल एक फ़ाइल नहीं है; यह परस्पर जुड़े हुए भवनों का एक पूरा शहर (एक "रिपॉजिटरी") है।
- चुनौती: "English 8" से "English 17" में जाने के लिए एक साथ हजारों फ़ाइलों को बदलने की आवश्यकता है। यदि आप एक सड़क का साइन बोर्ड बदलते हैं, तो आप तीन ब्लॉक दूर लगे ट्रैफिक लाइट को खराब कर सकते हैं।
- अंतराल (Gap): अब तक, कोई मानकीकृत "परीक्षा" नहीं थी जिससे यह देखा जा सके कि क्या AI पूरे सिस्टम को क्रैश किए बिना कोड के पूरे शहर का नवीनीकरण कर सकता है।
2. समाधान: "MigrationBench" डेटासेट
शोधकर्ताओं ने MigrationBench नामक एक विशाल टेस्ट सुइट बनाया।
- पूर्ण डेटासेट: उन्होंने इंटरनेट (जैसे GitHub) से 5,102 वास्तविक, ओपन-सोर्स जावा प्रोजेक्ट्स एकत्र किए। उन्होंने यह सुनिश्चित करने के लिए उन्हें फ़िल्टर किया कि वे उच्च गुणवत्ता वाले हों, उनके पास उचित लाइसेंस हों, और वे वर्तमान में पूरी तरह से काम कर रहे हों।
- "चयनित" उपसमूह (Selected Subset): सभी 5,000+ प्रोजेक्ट्स का परीक्षण करने में बहुत समय लगता है। इसलिए, उन्होंने सबसे जटिल, पेचीदा और दिलचस्प 300 प्रोजेक्ट्स को हाथ से चुना। इसे डेटासेट का "फाइनल एग्जाम" संस्करण मान लें, जिसे वास्तव में AI का परीक्षण करने के लिए डिज़ाइन किया गया है।
3. खेल के नियम (मूल्यांकन)
आपको कैसे पता चलेगा कि नवीनीकरण सफल रहा या नहीं? शोधकर्ताओं ने कठिनाई के दो स्तर निर्धारित किए:
स्तर 1: न्यूनतम माइग्रेशन (The "It Works" Test - "यह काम करता है" परीक्षण)
- लक्ष्य: AI को बस यह सुनिश्चित करने की आवश्यकता है कि कोड कंपाइल (बिल्ड) हो और नए संस्करण में सभी मौजूदा टेस्ट पास हो जाएं।
- उपमा: इमारत सुरक्षित है, लाइटें जल रही हैं और लिफ्ट काम कर रही हैं। किताबें पढ़ने योग्य हैं।
- सफलता दर: अपने सबसे अच्छे AI सेटअप के साथ, उन्होंने यहाँ 71.67% की सफलता दर प्राप्त की।
स्तर 2: अधिकतम माइग्रेशन (The "Modernization" Test - "आधुनिकीकरण" परीक्षण)
- लक्ष्य: AI को न केवल इसे काम करने लायक बनाना है, बल्कि कोड के अंदर मौजूद हर एक टूल और लाइब्रेरी को उनके बिल्कुल नवीनतम, सबसे सुरक्षित संस्करणों में अपग्रेड भी करना है।
- उपमा: न केवल इमारत सुरक्षित है, बल्कि AI ने पुराने प्लंबिंग को नए तांबे के पाइपों से बदल दिया है, सुरक्षा कैमरों को 4K में अपडेट कर दिया है, और नवीनतम स्मार्ट-होम फीचर्स भी इंस्टॉल कर दिए हैं। यह बहुत कठिन है क्योंकि नए टूल्स के नियम अक्सर अलग होते हैं।
- सफलता दर: यह बहुत कठिन है। सबसे अच्छे AI सेटअप ने 53.33% की सफलता दर हासिल की।
4. कार्यकर्ता: AI एजेंट्स
शोधकर्ताओं ने केवल AI को "कोड लिखने" के लिए नहीं कहा। उन्होंने AI एजेंट्स बनाए—डिजिटल कार्यकर्ता जो उपकरणों (tools) से लैस हैं।
- बुनियादी कार्यकर्ता (The Basic Worker): एक साधारण AI जो कोड को देखता है और त्रुटियों को ठीक करने की कोशिश करता है। इसे "मैक्सिमल" अपग्रेड के साथ संघर्ष करना पड़ा।
- स्मार्ट कार्यकर्ता (Prompt Engineering): उन्होंने बुनियादी कार्यकर्ता को बेहतर निर्देशों का एक सेट दिया, जिसमें उसे विशेष रूप से सब कुछ अपग्रेड करने के लिए कहा गया। इससे काफी मदद मिली।
- रिसर्चर कार्यकर्ता (RAG): उन्होंने कार्यकर्ता को एक "फोन बुक" (ज्ञान आधार/knowledge base) दी ताकि वह नवीनतम सॉफ्टवेयर संस्करणों के बारे में अनुमान लगाने के बजाय जानकारी प्राप्त कर सके। इसने परिणामों को और बेहतर बनाया।
- हाइब्रिड टीम (विजेता): यह सबसे चतुर दृष्टिकोण था। उन्होंने एक कंप्यूटर प्रोग्राम का उपयोग किया जो स्वचालित रूप से पुराने टूल्स को नए टूल्स से बदल देता है (एक तेज़, रोबोटिक चरण) और फिर AI एजेंट को उन जगहों को ठीक करने के लिए आने दिया जहाँ नए टूल्स पूरी तरह से फिट नहीं बैठते थे।
- परिणाम: इस टीम ने सबसे महंगे AI कार्यकर्ता के बराबर प्रदर्शन किया, लेकिन इसके लिए 11% कम कंप्यूटिंग पावर का उपयोग किया।
5. परिणाम
यह पेपर दिखाता है कि जबकि AI छोटे कोड समस्याओं को ठीक करने में बहुत अच्छा हो रहा है, पूरे सॉफ्टवेयर "शहर" को एक पुराने संस्करण से नए संस्करण में स्थानांतरित करना अभी भी एक बड़ी चुनौती है।
- हाइब्रिड दृष्टिकोण (स्वचालित उपकरणों के साथ AI को जोड़ना) सबसे कुशल तरीका साबित हुआ।
- डेटासेट और इन AI एजेंट्स का कोड अब सार्वजनिक है, ताकि अन्य शोधकर्ता और भी बेहतर नवीनीकरण टीमें बनाने का प्रयास कर सकें।
संक्षेप में, MigrationBench एक नया, कठोर जिम है जहाँ AI को पूरी सॉफ्टवेयर लाइब्रेरी को पुराने संस्करणों से नए संस्करणों में ले जाने का अभ्यास करने के लिए प्रशिक्षित किया जाता है। यह दिखाता है कि हालांकि AI सक्षम है, फिर भी सबसे जटिल "नवीनीकरण" के लिए काम को सही ढंग से करने के लिए स्वचालित उपकरणों और मानव जैसे तर्क (reasoning) के स्मार्ट मिश्रण की आवश्यकता होती है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।