Decided or Open? Comparing Program Repair Techniques When Patch Correctness Is Unknown
यह शोध पत्र अनिश्चितता के तहत स्वचालित प्रोग्राम रिपेयर तकनीकों की तुलना करने के लिए एक "निर्णीत या खुला" (decided or open) ढांचे का प्रस्ताव करता है, जो सफलता दर के संभावित अंतर की पूर्ण सीमा की गणना करके, शोधकर्ताओं को यह पहचानने में सक्षम बनाता है कि किन तुलनाओं को आगे के परीक्षणों से सुलझाया जा सकता है और विभिन्न मॉडलों के बीच संग्रहीत परीक्षण परिणामों की विश्वसनीयता में महत्वपूर्ण विसंगतियों को प्रकट करता है।
मूल पेपर CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
सॉफ्टवेयर की दुनिया में, प्रोग्राम अनिवार्य रूप से टूट जाते हैं। जब कोड का कोई हिस्सा वह काम करने में विफल रहता है जो उसे करना चाहिए, तो एक डेवलपर को त्रुटि ढूंढनी पड़ती है और त्रुटि को ठीक करने के लिए कोड का एक नया संस्करण लिखना पड़ता है। यह प्रक्रिया धीमी और कठिन है, इसलिए शोधकर्ताओं ने दशकों तक ऐसे कंप्यूटर प्रोग्राम बनाने की कोशिश की है जो स्वचालित रूप से सुधार कर सकें। ये स्वचालित उपकरण एक टूटे हुए प्रोग्राम को स्कैन करते हैं, हजारों संभावित समाधान उत्पन्न करते हैं, और उनमें से उस एक को चुनने की कोशिश करते हैं जो काम करता है। यह जानने के लिए कि क्या ये उपकरण बेहतर हो रहे हैं, वैज्ञानिक आपस में उनकी तुलना करते हैं। वे उपकरणों को ज्ञात टूटे हुए प्रोग्रामों के एक सेट पर चलाते हैं और गिनते हैं कि प्रत्येक उपकरण ने कितनी बार सही सुधार (फिक्स) दिया। लेकिन इस तुलना में एक छिपी हुई समस्या है: अक्सर, वैज्ञानिकों को वास्तव में यह पता नहीं होता कि उत्पन्न किया गया सुधार सही है या नहीं। एक सुधार उन परीक्षणों को पास कर सकता है जो कंप्यूटर चलाता है, लेकिन यह गारंटी नहीं देता कि वह सही है; यह केवल एक चतुर झूठ हो सकता है जो विशेष रूप से पूछे गए प्रश्नों के लिए काम कर जाता है। बिना किसी मानवीय जांच के, कई सुधार एक ग्रे क्षेत्र (धुंधले क्षेत्र) में रह जाते हैं, जिन्हें न तो सही माना जाता है और न ही गलत।
यह अनिश्चितता यह बताने को असंभव बना देती है कि कौन सा स्वचालित मरम्मत उपकरण वास्तव में सबसे अच्छा है। यदि दो उपकरणों की तुलना की जाती है, और परिणाम कुछ अनवेरिफाइड (अपुष्ट) सुधारों पर निर्भर करता है, तो विजेता केवल एक संयोग हो सकता है। ब्राक यूनिवर्सिटी के सदनान नफीस द्वारा किया गया एक नया अध्ययन इस समस्या को सीधे तौर पर संबोधित करता है। प्रत्येक अनवेरिफाइड सुधार के लिए उत्तर का अनुमान लगाने के बजाय, शोधकर्ता परिणामों की सीमा को मापने का एक तरीका विकसित करते हैं। उन्होंने एक सरल लेकिन शक्तिशाली प्रश्न पूछा: हमारे पास पहले से मौजूद जानकारी को देखते हुए, क्या तुलना का विजेता तय है, या यह पूरी तरह से अज्ञात सुधारों पर निर्भर है? हर संभव लापता जानकारी के लिए सर्वश्रेष्ठ और सबसे खराब परिदृश्यों की गणना करके, अध्ययन यह निर्धारित करता है कि क्या एक तुलना "तय" (decided) है या "खुली" (open) है। एक तय तुलना का अर्थ है कि अज्ञात सुधार कैसे भी हों, वही उपकरण जीतता है। एक खुली तुलना का अर्थ है कि विजेता लापता डेटा के आधार पर बदल सकता है।
अध्ययन ने 488 विभिन्न बग्स के लिए लगभग 55,000 संभावित सुधारों वाले एक विशाल संग्रह पर इस पद्धति को लागू किया। शोधकर्ताओं ने पाया कि एक स्मार्ट, लर्निंग-आधारित टूल और उसके सरल प्रतिद्वंद्वियों के बीच अधिकांश तुलनाओं के लिए, उत्तर उपलब्ध डेटा द्वारा पहले से ही तय था। सोलह में से बारह मामलों में, लर्निंग टूल स्पष्ट रूप रूप से बेहतर था, और यह निष्कर्ष तब भी सही रहा जब हर एक अज्ञात सुधार गलत निकला। हालांकि, चार तुलनाएं खुली रहीं, जिसका अर्थ था कि विजेता अनवेरिफाइड सुधारों पर निर्भर था। शोधकर्ताओं ने अधिक साक्ष्य जोड़ दिए, कोड को फिर से चलाया और जटिल मामलों की समीक्षा के लिए मनुष्यों को शामिल किया। इस अतिरिक्त कार्य ने सभी सोलह तुलनाओं को सुलझा दिया, जिससे पुष्टि हुई कि लर्निंग टूल ही हर मामले में विजेता था। लेकिन अध्ययन ने यह भी खुलासा किया कि ये अंतिम चार जीतें नाजुक थीं; यदि नए लेबल में से कुछ भी गलत होते, तो परिणाम बदल सकते थे।
सबसे आश्चर्यजनक खोजों में से एक परीक्षण प्रणाली की विश्वसनीयता की जांच करना था। शोधकर्ताओं ने देखा कि कभी-कभी परीक्षण प्रणाली सही ढंग से चलने में विफल रहती है, जिससे एक सही सुधार को विफलता के रूप में चिह्नित किया जाता है। इसे पकड़ने के लिए, उन्होंने उन मामलों को देखा जहां कंप्यूटर ने मानव डेवलपर के मूल सुधार की एक सटीक प्रति बनाई थी। चूंकि इसकी प्रति ज्ञात रूप से सही थी, इसलिए इसे हर परीक्षण पास करना चाहिए था। यदि सिस्टम इसे विफलता के रूप में चिह्नित करता है, तो सिस्टम टूटा हुआ था। उन्होंने पाया कि यह अलग-अलग एआई मॉडल के परीक्षण के आधार पर बहुत अलग दर से होता था। एक लोकप्रिय मॉडल के लिए, सिस्टम ने 33.5% मामलों में सही प्रति को गलत तरीके से खारिज कर दिया। दूसरे मॉडल के लिए, ऐसा केवल 2.5% समय हुआ। इसका मतलब था कि परीक्षण प्रणाली एक मॉडल पर दूसरे की तुलना में अनुचित रूप से दंडित कर रही थी, इसलिए नहीं कि वह मॉडल खराब था, बल्कि इसलिए क्योंकि टेस्ट हार्नेस (परीक्षण ढांचा) उसके साथ गलती करने की अधिक संभावना रखता था।
अध्ययन ने प्रयोग शुरू होने से पहले ही भविष्य के प्रयोगों के मूल्य का अनुमान लगाने का एक तरीका भी पेश किया। चूंकि एक परीक्षण केवल यह सिद्ध कर सकता है कि सुधार गलत है, लेकिन कभी भी यह सिद्ध नहीं कर सकता कि वह सही है, शोधकर्ताओं ने महसूस किया कि कुछ तुलनाओं को अकेले परीक्षण द्वारा कभी हल नहीं किया जा सकता। यदि एक परीक्षण अभियान का सर्वोत्तम संभव परिणाम बराबरी (tie) है, तो और अधिक परीक्षण चलाना समय की बर्बादी है। उन्होंने एक "प्री-फ्लाइट चेक" बनाया जो वर्तमान डेटा को देखता है और शोधकर्ताओं को बताता है कि कौन सी नई दौर की टेस्टिंग वास्तव में समाधान कर सकती है। एक वास्तविक दुनिया के परीक्षण में, उन्होंने अपने आने वाले परीक्षण अभियान के लिए अपनी भविष्यवाणियों को पहले ही प्रकाशित कर दिया। हर एक भविष्यवाणी सच साबित हुई: चेक ने सही ढंग से पहचाना कि कौन सी तुलनाएं सुलझ जाएंगी और कौन सी खुली रहेंगी, जिससे शोधकर्ताओं को उन प्रयोगों पर घंटों बर्बाद करने से बचाया गया जो परिणाम को बदल ही नहीं सकते थे।
निष्कर्षों का सुझाव है कि ऑटोमेटेड रिपेयर के क्षेत्र को अपने परिणाम रिपोर्ट करने के तरीके को बदलने की आवश्यकता है। एक एकल संख्या देने के बजाय जो यह दिखावा करती है कि सारा डेटा ज्ञात है, शोधकर्ताओं को संभावनाओं की सीमा रिपोर्ट करनी चाहिए। यह दृष्टिकोण ठोस निष्कर्षों को अस्थिर निष्कर्षों से अलग करता है। यह दिखाता है कि जबकि कुछ उपकरण स्पष्ट रूप से श्रेष्ठ हैं, अन्य बिना अधिक साक्ष्य के निर्णय लेने के लिए बहुत करीब हैं। यह यह भी उजागर करता है कि सफलता को मापने वाले उपकरण पूर्ण नहीं हैं और एक मॉडल को दूसरे पर पक्षपाती बना सकते हैं। इन नए चेक का उपयोग करके, वैज्ञानिक अपना ध्यान उन तुलनाओं पर केंद्रित कर सकते हैं जिन्हें वास्तव में अधिक डेटा की आवश्यकता है, न कि उन परिणामों के पीछे भाग सकते हैं जो पहले से ही तय हैं। यह कार्य पूर्ण सुधार खोजने की समस्या को हल नहीं करता है, लेकिन यह एक स्पष्ट मानचित्र प्रदान करता है कि सत्य कहाँ स्थित है और कहाँ छिपा हुआ है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।