CI-Repair-Bench: A Repository-Aware Benchmark for Automated Patch Validation via CI Workflows
यह शोध पत्र CI-Repair-Bench प्रस्तुत करता है, जो वास्तविक GitHub Actions निष्पादमनों (executions) से निर्मित एक रिपॉजिटरी-जागरूक बेंचमार्क है जो विशेष रूप से पूर्ण CI पुन: निष्पादन (re-execution) के माध्यम से स्वचालित प्रोग्राम मरम्मत का मूल्यांकन करता है, जिससे यह पता चलता है कि जहाँ LLM प्रभावी ढंग से स्थानीयकृत टूल-प्रवर्तित विफलताओं को संभालते हैं, वहीं वे जटिल वातावरण और निर्भरता संबंधी समस्याओं के साथ संघर्ष करते हैं।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक व्यस्त रेस्टोरेंट चलाने वाले शेफ हैं। आपके पास एक जटिल रेसिपी (आपका सॉफ्टवेयर कोड) है और रसोई के नियमों का एक सख्त सेट (आपका कंटीन्यूअस इंटीग्रेशन, या CI सिस्टम) है। हर बार जब आप रेसिपी में कोई बदलाव करते हैं, तो रसोई का ऑटोमेटेड इंस्पेक्टर उसकी जांच करता है। यह इंस्पेक्टर केवल खाने का स्वाद ही नहीं चखता; यह यह भी देखता है कि चूल्हा चालू है या नहीं, सामग्री ताजी है या नहीं, क्या शेफ ने सुरक्षा नियमों का पालन किया है, और क्या प्लेटिंग सही दिख रही है।
कभी-कभी, इंस्पेक्टर डिश को खारिज कर देता है। हो सकता है कि नमक गलत हो, शायद ओवन का तापमान ठीक न हो, या शायद रेसिपी में किसी ऐसी सामग्री की मांग की गई हो जो अब पेंट्री में नहीं है। इन खारिज किए गए डिशों को ठीक करना कठिन है क्योंकि समस्या रेसिपी की नहीं, बल्कि रसोई के सेटअप या नियमों की हो सकती है।
समस्या: सुधारने का "ब्लैक बॉक्स"
वर्तमान में, कोड को ठीक करने वाले कंप्यूटर प्रोग्राम (ऑटोमेटडेड प्रोग्राम रिपेयर) ऐसे शेफ की तरह हैं जो केवल रेसिपी बुक देखते हैं। वे सामग्री की सूची में टाइपो (लिखने की गलती) को ठीक करने में माहिर हैं, लेकिन वे तब विफल हो जाते हैं जब समस्या यह होती है कि ओवन खराब है, गलत मसाले खरीदे गए हैं, या रसोई के नियम बदल गए हैं। मौजूदा परीक्षण कार्यक्रम बहुत सरल हैं; वे यह मान लेते हैं कि रसोई एकदम सही है और केवल यह देखते हैं कि खाना कैसा बना है, जबकि वे पूरी रसोई की अव्यवस्थियों को नजरअंदाज कर देते हैं।
समाधान: CI-Repair-Bench
लेखकों ने एक नया, वास्तविक प्रशिक्षण मैदान बनाया है जिसे CI-Repair-Bench कहा जाता है। इसे एक "वास्तविक, अव्यवस्थित रेस्टोरेंट किचन के सिमुलेशन" के रूप में सोचें।
- वास्तविक डेटा: नकली समस्याओं के बजाय, उन्होंने GitHub से 103 वास्तविक सॉफ्टवेयर प्रोजेक्ट्स से "खारिज की गई डिशों" के 567 वास्तविक उदाहरण एकत्र किए।
- पूर्ण निरीक्षण: यह साबित करने के लिए कि सुधार काम करता है, सिस्टम केवल स्वाद की जांच नहीं करता है। यह पूरी रसोई निरीक्षण प्रक्रिया को फिर से चलाता है: चूल्हे की जांच करना, सामग्री की जांच करना, सुरक्षा नियमों की जांच करना और अंतिम स्वाद देखना। यदि डिश इनमें से किसी भी जांच में विफल रहती है, तो सुधार को असफल माना जाता है।
- विविधता: उन्होंने विफलताओं को 12 श्रेणियों में विभाजित किया है, जो "प्लेटिंग अव्यवस्थित है" (फॉर्मेटिंग) से लेकर "ओवन खराब है" (एनवायरनमेंट एरर) और "हमारे पास सही आटा नहीं है" (डिपेंडेंसी इश्यूज) तक फैली हुई हैं।
प्रयोग: क्या AI शेफ इसे ठीक कर सकते हैं?
शोधकर्ताओं ने यह देखने के लिए चार अलग-अलग "AI शेफ" (लार्ज लैंग्वेज मॉडल्स) का परीक्षण किया कि क्या वे केवल इंस्पेक्टर के नोट्स (एरर लॉग्स) का उपयोग करके इन खारिज की गई डिशों को ठीक कर सकते हैं।
यहाँ उन्हें क्या मिला:
- "आसान" सुधार: AI "प्लेटिंग" संबंधी समस्याओं को ठीक करने में आश्चर्यजनक रूप से अच्छा था। यदि त्रुटि यह थी कि "आपका कोड सही ढंग से फॉर्मेट नहीं किया गया है" या "आप एक कॉमा भूल गए हैं", तो AI इसे लगभग 35% बार ठीक कर सका। यह एक ऐसे शेफ की तरह है जो प्लेट को साफ करने में माहिर है।
- "कठिन" सुधार: AI जटिल चीजों के साथ बुरी तरह संघर्ष करता है। जब समस्या "ओवन खराब है" (एनवायरनमेंट इश्यूज) या "हमें एक विशिष्ट ब्रांड के आटे की आवश्यकता है जो इंस्टॉल नहीं है" (डिपेंडेंसी इश्यूज) जैसी थी, तो सफलता दर गिरकर लगभग शून्य (अक्सर 9% से कम) हो गई। AI यह समझ नहीं पाया कि समस्या रेसिपी की नहीं, बल्कि खुद रसोई की थी।
- "नोट्स पढ़ने" का कारक: AI की सफलता इस बात पर निर्भर थी कि वह इंस्पेक्टर के नोट्स को कितनी अच्छी तरह पढ़ता है।
- स्मार्ट रीडिंग (एजेंट-आधारित): जब AI को लंबे, उलझे हुए नोट्स को ध्यान से पढ़ने, उनका सारांश निकालने और स्टेप-बाय-स्टेप सोचने के लिए कहा गया, तो इसने बहुत बेहतर प्रदर्शन किया।
- कीवर्ड सर्चिंग (रिट्रीवल-आधारित): जब AI ने नोट्स में केवल कीवर्ड्स को खोजा (जैसे एक साधारण सर्च बार), तो वह भ्रमित हो गया और बहुत अधिक विफल हुआ।
- उपमा: यह उस शेफ के बीच का अंतर है जो संदर्भ समझने के लिए पूरी शिकायत पत्र को पढ़ता है बनाम उस शेफ के बीच जो केवल "जला हुआ" शब्द को देखता है और मान लेता है कि खाना जल गया है।
बड़ी सीख
पेपर यह निष्कर्ष निकालता है कि हालांकि AI छोटे, विशिष्ट कोड एरर्स को ठीक करने में बेहतर हो रहा है, लेकिन यह इस बात को समझने में अभी भी बहुत कमजोर है कि वास्तविक दुनिया में सॉफ्टवेयर कैसे चलता है।
- वर्तमान सीमा: AI "टाइपो" और "स्टाइल" की समस्याओं को ठीक कर सकता है, लेकिन वह उलझ जाता है जब समस्या एनवायरनमेंट, डिपेंडेंसी या जटिल सिस्टम कॉन्फ़िगरेशन से जुड़ी होती है।
- अंतराल (द गैप): "एक पैच लगाने" (कोड बदलना) और "पूर्ण निरीक्षण पास करने" (पूरी प्रणाली को काम करने योग्य बनाना) के बीच एक बड़ा अंतर है। AI द्वारा बनाए गए अधिकांश पैच सही दिखते थे लेकिन पूर्ण किचन निरीक्षण में विफल रहे क्योंकि उन्होंने अंतर्निहित एनवायरनमेंट या डिपेंडेंसी समस्याओं को ठीक नहीं किया था।
संक्षेप में, CI-Repair-Bench एक नया, कठिन परीक्षण है जो हमें दिखाता है कि हमारे AI रिपेयर टूल्स कहाँ मजबूत हैं (छोटे कोड विवरणों को ठीक करने में) और कहाँ वे कमजोर हैं (उन जटिल, वास्तविक दुनिया के सिस्टमों को ठीक करने में जो कोड चलाते हैं)। यह साबित करता है कि वास्तविक दुनिया में सॉफ्टवेयर को ठीक करने के लिए, हमें ऐसे AI की आवश्यकता है जो पूरी रसोई को समझता हो, न कि केवल रेसिपी को।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।