← नवीनतम पेपर
🤖 machine learning

Evaluating and Mitigating the Misguidance Effect of Buggy Code in LLM-Generated Unit Tests

यह शोध पत्र "मिस्गाइडेंस इफेक्ट" (misguidance effect) की पहचान और मात्रा निर्धारण करता है, जहाँ त्रुटिपूर्ण कोड (buggy code) LLMs को ऐसे परीक्षण उत्पन्न करने के लिए प्रेरित करता है जो त्रुटियों का पता लगाने के बजाय उन्हें मान्य करते हैं, और एक विनिर्देश-आधारित प्रॉम्प्टिंग प्रतिमान (specification-based prompting paradigm) प्रस्तावित करता है जो अधिक प्रभावी यूनिट टेस्ट उत्पन्न करने के लिए त्रुटिपूर्ण कोड को जनरेट किए गए विनिर्देशों (specifications) से बदलकर इस समस्या को प्रभावी ढंग से कम करता है।

मूल लेखक: Junda Zhao, Shurui Zhou, Eldan Cohen

प्रकाशित 2026-07-28
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Junda Zhao, Shurui Zhou, Eldan Cohen

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

कल्पना कीजिए कि आप एक रोबोट शेफ हैं जो एक आदर्श केक बनाना सीखने की कोशिश कर रहे हैं। आपके पास एक रेसिपी बुक है, लेकिन उसका एक पन्ना एक गंदी, गलत निर्देश से दागदार है: "चीनी के बजाय एक कप नमक डालें।" यदि आप एक स्मार्ट एआई से एक टेस्ट लिखने के लिए कहते हैं ताकि यह जांचा जा सके कि केक का स्वाद सही है या नहीं, और आप उसे वह दागदार पन्ना दिखाते हैं, तो एआई भ्रमित हो सकता है। वह सोच सकता है, "ओह, रेसिपी में नमक लिखा है, तो केक का स्वाद नमकीन होना चाहिए!" और फिर वह एक ऐसा टेस्ट लिख सकता है जो कहता है, "यम्मी, यह नमकीन केक एकदम सही है!" एआई मूर्ख नहीं हो रहा है; वह बस बहुत अधिक मददगार होने की कोशिश कर रहा है। वह दिए गए निर्देशों को समझने की कोशिश कर रहा है, भले ही वे निर्देश गलत हों। यह सॉफ्टवेयर टेस्टिंग की दुनिया में एक समस्या का केंद्र है, एक ऐसा क्षेत्र जहाँ कंप्यूटर अन्य कंप्यूटरों की जाँच करते हैं ताकि यह सुनिश्चित किया जा सके कि वे क्रैश न हों या बुरा व्यवहार न करें।

इस डिजिटल किचन में, "लार्ज लैंग्वेज मॉडल्स" (LLMs) सुपर-स्मार्ट एआई शेफ हैं। वे कोड लिखने और "यूनिट टेस्ट" बनाने में माहिर हैं, जो कि एक तरह के छोटे 'टेस्ट-टेस्ट' हैं जो यह जाँचते हैं कि प्रोग्राम का एक विशिष्ट हिस्सा सही ढंग से काम करता है या नहीं। आमतौर पर, वैज्ञानिक इन एआई शेफों का परीक्षण उन्हें एकदम सही, बग-मुक्त रेसिपी देकर करते हैं। लेकिन वास्तविक दुनिया में, जिस कोड का हमें परीक्षण करना होता है, वह अक्सर पहले से ही टूटा हुआ या गलत होता है। यह पेपर एक डरावना सवाल पूछता है: क्या होता है जब हम एक एआई को एक टेस्ट लिखने के लिए कहते हैं जो पहले से ही खराब रेसिपी के लिए हो? क्या एआई गलती को सुधार देता है, या क्या वह गलती को अनजाने में सीख लेता है और उसे सही साबित करने की कोशिश करता है?

