ARISE: A Repository-level Graph Representation and Toolset for Agentic Fault Localization and Program Repair
ARISE एक रिपॉजिटरी-स्तरीय फ्रेमवर्क है जो इंट्रा-प्रोसीजरल डेटा-फ्लो एडजेस (intra-procedural data-flow edges) के साथ एक मल्टी-ग्रैनुलैरिटी प्रोग्राम ग्राफ और एक क्वेरेबल स्लाइसिंग API पेश करके फॉल्ट लोकलाइजेशन और प्रोग्राम रिपेयर के लिए LLM-आधारित एजेंटों को उन्नत करता है, जिससे SWE-bench Lite बेंचमार्क पर लोकलाइजेशन सटीकता और रिपेयर सफलता दर में महत्वपूर्ण सुधार होता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक जासूस हैं जो एक विशाल, फैले हुए शहर (सॉफ्टवेयर रिपॉजिटरी) में एक अपराध को सुलझाने की कोशिश कर रहे हैं। इस शहर में हजारों इमारतें (फाइलें) हैं, जिनमें से प्रत्येक में सैकड़ों कमरे (फंक्शंस) हैं, और उन कमरों के भीतर अनगिनत फर्नीचर और दस्तावेज़ (कोड की लाइनें) हैं।
आपका काम उस एक विशिष्ट दस्तावेज़ को खोजना है जिसमें वह झूठ (बग) छिपा है जिसके कारण शहर का पावर ग्रिड विफल हो रहा है, और फिर उस दस्तावेज़ को ठीक करने के लिए उसे फिर से लिखना है।
समस्या: शहर में खो जाना
अतीत में, इन मामलों को सुलझाने की कोशिश करने वाले जासूसों (AI एजेंटों) के पास दो मुख्य समस्याएं थीं:
- उनके पास केवल इमारतों का नक्शा था: वे जानते थे कि कौन सी इमारत किसके बगल में है, और किस इमारत का दरवाजा दूसरी इमारत में जाता है। लेकिन उन्हें यह नहीं पता था कि कमरों के अंदर जानकारी कैसे चलती है।
- उन्हें सब कुछ पढ़ना पड़ता था: झूठ को खोजने के लिए, उन्हें अक्सर पूरी किताबें पढ़नी पड़ती थीं या किसी इमारत के हर एक पन्ने को स्कैन करना पड़ता था, इस उम्मीद में कि शायद वे सुराग ढूंढ लें। यह धीमा, महंगा था, और अक्सर उन्हें गलत कमरे में ले जाता था।
समाधान: ARISE (सुपर-डिटेक्टिव का टूलकिट)
लेखकों ने एक नया सिस्टम बनाया जिसे ARISE कहा जाता है। कल्पना कीजिए कि ARISE जासूस को एक सुपर-पावर्ड, इंटरैक्टिव 3D मैप दे रहा है जो न केवल इमारतों को दिखाता है, बल्कि यह भी दिखाता है कि एक विशिष्ट साक्ष्य (वेरिएबल) एक कमरे के भीतर एक दस्तावेज़ से दूसरे दस्तावेज़ में कैसे चलता है।
यहाँ बताया गया है कि ARISE कैसे काम करता है, जिसे तीन सरल उपकरणों में बांटा गया है:
1. संरचनात्मक मानचित्र (टियर 1)
यह एक "इमारत का नक्शा" है। यह जासूस को बताता है: "इस फाइल में यह क्लास है, जो उस फंक्शन को कॉल करती है।" यह ऐसा है जैसे यह जानना कि लाइब्रेरी, स्कूल से जुड़ी हुई है। यह जासूस को यह तय करने में मदद करता है कि उसे किस इमारत की तलाश करनी चाहिए, लेकिन यह उसे यह नहीं बताता कि किताब का कौन सा पन्ना गलत है।
2. "पैसा पीछा करो" टूल (टियर 2 - बड़ा नवाचार)
यह जादुई हिस्सा है। पुराने दिनों में, यदि किसी जासूस को एक दस्तावेज़ में एक संदिग्ध संख्या मिलती थी, तो उसे यह देखने के लिए कि वह संख्या कहाँ से आई या कहाँ गई, मैन्युअल रूप से उससे पहले और बाद के हर पन्ने को पलटना पड़ता था।
ARISE एक टूल पेश करता है जिसे डेटा-फ्लो स्लाइसिंग (Data-Flow Slicing) कहा जाता है। कल्पना कीजिए कि आपके पास एक जादुई आवर्धक लेंस (मैग्निफाइंग ग्लास) है। आप इसे एक दस्तावेज़ में एक विशिष्ट संख्या पर रखते हैं और कहते हैं, "मुझे दिखाओ कि इस संख्या ने किसे छुआ है।"
- बैकवर्ड स्लाइस (Backward Slice): यह लेंस तुरंत उन सभी वाक्यों को हाइलाइट करता है जिन्होंने उस संख्या को बनाया या बदला।
- फॉरवर्ड स्लाइस (Forward Slice): यह उन सभी वाक्यों को हाइलाइट करता है जिन्होंने बाद में उस संख्या का उपयोग किया।
50 पन्ने पढ़ने के बजाय, जासूस को केवल उन 5 या 6 वाक्यों की एक हाइलाइट की गई सूची मिलती है जो वास्तव में मायने रखते हैं। यह एक नल से लेकर सिंक तक पानी की एक विशिष्ट बूंद का पीछा करने जैसा है, बाकी प्लंबिंग को नजरअंदाज करते हुए।
3. एविडेंस बाइंडर (टियर 3)
एक बार जब जासूस ने संदिग्ध वाक्यों को खोज लिया, तो उन्हें बग को ठीक करने के लिए उन्हें एक रिपोर्ट में इकट्ठा करना होता है। कभी-कभी, रिपोर्ट बहुत लंबी हो जाती है और जासूस का दिमाग (AI मॉडल) भारी महसूस करने लगता है।
यह टूल एक स्मार्ट लाइब्रेरियन की तरह काम करता है। यह सभी हाइलाइट किए गए वाक्यों को लेता है, उन्हें महत्व के आधार पर रैंक करता है, और उन्हें एक संक्षिप्त, व्यवस्थित "एविडेंस बाइंडर" में पैक करता है जो उनके बैकपैक (मेमोरी लिमिट) में पूरी तरह से फिट बैठता है। यह सुनिश्चित करता है कि जासूस सबसे महत्वपूर्ण सुराग पहले देखे।
परिणाम: क्या यह काम आया?
शोधकर्ताओं ने लोकप्रिय सॉफ्टवेयर प्रोजेक्ट्स से 300 वास्तविक दुनिया के "अपराधों" (बग्स) पर इस नए सिस्टम का परीक्षण किया। उन्होंने इसकी तुलना एक मानक जासूस (SWE-agent) से की जिसके पास केवल बुनियादी उपकरण थे।
- अपराध स्थल खोजना: मानक जासूस लगभग 57% समय सही इमारत (फाइल) का अनुमान लगा सका। ARISE 67% बार सही रहा।
- सटीक कमरा खोजना: मानक जासूस ने 43% समय सही कमरे (फंक्शन) का अनुमान लगाया। ARISE उछलकर 60% पर पहुँच गया।
- सटीक वाक्य खोजना: मानक जासूस ने 26% समय सही कोड की लाइन खोजी। ARISE ने इसे सुधार कर 41% कर दिया।
सबसे महत्वपूर्ण बात यह है कि क्योंकि जासूस सही समस्या को अधिक तेज़ी से और अधिक सटीकता से खोज सका, इसलिए वे बग को सफलतापूर्वक 22% बार ठीक करने में सक्षम थे, जबकि मानक जासूस के लिए यह केवल 17% था।
पेपर से मुख्य बातें
- संरचना पर्याप्त नहीं है: केवल यह जानना कि फाइलें कैसे जुड़ती हैं, पर्याप्त नहीं है; आपको यह जानने की आवश्यकता है कि डेटा कोड के अंदर कैसे चलता है।
- "जादुई ग्लास" ही कुंजी है: सबसे बड़ा सुधार डेटा-फ्लो स्लेसिंग टूल से आया। इसने AI को अनुमान लगाने के बजाय सीधे समस्या के स्रोत तक पहुँचने की अनुमति दी।
- अनुवादक की आवश्यकता नहीं है: शोधकर्ताओं ने एक चरण आज़माया जहाँ एक छोटा AI डेटा को सामान्य अंग्रेजी में सारांशित करता है, जिसे वे मुख्य जासूस के लिए उपयोगी मानते थे। उन्होंने पाया कि यह अनावश्यक था। मुख्य जासूस (एक बड़ा AI मॉडल) कच्चे, संरचित डेटा को आसानी से पढ़ सकता है। सारांश चरण जोड़ने से केवल समय और पैसा बर्बाद हुआ।
- सीमा: यह सिस्टम एक ही कमरे के अंदर समस्याओं को खोजने में बहुत अच्छा है। हालाँकि, यदि समस्या एक कमरे में शुरू होती है, दूसरे पड़ोसी के कमरे में भेजी जाती है, और वहां क्रैश होती है, तो जासूस कभी-कभी भ्रमित हो जाता है। यह एक क्षेत्र है जिसे लेखक भविष्य में और अधिक काम करने की आवश्यकता बताते हैं।
संक्षेप में, ARISE AI एजेंटों को कोड के माध्यम से एक वेरिएबल के "धागे का पीछा करने" का तरीका देता है, जिससे घास के ढेर में सुई खोजने वाली खोज से सीधे समाधान के मार्ग तक का सफर आसान हो जाता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।