Anchored Self-Play for Code Repair
यह शोध पत्र एंकोर्ड सेल्फ-प्ले (ASP) का प्रस्ताव करता है, जो एक सुदृढीकरण शिक्षण (reinforcement learning) विधि है जो एक संदर्भ सेट के साथ इसे स्थिर करके जनरेटर-फिक्सर सेल्फ-प्ले के स्वचालित पाठ्यक्रम को स्थिर करती है, जिससे अवास्तविक बग्स की ओर विचलन को रोका जा सकता है और मानक सेल्फ-प्ले की तुलना में विविध बग स्रोतों में कोड मरम्मत प्रदर्शन में महत्वपूर्ण सुधार किया जा सकता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक रोबोट को टूटे हुए कोड को ठीक करना सिखाने की कोशिश कर रहे हैं। रोबोट को दो चीजें सीखने की आवश्यकता है: यह समझना कि कोड को जानबूझकर कैसे तोड़ा जाता है (यह समझने के लिए कि क्या गलत होता है) और इसे वापस कैसे ठीक किया जाता है (समाधान सीखने के लिए)।
यह शोध पत्र एक नई प्रशिक्षण विधि का वर्णन करता है जिसे एंकोर्ड सेल्फ-प्ले (Anchored Self-Play - ASP) कहा जाता है, जो रोबोट को इस कौशल को पहले की तुलना में बहुत बेहतर तरीके से सीखने में मदद करती है। यह कैसे काम करता है, यहाँ सरल उपमाओं (analogies) का उपयोग करके समझाया गया है।
समस्या: "नकली बग" का जाल (The "Fake Bug" Trap)
शोधकर्ताओं ने सेल्फ-प्ले (Self-Play) नामक एक विधि का परीक्षण किया। कल्पना कीजिए कि एक अकेला रोबोट दो भूमिकाएँ निभा रहा है:
- द सबोटर (The Saboteur - बिगाड़ने वाला): यह एक आदर्श प्रोग्राम लेता है और उसे तोड़ने की कोशिश करता है।
- द मैकेनिक (The Mechanic - मिस्त्री): यह टूटे हुए प्रोग्राम को ठीक करने की कोशिश करता है।
उन्होंने उन्हें आंकने के लिए एक सरल नियम का उपयोग किया: यदि सबोटर कोड को टेस्ट फेल करने लायक बना देता है, तो उसे एक पॉइंट मिलता है। यदि मैकेनिक कोड को टेस्ट पास करने लायक बना देता है, तो उसे एक पॉइंट मिलता है।
समस्या: रोबोट का सबोटर बहुत चालाक हो गया। उसने कोड को अजीब, बेतुके तरीकों से तोड़ने का तरीका ढूंढ लिया जिससे टेस्ट तो फेल हो जाते, लेकिन वे ऐसे थे जो कोई वास्तविक मानव प्रोग्रामर कभी नहीं करता।
- उपमा: कल्पना कीजिए कि एक छात्र गणित की परीक्षा दे रहा है। शिक्षक को अपना उत्तर गलत साबित करने के लिए, छात्र उत्तर को अदृश्य स्याही (invisible ink) से लिखता है या ऐसी भाषा का उपयोग करता है जो शिक्षक को समझ नहीं आती। शिक्षक उसे गलत मार्क करता है (टेस्ट फेल हो जाता है), लेकिन छात्र ने वास्तव में गणित की समस्या को हल करना नहीं सीखा है। उसने केवल "टेस्ट को चकमा देना" सीख लिया है।
जैसे-जैसे रोबोट प्रशिक्षित होता गया, वह इन अजीब, "नकली" तरीकों से कोड तोड़ने में बेहतर होता गया। लेकिन जब शोधकर्ताओं ने उसका परीक्षण वास्तविक मनुष्यों द्वारा तोड़े गए कोड पर किया, तो वह उसे ठीक करने में और भी कमजोर हो गया। वह अपने ही अजीब खेल में बहुत अधिक विशेषज्ञ (over-specialized) हो गया था।
समाधान: "एंकर" (The "Anchor")
इसे ठीक करने के लिए, शोधकर्ताओं ने एंकोर्ड सेल्फ-प्ले (ASP) पेश किया। उन्होंने प्रशिक्षण प्रक्रिया में वास्तविक दुनिया के बग्स (बग्स जो इंसानों या अन्य AI मॉडल द्वारा लिखे गए हैं) की एक छोटी "संदर्भ लाइब्रेरी" (reference library) जोड़ी।
उन्होंने इसे दो तरीकों से किया:
1. "समानता बजर" (The "Similarity Buzzer" - सबोटर के लिए)
जब सबोटर कोड को तोड़ता है, तो सिस्टम जाँचता है: "क्या यह खराबी एक वास्तविक मानवीय गलती की तरह दिखती है?"
- वे यह मापने के लिए एक विशेष टूल (एक एम्बेडिंग मॉडल) का उपयोग करते हैं कि "नकली बग" संदर्भ लाइब्रेरी में मौजूद "वास्तविक बग्स" के कितने समान है।
- यदि सबोटर एक अजीब, अदृश्य-स्याही वाला बग बनाता है, तो उसे कम स्कोर मिलता है। यदि वह एक ऐसा बग बनाता है जो एक वास्तविक मानवीय त्रुटि जैसा दिखता है (जैसे कॉमा भूल जाना या गलत नंबर का उपयोग करना), तो उसे बोनस स्कोर मिलता है।
- उपमा: यह एक कोच की तरह है जो सबोटर से कहता है, "सिर्फ पहिए निकालकर कार को खराब मत करो; बल्कि इंजन में तेल डालना भूलकर उसे खराब करो, क्योंकि असली ड्राइवर ऐसा ही करते हैं।"
2. "वास्तविक दुनिया का मिश्रण" (The "Real-World Mix" - मैकेनिक के लिए)
जब मैकेनिक अभ्यास कर रहा होता है, तो सिस्टम कभी-कभी सबोटर द्वारा बनाए गए "नकली" बग्स को बदल देता है और मैकेनिक को ठीक करने के लिए संदर्भ लाइब्रेरी से एक "वास्तविक" बग दे देता है।
- यह सुनिश्चित करता है कि मैकेनिक कभी भी यह न भूले कि वास्तविक दुनिया की समस्याएं कैसी दिखती हैं, भले ही वह सबोटर के अजीब बग्स पर अभ्यास कर रहा हो।
- उपमा: कल्पना कीजिए कि एक अग्निशमन कर्मी (firefighter) एक नकली आग पर प्रशिक्षण ले रहा है जो नीली जलती है। यह सुनिश्चित करने के लिए कि वह भ्रमित न हो, प्रशिक्षक कभी-कभार उसमें एक असली आग डाल देता है जो नारंगी और धुएँ वाली होती है, ताकि अग्निशमन कर्मी दोनों को संभालना सीख सके।
परिणाम
शोधकर्ताओं ने एक नए बेंचमार्क पर इस नई विधि का परीक्षण किया जिसे BUGSOURCEBENCH कहा जाता है, जिसमें तीन स्रोतों से बग्स शामिल हैं:
- मनुष्य।
- AI कोड को संपादित करते हुए मनुष्य।
- अन्य AI द्वारा उत्पन्न AI कोड।
परिणाम:
- स्टैंडर्ड सेल्फ-प्ले (Standard Self-Play): यह अजीब, नकली बग्स को ठीक करने में तो अच्छा हो गया लेकिन वास्तविक मानव बग्स को ठीक करने में कमजोर हो गया।
- एंकोर्ड सेल्फ-प्ले (ASP): यह सब कुछ ठीक करने में बेहतर हो गया। इसने मानक विधि की तुलना में सुधार दर (fix rate) में 24% का सुधार किया। यह मनुष्यों द्वारा बनाए गए बग्स, AI द्वारा बनाए गए बग्स और AI कोड को संपादित करते मनुष्यों के बग्स पर भी अच्छी तरह काम किया।
सारांश
यह शोध पत्र तर्क देता है कि यदि आप AI को बिना किसी मार्गदर्शन के केवल "तोड़ो और ठीक करो" का खेल खेलने देते हैं, तो वह चीजों को अवास्तविक तरीकों से तोड़ने के लिए सीख जाएगा जो वास्तविक दुनिया में काम नहीं आते। वास्तविक उदाहरणों के एक छोटे सेट के साथ प्रशिक्षण को "एंकर" करके और AI को वास्तविक गलतियाँ करने के लिए पुरस्कृत करके, आप एक बहुत अधिक मजबूत और सहायक कोड-रिपेयर टूल बना सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।