Loc2Repair: A Framework for Evaluating the Impact of File-Level Issue Localization in Repo-Level LLM Repair
यह शोध पत्र Loc2Repair प्रस्तुत करता है, जो एक मॉड्यूलर मूल्यांकन ढांचा है जो यह प्रदर्शित करता है कि कैसे फ़ाइल-स्तर के इश्यू लोकलाइजेशन (issue localization) को रिपेयर सिंथेसिस (repair synthesis) से अलग करने से रिपॉजिटरी-आधारित स्वचालित मरम्मत प्रणालियों की प्रभावशीलता और दक्षता दोनों में निरंतर सुधार होता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक मास्टर मैकेनिक हैं जो एक टूटी हुई कार को ठीक करने की कोशिश कर रहे हैं। वह कार एक जटिल सॉफ्टवेयर है, और "खराबी" एक उपयोगकर्ता द्वारा रिपोर्ट किया गया बग (bug) है।
अतीत में, हम AI "मैकेनिकों" (लार्ज लैंग्वेज मॉडल्स, या LLMs) को एक एकल संख्या से आंकते थे: क्या उन्होंने कार ठीक की? यदि कार चल पड़ी, तो बहुत अच्छा। यदि नहीं चली, तो हमने बस कह दिया, "AI विफल रहा।"
लेकिन यह ऐसा ही है जैसे किसी मैकेनिक को यह जाने बिना विफल घोषित कर देना कि वह क्यों विफल हुआ। क्या उन्होंने इंजन को देखा जब समस्या ब्रेक में थी? या उन्होंने ब्रेक को देखा लेकिन गलत रिंच (wrench) का उपयोग किया? या उन्होंने ब्रेक तो ठीक कर दिए लेकिन अंतिम बोल्ट कसना भूल गए?
यह पेपर Loc2Repair पेश करता है, जो AI मैकेनिकों को परखने का एक नया तरीका है जो काम को दो अलग-अलग चरणों में विभाजित करता है: समस्या को खोजना (Localization) और समस्या को ठीक करना (Repair)।
मुख्य विचार: "रिपेयर" से पहले "मैप"
लेखकों का तर्क है कि इससे पहले कि कोई AI कोड को ठीक कर सके, उसे यह जानने की आवश्यकता है कि कहाँ देखना है। एक विशाल सॉफ्टवेयर प्रोजेक्ट (एक रिपॉजिटरी) में हजारों फाइलें होती हैं। यदि AI गलत फाइलों को देखता है, तो यह एक मैकेनिक के लिए वैसा ही है जैसे इंजन से धुआं निकल रहा हो और वह रेडियो को घूर रहा हो।
Loc2Repair एक टेस्टिंग फ्रेमवर्क है जो एक नियंत्रित प्रयोगशाला की तरह कार्य करता है। यह शोधकर्ताओं को "खोजने वाले" (finder) और "ठीक करने वाले" (fixer) को स्वतंत्र रूप से बदलने की अनुमति देता है ताकि वे देख सकें कि वे एक साथ कैसे काम करते हैं।
प्रयोग: तीन मैकेनिक, चार रणनीतियाँ
शोधकर्ताओं ने तीन अलग-अलग AI "मैकेनिकों" (जिन्हें बैकबोन कहा जाता है: Gemma4, GLM-4.7, और Qwen3.5) को लिया और उन्हें 500 टूटे हुए सॉफ्टवेयर कार्य दिए। उन्होंने प्रत्येक मैकेनिक का परीक्षण चार अलग-अलग स्थितियों में किया:
- "अंधा" दृष्टिकोण (बेसलाइन): मैकेनिक को बिना किसी संकेत के गैरेज में छोड़ दिया जाता है। उन्हें खुद पता लगाना होता है कि समस्या कहाँ है और उसे एक साथ ठीक करना होता है।
- "क्विक स्काउट" (प्रिडिक्टेड लोकलाइजेशन - Qwen4B): एक छोटा, तेज़ AI स्काउट गैरेज का तेजी से निरीक्षण करता है और संभावित टूटे हुए हिस्सों की ओर इशारा करता है। मुख्य मैकेनिक फिर केवल उन्हीं हिस्सों पर ध्यान केंद्रित करता है।
- "विस्तृत स्काउट" (प्रिडिक्टेड लोकलाइजेशन - Gemma4E4B): एक थोड़ा धीमा, अधिक गहन AI स्काउट गैरेज का बारीकी से निरीक्षण करता है और एक अधिक विस्तृत मानचित्र प्रदान करता है कि समस्या कहाँ हो सकती है।
- "जादुई मानचित्र" (गोल्ड लोकलाइजेशन): मैकेनिक को एक सटीक मानचित्र दिया जाता है जो दिखाता है कि मूल सुधार (fix) में कौन सी फाइलें बदली गई थीं। यह "चीट कोड" है यह देखने के लिए कि यदि AI को बिल्कुल पता हो कि कहाँ देखना है, तो प्रदर्शन कितना उत्कृष्ट हो सकता है।
उन्होंने क्या पाया
1. AI को मानचित्र देने से बहुत मदद मिलती है।
जब AI मैकेनिकों को संकेत दिए गए कि कहाँ देखना है (या तो स्काउट्स से या जादुई मानचित्र से), तो उन्होंने बिना किसी संकेत के अनुमान लगाने की तुलना में अधिक बग्स को ठीक किया।
- संकेतों के बिना: AI ने औसतन लगभग 44.7% बग्स को ठीक किया।
- स्काउट संकेतों के साथ: सफलता दर बढ़कर लगभग 49% हो गई।
- परफेक्ट मैप के साथ: सफलता दर बढ़कर 52.4% हो गई।
2. यह अक्सर तेज़ भी होता है।
आश्चर्यजनक रूप से, AI को मानचित्र देने से वह केवल स्मार्ट ही नहीं हुआ, बल्कि अक्सर तेज़ भी हो गया। गलत फाइलों को खोजने में समय बर्बाद न करके, AI ने कुल मिलाकर कम समय लिया। औसतन, "स्काउट" विधियों ने ब्लाइंड अप्रोच की तुलना में प्रति कार्य एक मिनट से अधिक समय बचाया।
3. स्काउट के लिए बड़ा होना हमेशा बेहतर नहीं होता।
शोधकर्ताओं ने दो अलग-अलग "स्काउट" AI का उपयोग किया। एक तेज़ और सस्ता (Qwen4B) था, और दूसरा धीमा और महंगा (Gemma4E4B) था। दिलचस्प बात यह है कि तेज़ स्काउट ने मुख्य मैकेनिक को बग ठीक करने में मदद करने के लिए अक्सर उतना ही अच्छा प्रदर्शन किया, भले ही वह अपने आप में सबसे सटीक स्काउट न हो। यह सुझाव देता है कि अच्छे परिणाम प्राप्त करने के लिए आपको हमेशा सबसे महंगे उपकरण की आवश्यकता नहीं होती है।
4. समस्या को खोजना केवल आधी लड़ाई है।
भले ही AI को परफेक्ट मैप (जादुई मानचित्र की स्थिति) दिया गया था, फिर भी वह लगभग आधे बग्स को ठीक करने में विफल रहा। यह एक महत्वपूर्ण खोज है। इसका मतलब है कि केवल यह जानना कि बग कहाँ है, पर्याप्त नहीं है। AI अभी भी वास्तविक ठीक करने वाले हिस्से में संघर्ष करता है—सही कोड लिखना, डिबगिंग करना और टेस्टिंग करना।
निष्कर्ष
पेपर निष्कर्ष निकालता है कि हमें AI कोडिंग एजेंटों को एक एकल ब्लैक बॉक्स के रूप में मानना बंद करने की आवश्यकता है। "खोजने" और "ठीक करने" को अलग करके, हम:
- प्रदर्शन में सुधार कर सकते हैं: AI को स्पष्ट रूप से बताना कि कहाँ देखना है, उसे उसके काम में बेहतर बनाता है।
- समय और पैसा बचा सकते हैं: केंद्रित खोजें तेज़ होती हैं।
- विफलता को समझ सकते हैं: अब हम देख सकते हैं कि क्या AI गलत जगह देखने के कारण विफल हुआ या इसलिए क्योंकि वह सही कोड नहीं लिख सका।
संक्षेप में, Loc2Repair सिद्ध करता है कि AI को एक अच्छा मानचित्र देना सुधार के लिए एक शक्तिशाली माध्यम है, लेकिन यह यह भी दिखाता है कि जब तक AI को टूटे हुए हिस्से को मिलने के बाद उसे विश्वसनीय रूप से ठीक करना सिखाया जाता है, तब तक हमें अभी लंबा रास्ता तय करना है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।