← नवीनतम पेपर
💻 computer science

Exploring Generalizable Automated Program Repair with Large Language Models

यह शोध पत्र चार प्रोग्रामिंग भाषाओं में 13 लार्ज लैंग्वेज मॉडल्स का एक व्यापक अनुभवजन्य मूल्यांकन प्रस्तुत करता है, जो यह प्रकट करता है कि कोई भी एकल मॉडल सभी संदर्भों में अच्छी तरह से सामान्यीकरण नहीं कर पाता है, मॉडलों को संयोजित करने से अद्वितीय बग फिक्स में सुधार होता है, और पूर्ण फॉल्ट लोकलाइजेशन पर निर्भरता वास्तविक परिदृश्यों में मरम्मत की सटीकता का काफी अधिक आकलन करती है।

मूल लेखक: Viola Campos, Ridwan Shariffdeen, Adrian Ulges, Yannic Noller

प्रकाशित 2026-02-23
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Viola Campos, Ridwan Shariffdeen, Adrian Ulges, Yannic Noller

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आपके पास सुपर-इंटेलिजेंट, बहुभाषी मैकेनिकों की एक टीम है (ये लार्ज लैंग्वेज मॉडल्स या LLMs हैं)। उनका काम टूटी हुई कारों (सॉफ्टवेयर बग्स) को ठीक करना है, वह भी बिना कार को व्यक्तिगत रूप से देखे, केवल समस्या के विवरण और एक ब्लूप्रिंट को पढ़कर।

यह पेपर इन शीर्ष स्तर के 13 मैकेनिकों का एक विशाल रोड टेस्ट है। शोधकर्ता यह देखना चाहते थे: क्या ये AI मैकेनिक किसी भी भाषा में, किसी भी कार को, केवल एक मैनुअल पढ़कर ठीक कर सकते हैं? या उनकी कुछ विशिष्ट ताकतें और कमजोरियां हैं?

यहाँ उनके निष्कर्षों का विवरण दिया गया, जिसे रोजमर्रा की भाषा में अनुवादित किया गया है:

1. "एक ही आकार सबके लिए" (One-Size-Fits-All) का मिथक टूट गया

आप सोच सकते हैं, "अगर मैं सबसे स्मार्ट मैकेनिक को काम पर रखता हूँ, तो वह फोर्ड, टोयोटा और फेरारी को समान रूप से अच्छी तरह से ठीक कर सकता है।"
वास्तविकता: कोई भी एक मैकेनिक हर चीज़ में सर्वश्रेष्ठ नहीं है।

  • उपमा: कल्पना कीजिए कि आपने एक ऐसा मैकेनिक काम पर रखा है जो जापानी कारों को ठीक करने में जीनियस है लेकिन जर्मन कारों के साथ संघर्ष करता है। दूसरा मैकेनिक हो सकता है जो फ्रेंच इंजनों का जादूगर हो लेकिन अमेरिकी ट्रकों के मामले में उलझ जाता है।
  • निष्कर्ष: अध्ययन में पाया गया कि अलग-अलग AI मॉडल विभिन्न प्रोग्रामिंग भाषाओं (Java, Python, JavaScript, PHP) में माहिर हैं। कोई एक "सुपर-मॉडल" नहीं है जो सभी भाषाओं में हावी हो। यदि आप एक बहु-भाषा वाले सॉफ्टवेयर प्रोजेक्ट में बग्स को ठीक करना चाहते हैं, तो आप केवल एक AI पर भरोसा नहीं कर सकते; आपको विशेषज्ञों की एक समिति की आवश्यकता है, जो विशिष्ट भाषा के लिए सही विशेषज्ञ को चुन सके।

2. "सुरागों" की शक्ति (टेस्ट एरर्स)

