An Empirical Investigation of Multi-Trial Consistency, Trajectory Pathologies, and Reliability Rankings in Software Engineering Agents
यह शोध पत्र स्वायत्त सॉफ्टवेयर इंजीनियरिंग एजेंटों की निरंतरता, विश्वसनीयता और प्रक्षेपवक्र विकृतियों (trajectory pathologies) का आकलन करने के लिए एक व्यापक बहु-परीक्षण मूल्यांकन ढांचे का प्रस्ताव करता है, जो एक पायलट अध्ययन के माध्यम से अपनी परिचालन व्यवहार्यता को प्रदर्शित करता है जो महत्वपूर्ण बुनियादी ढांचा सेंसरिंग दरों को प्रकट करता है और एकल-परीक्षण सफलता मेट्रिक्स से आगे बढ़ने के लिए एक आधार स्थापित करता है।
मूल पेपर CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
सॉफ्टवेयर विकास की आधुनिक दुनिया में, इंजीनियरों की टीमें कोड की विशाल लाइब्रेरी का रखरखाव करती हैं जो बग खोजने और उन्हें ठीक करने के लिए स्वचालित उपकरणों पर निर्भर करती हैं। हाल ही में, आर्टिफिशियल इंटेलिजेंस की एक नई पीढ़ी उभरी है, जो स्वायत्त सहायकों (autonomous assistants) के रूप में कार्य करने में सक्षम है जो इन कोडबेस को पढ़ सकते हैं, समस्याओं को समझ सकते हैं और अपने आप आवश्यक सुधार लिखने का प्रयास कर सकते हैं। ये सिस्टम, जो अक्सर लार्ज लैंग्वेज मॉडल्स द्वारा संचालित होते हैं, नियंत्रित परीक्षणों में जटिल कोडिंग कार्यों को हल करने में सक्षम रहे हैं। हालांकि, एक महत्वपूर्ण प्रश्न अनुत्तरित है: क्या इन डिजिटल श्रमिकों पर हर बार भरोसेमंद तरीके से वही काम करने के लिए भरोसा किया जा सकता है? वास्तविक दुनिया में, जहाँ सॉफ्टवेयर अपडेट स्वचालित रूप से तैनात किए जाते हैं, एक ऐसा सहायक जो एक बार सफल होता है लेकिन अगली बार बिल्कुल उसी काम को करने के लिए पूछे जाने पर विफल हो जाता है, अराजकता पैदा करता है। यह अनिश्चितता लाता है, जिससे मानव डेवलपर्स को लगातार काम की जांच करनी पड़ती है, जो स्वचालन (automation) के उद्देश्य को ही विफल कर देता है। मुख्य चुनौती केवल यह नहीं है कि क्या एक AI किसी समस्या को हल कर सकता है, बल्कि यह है कि क्या वह भ्रमित हुए बिना, यादृच्छिक त्रुटियां किए बिना, या सिस्टम को तोड़ने वाले तरीकों से अपना दृष्टिकोण बदले बिना इसे लगातार कर सकता है।
लाहौर, पाकिस्तान में यूनिवर्सिटी ऑफ इंजीनियरिंग एंड टेक्नोलॉजी के एक शोधकर्ता ने इस विश्वसनीयता को मापने का एक नया तरीका प्रस्तावित किया है, जो केवल यह गिनने के वर्तमान मानक से आगे बढ़कर है कि एक AI कितनी बार एक एकल प्रयास में सही होता है। वर्तमान विधि, जिसे 'सिंगल-ट्रायल पास रेट' कहा जाता है, एक AI के साथ एक छात्र की तरह व्यवहार करती है जो एक बार की परीक्षा दे रहा हो: यदि उत्तर सही है, तो छात्र पास हो जाता है, चाहे वह इसे दोबारा हल कर पाता या नहीं। यह नया अध्ययन तर्क देता है कि सॉफ्टवेयर इंजीनियरिंग के लिए, यह दृष्टिकोण अपर्याप्त है। इसके बजाय, शोधकर्ता ने इन एजेंटों का एक ही समस्या पर कई बार परीक्षण करने के लिए एक कठोर प्रोटोकॉल डिजाइन किया, ताकि निरंतरता (consistency) देखी जा सके। लक्ष्य यह देखना था कि क्या AI एक कोड रिपॉजिटरी में नेविगेट कर सकता है, एक बग ढूंढ सकता है, और हर बार पूछे जाने पर ठीक उसी तरह से उसे ठीक कर सकता है, या बार-बार की जांच के तहत उसका प्रदर्शन ढह जाएगा।
इसका परीक्षण करने के लिए, शोधकर्ता ने लोकप्रिय ओपन-सोर्स प्रोजेक्ट्स से लिए गए वास्तविक कोडिंग कार्यों के एक विशिष्ट सेट को शामिल करते हुए एक बड़े पैमाने पर प्रयोग स्थापित किया। अध्ययन ने इन कार्यों को विभिन्न AI मॉडल्स और विभिन्न सॉफ्टवेयर फ्रेमवर्क्स के ग्रिड पर चलाने की योजना बनाई, जिसमें प्रत्येक कार्य को पूर्ण प्रदर्शन की पूरी तस्वीर प्राप्त करने के लिए पांच बार दोहराया गया। पूर्ण प्रयोग चलाने से पहले, शोधकर्ता ने एक "फिजिबिलिटी पायलट" (feasibility pilot) आयोजित किया ताकि यह सुनिश्चित हो सके कि परीक्षण मशीनरी सही ढंग से काम कर रही है। इस पायलट में दो विशिष्ट AI मॉडल्स और दो अलग-अलग सॉफ्टवेयर स्कैफोल्डिंग सिस्टम का उपयोग करके 30 विभिन्न कोडिंग समस्याओं के माध्यम से 360 प्रयासों की योजना बनाई गई थी। हालांकि, इन 360 प्रयासों में से केवल 312 को सफलतापूर्वक पूरा और विश्लेषित किया गया, जबकि 48 को बाहरी कारकों द्वारा बाधित किया गया। शोधकर्ताओं ने AI द्वारा उठाए गए प्रत्येक कदम को सावधानीपूर्वक ट्रैक किया, न केवल यह रिकॉर्ड किया कि वह सफल हुआ या विफल, बल्कि यह भी कि उसे कितनी बार अपना निर्णय बदलना पड़ा, उसने कंप्यूटर टूल्स का उपयोग करते समय कितनी बार गलतियाँ कीं, और परीक्षण इंफ्रास्ट्रक्चर स्वयं कितनी बार विफल हुआ।
पायलट अध्ययन से पता चला कि परीक्षण वातावरण स्वयं नाजुक है। नियोजित 360 प्रयासों में से 48 को बाहरी कारकों, जैसे कि क्लाउड सर्विस प्रोवाइडर के टाइम-आउट होने या कंप्यूटर कंटेनर के अप्रत्याशित रूप से रीसेट होने के कारण बाधित किया गया था। इसके परिणामस्वरूप 13.3 प्रतिशत की रद्दीकरण दर (cancellation rate) सामने आई, जो यह रेखांकित करती है कि इन जटिल परीक्षणों को विश्वसनीय रूप से चलाना कितना कठिन है। इससे भी महत्वपूर्ण बात यह है कि पायलट ने दिखाया कि वर्तमान परीक्षण बजट सफल मरम्मत (repairs) उत्पन्न करने के लिए बहुत छोटा था। क्योंकि AI को प्रति प्रयास बातचीत या क्रिया के केवल पांच दौर तक सीमित रखा गया था, इसलिए 312 पूर्ण एपिसोड में से एक भी सफल सुधार नहीं हुआ। एजेंटों ने अपना सारा सीमित समय केवल कोड को नेविगेट करने और समस्या को समझने में बिता दिया, और वे समाधान लागू करने के चरण तक कभी नहीं पहुँच पाए।
इन सफल मरम्मतों की कमी के बावजूद, अध्ययन ने सफलतापूर्वक यह प्रदर्शित किया कि इन एजेंटों के व्यवहार पर विस्तृत डेटा एकत्र करना संभव है। शोधकर्ताओं ने उन विशिष्ट प्रकार की त्रुटियों की पहचान की जो तब होती हैं जब AI कंप्यूटर सिस्टम के साथ इंटरैक्ट करने की कोशिश करता है, जैसे कि ऐसे कमांड जेनरेट करना जिन्हें कंप्यूटर समझ नहीं सकता या ऐसी फाइलों तक पहुँचने की कोशिश करना जो मौजूद नहीं हैं। उन्होंने "कोड चर्न" (code churn) को मापने के नए तरीके भी विकसित किए, जो यह ट्रैक करता है कि AI अंतिम उत्तर पर पहुँचने से पहले अपने स्वयं के कार्य में कितना परिवर्तन करता है। उच्च स्तर का चर्न यह दर्शाता है कि एजेंट अनिर्णायक या अस्थिर है, जो बिना किसी स्पष्ट योजना के अपने कोड को लगातार फिर से लिख रहा है। अध्ययन ने "टूल फेल्योर" (tool failure) के लिए एक मीट्रिक भी पेश किया, जो AI की खराब तर्क क्षमता के कारण होने वाली त्रुटियों और कंप्यूटर सिस्टम के क्रैश होने के कारण होने वाली त्रुटियों के बीच अंतर करता है।
पेपर इस निष्कर्ष पर पहुँचता है कि हालांकि ये AI एजेंट आशाजनक दिखते हैं, लेकिन मूल्यांकन का वर्तमान तरीका अधूरा है। केवल एकल प्रयासों पर ध्यान केंद्रित करके, उद्योग उस "फ्लैकीनेस" (flakiness) को अनदेखा कर देता है जो इन उपकरणों को वास्तविक दुनिया के उपयोग के लिए अविश्वसनीय बनाती है। शोधकर्ता का तर्क है कि एक वास्तव में विश्वसनीय एजेंट को कई परीक्षणों में लगातार समस्या को हल करने में सक्षम होना चाहिए, न कि केवल एक बार भाग्यशाली होना चाहिए। पायलट अध्ययन ने सिद्ध किया कि निरंतरता को मापने के लिए आवश्यक उपकरण मौजूद हैं और इंफ्रास्ट्रक्चर डेटा संग्रह को संभाल सकता है, भले ही वर्तमान AI मॉडल अभी पूर्ण परीक्षण पास करने के लिए तैयार न हों। निष्कर्ष बताते हैं कि भविष्य के मूल्यांकन को सरल पास-या-फेल स्कोर से आगे बढ़कर AI की यात्रा के विस्तृत लॉग्स को शामिल करना चाहिए, जिसमें यह मापा जाए कि वह कितनी बार लड़खड़ाता है, कितनी बार हिचकिचाता है, और कितनी बार बाहरी व्यवधानों के कारण कार्य पूरा करने में विफल रहता है।
इस कार्य का अंतिम लक्ष्य स्वचालित सॉफ्टवेयर इंजीनियरिंग में विश्वास का एक नया मानक स्थापित करना है। जिस तरह एक मानव कर्मचारी को उसकी असंगतता और अविश्वसनीयता के लिए निकाल दिया जाता है, उसी तरह एक AI सहायक को भी यह सिद्ध करना होगा कि वह स्थिरता के साथ अपने कर्तव्यों का पालन कर सकता है। यह अध्ययन दावा नहीं करता है कि वर्तमान AI मॉडल्स ने स्वचालित मरम्मत की समस्या को हल कर लिया है; वास्तव में, पायलट डेटा ने सख्त परिस्थितियों में शून्य सफल मरम्मत दिखाई। इसके बजाय, यह भविष्य में इन प्रणालियों को ठीक से परखने के लिए एक ब्लूप्रिंट प्रदान करता है। निरंतरता के लिए नए मेट्रिक्स को परिभाषित करके और उन विशिष्ट विकृतियों (pathologies) को ट्रैक करके जो विफलता का कारण बनती हैं, शोधकर्ता ने सॉफ्टवेयर विकास में आर्टिफिशियल इंटेलिजेंस के अधिक ईमानदार और कठोर मूल्यांकन की नींव रखी है। आगे का रास्ता लंबे समय की सीमा और अधिक शक्तिशाली मॉडल्स के साथ पूर्ण-स्तरीय प्रयोग चलाने में निहित है, ताकि यह देखा जा सके कि निरंतरता में सुधार होता है या एजेंट अपनी त्रुटियों में और अधिक परिष्कृत हो जाते हैं। तब तक, उद्योग को यह पहचानना चाहिए कि जटिल सॉफ्टवेयर रखरखाव की दुनिया में एक सफल फिक्स पर्याप्त नहीं है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।