How Do LLMs Read Bug Reports? An Empirical Study of Attention in LLMs for Automated Program Repair
यह शोध पत्र पहला अनुभवजन्य अध्ययन प्रस्तुत करता है जो यह प्रदर्शित करता है कि सफल LLM-आधारित स्वचालित प्रोग्राम मरम्मत (automated program repair), बग रिपोर्ट के विविध नैदानिक घटकों (diagnostic components) में विस्तृत ध्यान (diffused attention) पर निर्भर करती है, जबकि विफलताएं मेटाडेटा पर अत्यधिक स्थानीयकृत ध्यान (over-localized attention) के कारण होती हैं, जो मरम्मत की असंगतता के एक प्रमुख कारक के रूप में ध्यान के गलत आवंटन (attention misallocation) को रेखांकित करती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
जासूस की दुविधा: AI कभी-कभी सुराग क्यों चूक जाता है
कल्पना कीजिए कि आप एक रहस्य सुलझाने की कोशिश कर रहे एक जासूस हैं। आपके पास सुरागों से भरी एक नोटबुक है: एक गवाह की कहानी, एक धुंधली फोटो, संदिग्धों की एक सूची और अपराध स्थल का एक नक्शा। केस सुलझाने के लिए, आपको हर पन्ना पढ़ना होगा, बिंदुओं को जोड़ना होगा, और यह समझना होगा कि वास्तव में कौन सा सुराग मायने रखता है। अब, कल्पना कीजिए कि आप उसी काम को करने के लिए एक सुपर-स्मार्ट रोबोट जासूस को काम पर रखते हैं। आप उसे नोटबुक सौंपते हैं, और वह तुरंत एक समाधान लिख देता है। लेकिन यहाँ अजीब बात यह है: कभी-कभी रोबोट रहस्य को पूरी तरह से सुलझा लेता है, और अन्य बार, वह पूरी तरह से विफल हो जाता है—यहाँ तक कि तब भी जब आप उसे बिल्कुल वही नोटबुक देते हैं!
यह लार्ज लैंग्वेज मॉडल्स (LLMs) और ऑटोमेटेड प्रोग्राम रिपेयर की दुनिया है। LLMs उन्हीं सुपर-स्मार्ट रोबोट्स की तरह हैं; ये विशाल मात्रा में टेक्स्ट और कोड पर प्रशिक्षित AI सिस्टम हैं। वे कहानियाँ लिख सकते हैं, सवालों के जवाब दे सकते हैं, और यहाँ तक कि कंप्यूटर प्रोग्राम के बग्स (गलतियों) को भी ठीक कर सकते हैं। "ऑटोमेटेड प्रोग्राम रिपेयर" बस एक फैंसी शब्द है जिसका अर्थ है AI से किसी टूटे हुए सॉफ्टवेयर और समस्या के विवरण को देखने और फिर उस बग को ठीक करने के लिए कोड लिखने के लिए कहना। लेकिन डेवलपर्स ने देखा है कि ये AI जासूस असंगत हैं। वे एक बग को आसानी से ठीक कर सकते हैं, लेकिन उसके ठीक बगल में स्थित लगभग एक जैसे ही दूसरे बग पर विफल हो सकते हैं। वैज्ञानिक जानना चाहते हैं: क्यों? क्या AI केवल अनुमान लगा रहा है, या वह गलत सुरागों को देख रहा है? यह पेपर AI के "दिमाग" में झाँकता है ताकि यह देख सके कि जब वह एक टूटे हुए प्रोग्राम को ठीक करने की कोशिश करता है, तो वह वास्तव में किस चीज़ पर ध्यान दे रहा है।
पेपर की बड़ी खोज: AI कहाँ देखता है, यह मायने रखता है
इस अध्ययन में, शोधकर्ताओं ने AI के ध्यान (अटेंशन) के साथ "अंतर पहचानो" (spot the difference) का खेल खेलने का निर्णय लिया। उन्होंने लोकप्रिय सॉफ्टवेयर प्रोजेक्ट्स (पायथन और जावा में लिखे गए) से 319 वास्तविक दुनिया के बग्स लिए और तीन अलग-अलग AI मॉडल्स को उन्हें ठीक करने के लिए कहा। कुछ मॉडल्स बड़े, महंगे, बंद-दरवाजे वाले (closed-door) थे (जैसे कि प्रोप्राइटरी claude-4-sonnet), और अन्य ओपन-सोर्स मॉडल्स थे (जैसे कि gpt-oss-20b और qwen-3-32b)।
यह जानने के लिए कि AI क्या सोच रहा था, शोधकर्ताओं ने परटर्बेशन एनालिसिस (perturbation analysis) नामक एक चतुर तकनीक का उपयोग किया। कल्पना कीजिए कि आपके पास केक बनाने की एक रेसिपी है, और आप जानना चाहते हैं कि कौन सी सामग्री सबसे महत्वपूर्ण है। आप केक को बिना आटे के, फिर बिना चीनी के, बेक करके देख सकते हैं, और देख सकते हैं कि किस एक से केक सबसे ज्यादा खराब होता है। शोधकर्ताओं ने बग रिपोर्ट्स के साथ भी ऐसा ही किया। उन्होंने एक बग रिपोर्ट ली—जिसमें आमतौर पर "क्या गलत हुआ," "इसे दोबारा कैसे तोड़ें," "सॉफ्टवेयर का कौन सा वर्जन इस्तेमाल किया गया था," और "कोड कैसा दिखता है" जैसे सेक्शन होते हैं—और उन्होंने गुप्त रूप से एक बार में एक सेक्शन को हटाया। फिर, उन्होंने AI को फिर से बग को ठीक करने के लिए कहा। यदि एक सेक्शन हटाने के बाद AI का फिक्स (सुधार) बहुत अधिक बदल गया, तो इसका मतलब था कि AI वास्तव में उस हिस्से पर ध्यान दे रहा था। यदि फिक्स समान रहा, तो AI को उस हिस्से की परवाह नहीं थी।
"डिफ्यूज्ड" (विस्तृत) बनाम "लोकलाइज्ड" (सीमित) अटेंशन पैटर्न
शोधकर्ताओं ने पाया कि AI सुरागों को देखने के दो बहुत अलग तरीके थे, और इन पैटर्न ने उन्हें सब कुछ बता दिया कि क्या सुधार काम करेगा या नहीं।
1. "डिफ्यूज्ड" डिटेक्टिव (विजेता):
जब AI सफल हुआ, तो उसने एक गहन जासूस की तरह काम किया। उसने बग रिपोर्ट के कई अलग-अलग हिस्सों पर अपना ध्यान फैला दिया। उसने बग विवरण (क्या गलत हुआ इसकी कहानी), स्टैकट्रेस (तकनीकी एरर लॉग जो कोड की सटीक लाइन की ओर इशारा करता है), और टेस्ट केसेस (कोड को कैसे व्यवहार करना चाहिए इसके उदाहरण) को देखा। शोधकर्ता इसे डिफ्यूज्ड अटेंशन कहते हैं। यह ऐसा था जैसे AI पूरी नोटबुक पढ़ रहा हो, गवाह की कहानी को नक्शे और फोटो से जोड़ रहा हो।
- परिणाम: जब AI ने ऐसा किया, तो उसके बग को ठीक करने की संभावना बहुत अधिक थी। वास्तव में, अध्ययन में पाया गया कि "डिफ्यूज्ड अटेंशन" सफलता से मजबूती से जुड़ा हुआ था।
2. "टनल विजन" डिटेक्टिव (हारने वाला):
जब AI विफल हुआ, तो उसने टनल विजन (एक ही बिंदु पर केंद्रित दृष्टि) वाले जासूस की तरह काम किया। वह एक छोटी, महत्वहीन विवरण पर अटक गया और बाकी सब कुछ अनदेखा कर दिया। अक्सर, वह वर्जन जानकारी (जैसे "सॉफ्टवेयर वर्जन 1.2.3" या "ऑपरेटिंग सिस्टम: लिनक्स") पर केंद्रित हो गया। यह एक ऐसे जासूस की तरह है जो हत्या के हथियार और गवाह को अनदेखा कर देता है, और इसके बजाय अपना सारा समय संदिग्ध के जूते के आकार को घूरने में बिता देता है।
- परिणाम: जब AI ने इन उबाऊ मेटाडेटा विवरणों पर बहुत अधिक ध्यान केंद्रित किया, तो वह आमतौर पर बग को ठीक करने में विफल रहा। अध्ययन ने दिखाया कि "लोकलाइज्ड अटेंशन" (केवल एक चीज़ पर ध्यान केंद्रित करना) इस बात का मजबूत संकेत था कि मरम्मत विफल हो जाएगी।
क्या AI और इंसान इस बात पर सहमत हैं कि क्या महत्वपूर्ण है?
शोधकर्ता यह भी जानना चाहते थे कि क्या AI उन्हीं सुरागों को देख रहा है जिन्हें मानव डेवलपर्स देखते हैं। यह पता लगाने के लिए, उन्होंने चार अनुभवी मानव डेवलपर्स को 100 समान बग रिपोर्ट्स को पढ़ने और उन हिस्सों को चिह्नित करने के लिए कहा जिन्हें वे सबसे महत्वपूर्ण समझते थे।
परिणाम अच्छे और बुरे समाचारों का मिश्रण थे:
- अच्छी खबर: जब AI सफल हुआ, तो वह आमतौर पर उन्हीं सेक्शन्स को देख रहा था जिन्हें इंसान महत्वपूर्ण समझते थे। AI और इंसानों के बीच शीर्ष सुरागों (जैसे बग विवरण) पर 54% बार सहमति बनी।
- बुरी खबर: जब AI विफल हुआ, तो उसने अक्सर मानव के शीर्ष सुरागों को अनदेखा कर दिया और गलत चीजों (जैसे वर्जन नंबर) पर ध्यान केंद्रित किया। अध्ययन में पाया गया कि AI का ध्यान मानव के ध्यान से जितना अधिक मेल खाता था, सफल फिक्स की संभावना उतनी ही अधिक थी।
यह पेपर क्या खारिज करता है
यह ध्यान रखना महत्वपूर्ण है कि इस अध्ययन ने क्या नहीं पाया। शोधकर्ताओं ने जांच की कि क्या बग की कठिनाई विफलता का मुख्य कारण थी। उन्होंने "आसान," "मध्यम," और "कठिन" बग्स को देखा। उन्होंने पाया कि हालांकि कठिन बग वास्तव में कठिन होते हैं, लेकिन बग की कठिनाई अकेले यह स्पष्ट नहीं कर सकी कि AI क्यों विफल हुआ। आसान बगों पर भी, AI विफल हो सकता था यदि उसके पास "टनल विजन" था और उसने सही सुरागों को अनदेखा कर दिया था। यह सुझाव देता है कि समस्या केवल यह नहीं है कि बग बहुत कठिन हैं; समस्या यह है कि AI कभी-कभी गलत जगह देख रहा होता है।
निष्कर्ष
यह पेपर सुझाव देता है कि AI को कोड ठीक करने में बेहतर बनाने का रहस्य केवल उसे अधिक डेटा देना या उसे स्मार्ट बनाना नहीं है। यह उसे पढ़ना सिखाना है। अध्ययन दिखाता है कि सफल मरम्मत तब होती है जब AI पूरी कहानी—लक्षणों, एरर लॉग्स और अपेक्षित व्यवहार—पर अपना ध्यान फैलाता है, बजाय इसके कि वह सॉफ्टवेयर वर्जन जैसे उबाऊ विवरणों पर अटक जाए।
यह समझकर कि AI "टनल विजन" से ग्रस्त हो सकता है, डेवलपर्स अब बेहतर निर्देश (प्रॉम्प्ट्स) डिजाइन कर सकते हैं जो AI को सही सुरागों को देखने के लिए मजबूर करें। यह एक जासूस को संदिग्ध के जूतों को घूरने के बजाय हत्या के हथियार को देखना सिखाने जैसा है। शोधकर्ताओं ने भविष्य के AI मॉडल्स को सही चीजों पर ध्यान देने के लिए प्रशिक्षित करने में मदद करने के लिए मानव-एनोटेटेड बग रिपोर्ट्स का एक नया डेटासेट भी बनाया है, जिससे उम्मीद है कि वे हमारे संसार को चलाने वाले सॉफ्टवेयर को ठीक करने में अधिक विश्वसनीय साथी बनेंगे।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।