जब आप कार को दुकान पर लाते हैं, तो मैकेनिक केवल अनुमान नहीं लगाता। वह डैशबोर्ड की चेतावनी लाइटों को देखता है और इंजन से आने वाली अजीब आवाज़ को सुनता है।

  • उपमा: शोधकर्ताओं ने दो परिदृश्यों का परीक्षण किया:
    1. अंधाधुंध अनुमान लगाना: AI को बताना, "यहाँ एक टूटा हुआ कोड है, इसे ठीक करो।" (जैसे यह कहना कि, "मेरी कार से एक आवाज़ आ रही है, इसे ठीक करो" बिना किसी विवरण के)।
    2. सुराग देना: AI को बताना, "यहाँ कोड है, और यहाँ सटीक एरर मैसेज और वह टेस्ट है जो फेल हुआ है।" (जैसे यह कहना कि, "जब मैं ब्रेक लगाता हूँ तो मेरी कार से रगड़ने की आवाज़ आती है, और 'चेक इंजन' लाइट लाल रंग में चमक रही है")।
  • निष्कर्ष: AI को एरर मैसेज और टेस्ट रिजल्ट्स देने से गेम पूरी तरह बदल गया। इसने उनकी सफलता दर को नाटकीय रूप रूप से बढ़ा दिया (कभी-कभी लगभग 50% तक)। यह एक मैकेनिक के अंदाज़ा लगाने और डायग्नोस्टिक कंप्यूटर देखने के बीच के अंतर जैसा है।

3. "परफेक्ट मैप" बनाम "फजी जीपीएस"

बग को ठीक करने के लिए, AI को यह जानने की आवश्यकता है कि समस्या कहाँ है।

  • उपमा:
    • परफेक्ट लोकलाइजेशन: शोधकर्ता ठीक उस टूटे हुए स्पार्क प्लग की ओर इशारा करता है और कहता है, "इस हिस्से को ठीक करें।"
    • ऑटोमेटेड लोकलाइजेशन: शोधकर्ता एक GPS का उपयोग करता है जो कहता है, "समस्या इंजन ब्लॉक में कहीं है," लेकिन वह स्पार्क प्लग के बजाय ऑयल फिल्टर की ओर इशारा कर सकता है।
  • निष्कर्ष: जब AI को बग का सटीक स्थान दिया गया, तो उसने ठीक-ठाक काम किया। लेकिन जब स्थान अपूर्ण था (जैसे एक वास्तविक दुनिया का GPS जो कभी-कभी गलत दिशा दिखाता है), तो AI का प्रदर्शन क्रैश हो गया।
  • सबक: AI चीजों को ठीक करने में अच्छा है, लेकिन अगर उसके पास एक अच्छा नक्शा नहीं है, तो वह समस्या को ढूँढने में बहुत बुरा है। यदि "फॉल्ट लोकलाइजेशन" टूल ढीला है, तो AI गलत हिस्से को ठीक करने में अपना समय बर्बाद कर देगा।

4. "इंडेंटेशन" का जाल (द पायथन प्रॉब्लम)

पायथन एक ऐसी प्रोग्रामिंग भाषा है जो लाइनों के बीच के स्पेसिंग (इंडेंटेशन) को लेकर बहुत चूकी है। यह एक रेसिपी की तरह है जहाँ यदि आप चरणों को सही ढंग से इंडेंट नहीं करते हैं, तो केक जल जाता है।

  • निष्कर्ष: अधिकांश AI मॉडल पायथन के साथ संघर्ष करते रहे क्योंकि वे स्पेसिंग (इंडेंटेशन) में गलतियाँ करते रहे। उन्होंने ऐसा कोड लिखा जो तार्किक रूप से सही था लेकिन सिंटैक्स के हिसाब से टूटा हुआ था क्योंकि "टैब्स" गलत जगह पर थे।
  • अपवाद: एक मॉडल (Gemini) आश्चर्यजनक रूप से अपने "टैब्स" को सीधा रखने में अच्छा था, यही कारण है कि इसने दूसरों की तुलना में पायथन पर बेहतर प्रदर्शन किया।
  • सीख: यदि आप पायथन कोड को ठीक करने के लिए AI का उपयोग करते हैं, तो आपको कोड चलाने से पहले स्पेसिंग को साफ करने के लिए एक "स्पेलचेकर" (फॉर्मेटिंग टूल) की आवश्यकता है।