इस पेपर के लेखक, जुंडा झाओ, सुरुई झोउ और एल्डन कोहेन ने इस "मिस्गाइडेड इफेक्ट" (भ्रमित प्रभाव) की जांच करने का निर्णय लिया। उन्होंने पाया कि जब आप एक एआई को कोड का एक त्रुटिपूर्ण हिस्सा दिखाते हैं, तो एआई अक्सर धोखा खा जाता है। "यह टूटा हुआ हिस्सा बिल्कुल इच्छित तरीके से काम कर रहा है!" कहने वाला टेस्ट लिखने के बजाय, एआई एक ऐसा टेस्ट लिखता है जो कहता है, "यह टूटा हुआ काम बिल्कुल सही चल रहा है!" यह वैसा ही है जैसे एआई शेफ नमकीन केक का स्वाद लेता है और एक समीक्षा लिखता है कि "फाइव स्टार! यह नमकीनपन एक विशेषता है, कोई बग नहीं।"

शोधकर्ताओं ने पाया कि यह प्रभाव दोहरा झटका है। पहला, यह बहुत सारे "मिस्गाइडेड टेस्ट" बनाता है जो त्रुटियों की पुष्टि करते हैं। दूसरा, यह एआई को "प्रभावी टेस्ट" लिखने से रोकता है जो वास्तव में बग को ढूंढ सकें। यह ऐसा है जैसे एआई उस गलती को सही ठहराने में इतना व्यस्त है कि वह असली समस्या को देखना ही भूल जाता है। यह साबित करने के लिए कि यह केवल एक इत्तेफाक नहीं था, उन्होंने एआई के "दिमाग" (इसके आंतरिक स्कोरिंग सिस्टम) के अंदर देखा और पाया कि जब टूटे हुए कोड उसके सामने था, तो एआई वास्तव में गलत उत्तर को प्राथमिकता दे रहा था।

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

परिणाम आश्चर्यजनक रूप से अच्छे थे। टूटे हुए कोड को एक स्पष्ट विवरण से बदलकर, एआई ने नमकीनपन की प्रशंसा करने वाले टेस्ट लिखना बंद कर दिया। इसके बजाय, उसने उन टेस्टों को लिखना शुरू कर दिया जो गायब चीनी की पहचान सही ढंग से करते थे। लेखक ने पाया कि इस पद्धति ने भ्रमित, गलत टेस्टों की संख्या को कम किया और उन टेस्टों की संख्या में काफी वृद्धि की जो वास्तव में बग्स को पकड़ लेते थे। उन्होंने इसे एक उन्नत संस्करण के साथ भी आजमाया जहाँ एआई को विवरण लिखने से पहले रेसिपी में त्रुटियों का विश्लेषण करना था, और इसने और भी बेहतर काम किया।

महत्वपूर्ण रूप से, यह पेपर दिखाता है कि यह तरकीब तब भी काम करती है जब रेसिपी टूटी हुई नहीं होती है। यदि कोड पहले से ही एकदम सही है, तो विवरण का उपयोग करने से टेस्ट खराब नहीं होते; यह उन्हें बस उतना ही अच्छा बनाए रखता है। इसका मतलब है कि इस पद्धति का वास्तविक दुनिया में उपयोग करना सुरक्षित है, जहाँ हमें अक्सर यह नहीं पता होता कि कोड टूटा हुआ है या नहीं।

संक्षेप में, यह पेपर सुझाव देता है कि जब हम चाहते हैं कि एआई हमारे सॉफ़्टवेयर में बग ढूंढे, तो हमें केवल उसे टूटा हुआ कोड देकर उम्मीद नहीं लगानी चाहिए। इसके बजाय, हमें एआई से पहले यह कल्पना करने के लिए कहना चाहिए कि कोड को क्या करना चाहिए, और फिर उस आदर्श दृष्टि के विरुद्ध परीक्षण करना चाहिए। यह दृष्टिकोण में एक सरल बदलाव है जो एआई को टूटे हुए कोड के लिए "हाँ में हाँ मिलाने वाला" बनने के बजाय सॉफ़्टवेयर गुणवत्ता के लिए एक सच्चा जासूस बनने में मदद करता है।

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

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

Digest आज़माएँ →