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

HAFix: History-Augmented Large Language Models for Bug Fixing

यह शोध पत्र HAFix प्रस्तुत करता है, जो एक नवीन दृष्टिकोण है जो सात विशिष्ट ह्यूरिस्टिक्स (heuristics) और एक एकत्रीकरण रणनीति के माध्यम से समृद्ध ऐतिहासिक रिपॉजिटरी डेटा का लाभ उठाकर लार्ज लैंग्वेज मॉडल्स (Large Language Models) के बग-फिक्सिंग प्रदर्शन को महत्वपूर्ण रूप से बढ़ाता है, जो गैर-ऐतिहासिक बेसलाइन की तुलना में पर्याप्त सुधार प्रदर्शित करता है और इष्टतम प्रॉम्प्ट शैलियों की पहचान करता है तथा व्यावहारिक परिनियोजन लागत का विश्लेषण करता है।

मूल लेखक: Yu Shi, Abdul Ali Bangash, Emad Fallahzadeh, Bram Adams, Ahmed E. Hassan

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

मूल लेखक: Yu Shi, Abdul Ali Bangash, Emad Fallahzadeh, Bram Adams, Ahmed E. Hassan

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

कल्पना कीजिए कि आप एक मास्टर डिटेक्टिव हैं जो एक अपराध (एक सॉफ्टवेयर बग) को सुलझाने की कोशिश कर रहे हैं। आमतौर पर, जब आप घटनास्थल पर पहुँचते हैं, तो आप केवल कमरे को ठीक उसी तरह देखते हैं जैसा वह अभी है। आप टूटी हुई खिड़की और बिखरे हुए कागजात देखते हैं। अधिकांश वर्तमान एआई कोडिंग असिस्टेंट इसी तरह काम करते हैं: वे वर्तमान कोड को देखते हैं और अनुमान लगाते हैं कि इसे कैसे ठीक किया जाए।

लेकिन क्या होगा अगर आप कमरे के इतिहास को भी देख सकें? क्या होगा अगर आप पिछले सप्ताह का सुरक्षा फुटेज देख सकें, वहां रहने वाले लोगों की डायरी पढ़ सकें, और यह देख सकें कि समय के साथ कमरा कैसे बदला? आप शायद महसूस करेंगे, "आह! खिड़की इसलिए टूटी क्योंकि तीन महीने पहले किसी ने यहाँ एक भारी तस्वीर लटकाने की कोशिश की थी, और दीवार कमजोर थी!"

यह HAFix के पीछे का मूल विचार है, जो एक नया तरीका है जिसका वर्णन इस पेपर में किया गया है। यह लार्ज लैंग्वेज मॉडल्स (LLMs)—जो GitHub Copilot जैसे टूल्स के पीछे के "सुपर-स्मार्ट" एआई दिमाग हैं—को यह सिखाता है कि वे केवल वर्तमान को न देखें, बल्कि अतीत का अध्ययन करने वाले जासूसों की तरह व्यवहार करें।

यहाँ बताया गया है कि यह कैसे काम करता है, रोजमर्रा के उदाहरणों का उपयोग करते हुए:

1. समस्या: "भुलक्कड़" डिटेक्टिव

अधिकांश एआई कोडिंग टूल्स भुलक्कड़ डिटेक्टिव की तरह होते हैं। वे एक बग (कोड में गलती) देखते हैं और केवल वर्तमान स्क्रीन पर मौजूद कोड के आधार पर उसे ठीक करने की कोशिश करते हैं।

  • सीमा: वे संदर्भ (context) को चूक जाते हैं। यह लाइन इस तरह क्यों लिखी गई थी? इसे आखिरी बार किसने बदला था? बग आने से ठीक पहले क्या हुआ था? इस इतिहास के बिना, एआई अक्सर गलत अनुमान लगाता है या मूल कारण को पकड़ने में विफल रहता है।

2. समाधान: HAFix (द "टाइम-ट्रैवलिंग" डिटेक्टिव)

शोधकर्ताओं ने HAFix (History-Augmented LLMs for Bug Fixing) बनाया है। केवल टूटे हुए कोड को दिखाने के बजाय, वे इसे प्रोजेक्ट के इतिहास का एक "टाइम कैप्सूल" देते हैं।

वे एआई की मदद के लिए सात अलग-अलग "ऐतिहासिक सुरागों" (heuristics) का उपयोग करते हैं:

  • "कौन" का सुराग: इस फ़ाइल को आखिरी बार किसने छुआ था? (द "ब्लेम" कमिट)।
  • "क्या" का सुराग: उसी समय अन्य कौन सी फाइलें बदली गईं?
  • "कैसे" का सुराग: गलती होने से पहले कोड कैसा दिखता था?
  • "कहानी" का सुराग: जब डेवलपर ने यह बदलाव किया, तो वे वास्तव में क्या करने की कोशिश कर रहे थे?

उपमा: कल्पना कीजिए कि आप एक टपकते हुए नल को ठीक करने की कोशिश कर रहे हैं।

  • स्टैंडर्ड एआई: टपकते नल को देखता है और एक रैंडम नट को कसने की कोशिश करता है।
  • HAFix: नल को देखता है, साथ ही पिछले साल का प्लंबर का लॉगबुक देखता है, साथ ही पाइप स्थापित करने से पहले की तस्वीरें देखता है, साथ ही पिछले प्लंबर ने उस विशिष्ट वॉशर के ब्रांड को क्यों चुना था, उसके नोट्स देखता है। यह लीक के वास्तविक कारण को खोजने के लिए उस पूरे इतिहास का उपयोग करता है।

3. प्रयोग: सिद्धांत का परीक्षण

शोधकर्ताओं ने वास्तविक दुनिया के बग्स (एक पायथन के लिए, एक जावा के लिए) के दो विशाल पुस्तकालयों पर इसका परीक्षण किया। उन्होंने यह देखने के लिए तीन अलग-अलग "एआई दिमागों" (Code Llama, DeepSeek-Coder, आदि) का उपयोग किया कि क्या इतिहास देने से मदद मिली।

परिणाम एक खजाने के नक्टे को खोजने जैसे थे:

  • बेहतर सुधार: जब एआई के पास इतिहास तक पहुंच थी, तो उसने काफी अधिक बग्स को ठीक किया। औसतन, इसने "भुलक्कड़" संस्करण की तुलना में सफलता दर में लगभग 50% का सुधार किया।
  • "एग्रीगेशन" (एकत्रीकरण) का तरीका: उन्होंने पाया कि कोई भी एक सुराग एकदम सही नहीं था। कभी "कौन" वाला सुराग सबसे अच्छा था; कभी और भी समय "कैसे" वाला सुराग सबसे अच्छा था। इसलिए, उन्होंने HAFix-Agg नामक एक रणनीति बनाई, जो एआई को सातों ऐतिहासिक सुरागों को आज़माने और उनके परिणामों को मिलाने के लिए कहती है। यह सात अलग-अलग विशेषज्ञों के पैनल से सलाह लेने और समूह से सबसे अच्छा उत्तर लेने जैसा है। यह किसी भी एकल सुराग की तुलना में और भी बेहतर काम कर रहा था।

4. लागत: क्या यह समय के लायक है?

आप सोच सकते हैं, "अगर मुझे पूरा इतिहास पढ़ना होगा, तो क्या इसमें बहुत समय नहीं लगेगा?"

  • समझौता (Trade-off): हाँ, इतिहास देखने में अधिक समय और कंप्यूटर पावर (टोकन) लगता है।
  • स्मार्ट शॉर्टकट: शोधकर्ताओं ने "अर्ली स्टॉपिंग" (Early Stopping) नामक एक चतुर तकनीक की खोज की। कल्पना कीजिए कि आप किसी उत्तर को खोजने के लिए एक किताब पढ़ रहे हैं। यदि आपको पेज 10 पर उत्तर मिल जाता है, तो आपको पेज 11 से 500 तक पढ़ने की आवश्यकता नहीं है।
  • परिणाम: जैसे ही एआई को काम करने वाला समाधान मिल जाता है, उसे रोकने से, उन्होंने उच्च सफलता दर बनाए रखते हुए समय और लागत को 69% से 73% तक कम कर दिया।

5. गुप्त नुस्खा: सवाल कैसे पूछें

पेपर में यह भी परीक्षण किया गया कि एआई से मदद कैसे मांगनी है। उन्होंने अनुरोध को तीन तरीकों से पेश किया:

  1. निर्देश (Instruction): "यहाँ कोड है, यहाँ बग है, इसे ठीक करो।"
  2. लेबल (Label): "यहाँ कोड है, और मैंने टूटी हुई लाइन पर एक लाल टैग लगाया है।"
  3. मास्क (Mask): "यहाँ कोड है, लेकिन मैंने टूटी हुई लाइन को छिपा दिया है। खाली स्थान भरें।"

विजेता: सरल "निर्देश" (Instruction) शैली सबसे प्रभावी रही। यह पता चला कि इन एआई मॉडल्स के लिए, बस स्पष्ट रूप से कहना कि "यहाँ बग है, यहाँ इतिहास है, कृपया इसे ठीक करें" टैग लगाने या कोड के हिस्सों को छिपाने जैसी फैंसी चीजों की तुलना में अधिक प्रभावी है।

सारांश: यह क्यों मायने रखता है

यह पेपर साबित करता है कि इतिहास मायने रखता है। सॉफ्टवेयर विकास में, कोड कैसे विकसित हुआ, यह समझना कोड को देखने जितना ही महत्वपूर्ण है।

  • डेवलपर्स के लिए: इसका मतलब है कि भविष्य के एआई टूल्स बहुत अधिक स्मार्ट होंगे, जो वरिष्ठ इंजीनियरों की तरह काम करेंगे जिन्हें प्रोजेक्ट की पूरी यात्रा याद रहती है, न कि केवल वर्तमान क्षण।
  • भविष्य के लिए: यह सुझाव देता है कि हमें केवल बड़े एआई मॉडल नहीं बनाने चाहिए; हमें ऐसे एआई मॉडल बनाने चाहिए जो अतीत को पढ़ने में बेहतर हों।

संक्षेप में, HAFix एआई को अनुमान लगाना बंद करने और अनुभव से सीखना सिखाता है, जिससे सॉफ्टवेयर मरम्मत तेज़, सस्ती और बहुत अधिक सटीक हो जाती है।

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

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

Digest आज़माएँ →