5. ओपन सोर्स बनाम "बिग टेक" के दिग्गज

अध्ययन ने ओपन मॉडल्स (जैसे Llama या DeepSeek, जिन्हें कोई भी डाउनलोड और चला सकता है) की तुलना क्लोज्ड मॉडल्स (जैसे GPT-4 या Claude, जो बड़ी कंपनियों के स्वामित्व में हैं और आप उनके अंदर नहीं देख सकते) से की।

  • उपमा: क्लोज्ड मॉडल्स को लक्जरी ब्रांड कारों के रूप में सोचें (महंगी, उच्च प्रदर्शन, लेकिन आप बोनट के नीचे नहीं देख सकते)। ओपन मॉडल्स एन्थूज़िएस्ट बिल्ड्स की तरह हैं (आप सब कुछ देख सकते हैं, बदलाव कर सकते हैं, लेकिन वे पहले कम विश्वसनीय थे)।
  • निष्कर्ष: ऐतिहासिक रूप से, "लक्जरी ब्रांड" तेज़ और स्मार्ट थे। हालाँकि, अध्ययन दिखाता है कि "एन्थूज़िएस्ट बिल्ड्स" (ओपन मॉडल्स) तेज़ी से बराबरी कर रहे हैं। कुछ नए ओपन मॉडल्स अब महंगे, क्लोज्ड मॉडल्स के समान ही प्रदर्शन कर रहे हैं। यह उन कंपनियों के लिए अच्छी खबर है जो एक ही वेंडर के साथ बंधे रहना नहीं चाहतीं।

6. सरल बनाम जटिल सुधार

  • उपमा: टायर का पंचर ठीक करना (सिंगल-लाइन बग) बनाम पूरे ट्रांसमिशन को फिर से बनाना (मल्टी-पार्ट बग)।
  • निष्कर्ष: आप उम्मीद कर सकते हैं कि AI जटिल, मल्टी-पार्ट बग्स पर बुरी तरह विफल होगा। आश्चर्यजनक रूप से, उन्होंने जटिल सुधारों को काफी अच्छी तरह से संभाला। समस्या कठिन होने पर भी उनका प्रदर्शन उम्मीद के मुताबिक बहुत ज्यादा खराब नहीं हुआ।

निचोड़ (The Bottom Line)

यह पेपर हमें बताता है कि ऑटोमेटेड प्रोग्राम रिपेयर अब वास्तविक हो रहा है, लेकिन यह अभी जादू नहीं बना है।

  1. एक AI पर निर्भर न रहें: प्रोग्रामिंग भाषा के आधार पर विभिन्न मॉडल्स की एक टीम का उपयोग करें।
  2. उन्हें सुराग दें: हमेशा AI को एरर मैसेज दें, केवल कोड ही नहीं।
  3. पहले मैप ठीक करें: यदि आप सटीक रूप से AI को यह नहीं बता सकते कि बग कहाँ है, तो इससे कोई फर्क नहीं पड़ता कि AI कितना स्मार्ट है; वह विफल हो जाएगा।
  4. ओपन मॉडल्स बढ़ रहे हैं: अब आपको सबसे महंगे "ब्लैक बॉक्स" मॉडल्स के लिए भुगतान करने की आवश्यकता नहीं है; ओपन-सोर्स विकल्प काम करने के लिए पर्याप्त शक्तिशाली होते जा रहे हैं।

शोधकर्ता मूल रूप से कह रहे हैं: "हमारे पास उपकरण हैं, लेकिन हमें यह मानना बंद करना होगा कि वे पूर्ण हैं और हमें ऐसे सिस्टम बनाने शुरू करने होंगे जो वास्तव में उनका यथार्थवादी उपयोग कर सकें।"

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →