ZeroCoder: Can LLMs Improve Code Generation Without Ground-Truth Supervision?
ZeroCoder एक पूर्णतः लेबल-मुक्त, सह-विकासवादी ढांचा है जो निष्पादन-आधारित फीडबैक और एक गतिशील बेयसियन चयनकर्ता का उपयोग करके एक कोड जनरेटर और एक टेस्ट जनरेटर को संयुक्त रूप से प्रशिक्षित करता है, जिससे ग्राउंड-ट्रुथ पर्यवेक्षण पर निर्भर किए बिना कोड जनरेशन प्रदर्शन में महत्वपूर्ण सुधार होता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक रोबोट को कंप्यूटर कोड लिखना सिखाने की कोशिश कर रहे हैं। आमतौर पर, एक रोबोट को सिखाने के लिए आपको एक मानव शिक्षक की आवश्यकता होती है जो रोबोट के काम को देखे, गलतियाँ ढूंढे और उसे ग्रेड दे। यह महंगा, धीमा और कठिन है क्योंकि हर समस्या के लिए पर्याप्त मानव शिक्षक उपलब्ध नहीं हैं।
ZeroCoder एक नया तरीका है जो एक साहसिक प्रश्न पूछता है: क्या रोबक खुद को बिना किसी मानव शिक्षक के सिखा सकता है?
इस शोध पत्र के अनुसार, उत्तर है हाँ। लेकिन यह केवल अपने ग्रेड का "अनुमान" नहीं लगाता है। इसके बजाय, यह एक ही रोबोट द्वारा निभाई जाने वाली दो भूमिकाओं के बीच एक चतुर साझेदारी का उपयोग करता है।
दो पात्र: द आर्किटेक्ट (Architect) और द इंस्पेक्टर (Inspector)
सोचिए कि रोबोट के पास दो टोपियाँ हैं जिन्हें वह बारी-बारी से पहनता है:
- द आर्किटेक्ट (कोडर): यह टोपी किसी समस्या को हल करने के लिए समाधान बनाने (कोड लिखने) की कोशिश करती है।
- द इंस्पेक्टर (टेस्टर): यह टोपी एक परीक्षण (नियमों का एक सेट) बनाने की कोशिश करती है ताकि यह देखा जा सके कि समाधान काम करता है या नहीं।
पारंपरिक तरीकों में, इंस्पेक्टर स्थिर होता है। यह एक कठोर चेकलिस्ट की तरह है जो कभी नहीं बदलती। यदि आर्किटेक्ट बेहतर होता है, तो पुराना चेकलिस्ट बहुत आसान हो सकता है, जिससे खराब कोड भी निकल जाए।
ZeroCoder का गुप्त मंत्र: यह आर्किटेक्ट और इंस्पेक्टर को सह-विकसित (co-evolve) बनाता है। वे एक-दूसरे को बेहतर बनाने के लिए एक साथ बढ़ते हैं।
यह कैसे काम करता है: "पास/फेल" का नृत्य
यहाँ प्रक्रिया के चरण दिए गए हैं, एक सरल उपमा का उपयोग करते हुए:
- डांस फ्लोर: आर्किटेक्ट एक समाधान के 8 अलग-अलग संस्करण लिखता है। इंस्पेक्टर एक परीक्षण के 8 अलग-अलग संस्करण लिखता है।
- ग्रिड: वे आपस में मिल जाते हैं। प्रत्येक समाधान को प्रत्येक परीक्षण के विरुद्ध चलाया जाता है। इससे पास/फेल परिणामों का एक विशाल ग्रिड (मैट्रिक्स) बनता है।
- उपमा: कल्पना कीजिए कि 8 डांसर (समाधान) 8 अलग-अलग म्यूजिक ट्रैक (परीक्षण) के साथ नाचने की कोशिश कर रहे हैं। कुछ डांस एकदम सही होते हैं; अन्य क्रैश हो जाते हैं।
- फ़िल्टर (रैंकिंग): सिस्टम ग्रिड को देखता है। यदि प्रत्येक समाधान प्रत्येक परीक्षण में पास हो जाता है, तो परीक्षण बहुत आसान है (बेकार है)। यदि प्रत्येक समाधान प्रत्येक परीक्षण में फेल हो जाता है, तो परीक्षण बहुत कठिन है या कोड टूटा हुआ है।
- ZeroCoder इन "बोरिंग" समस्याओं को हटा देता है। यह केवल उन्हें रखता है जहाँ परिणाम मिश्रित और दिलचस्प होते हैं। यह सुनिश्चित करता है कि रोबोट वास्तविक चुनौतियों से सीख रहा है, न कि आसान जीत या असंभव हार से।
- पुरस्कार (Reward):
- आर्किटेक्ट के लिए: यदि कोई समाधान "सर्वश्रेष्ठ" परीक्षणों को पास कर लेता है, तो उसे पुरस्कार मिलता है। यदि वह विफल रहता है, तो उसे दंड मिलता है।
- इंस्पेक्टर के लिए: यह पेचीदा हिस्सा है। आप इंस्पेक्टर को कैसे पुरस्कृत करेंगे?
- खराब इंस्पेक्टर: ऐसा परीक्षण लिखता है जो हर चीज़ के लिए "True" कहता है। (पास होना आसान है, लेकिन बेकार है)।
- अच्छा इंस्पेक्टर: ऐसा परीक्षण लिखता है जो सूक्ष्म त्रुटियों को पकड़ लेता है।
- ZeroCoder एक "म्यूटेशन" (Mutation) ट्रिक का उपयोग करता है। यह एक काम करने वाले समाधान को लेता है और उसे छोटे तरीकों से जानबूझकर बिगाड़ देता है (जैसे कि एक नंबर या शब्द बदलना)। यदि इंस्पेक्टर का परीक्षण उस टूटे हुए संस्करण को भी पकड़ पाता है, तो इंस्पेक्टर को उच्च पुरस्कार मिलता है! यह इंस्पेक्टर को स्मार्ट परीक्षण लिखने के लिए मजबूर करता है, न कि केवल आसान परीक्षण।
"ड्रिफ्टिंग" की समस्या (सेलेक्टर ड्रिफ्ट)
जैसे-जैसे रोबोट बेहतर होता है, वे नियम जिनका उपयोग वह "एक अच्छा समाधान क्या है" तय करने के लिए करता था, आपस में तालमेल खोने लगते हैं।
- उपमा: कल्पना कीजिए कि एक सॉकर गेम में एक रेफरी है जिसे 10 साल के बच्चों के लिए कैलिब्रेट किया गया था। जैसे-जैसे खिलाड़ी बड़े होते हैं और प्रो बनते हैं, उसके पुराने नियम (जैसे "बहुत तेज़ मत दौड़ो") अब समझ में नहीं आते। रेफरी उन चीजों पर फाउल बताने लगता है जो फाउल नहीं हैं। इसे सेलेक्टर ड्रिफ्ट (Selector Drift) कहा जाता है।
इसे ठीक करने के लिए, लेखकों ने DyB4 (डायनामिक B4) बनाया।
- एक कठोर नियम पुस्तिका के बजाय, DyB4 एक छोटे "कैलिब्रेशन सेट" (केवल 10 उदाहरण जिनके ज्ञात उत्तर हैं) का उपयोग करता है।
- प्रत्येक प्रशिक्षण सत्र से पहले, यह इन 10 उदाहरणों की जाँच करता है कि क्या इसके "रेफरी नियम" अभी भी सटीक हैं। यदि नियम गलत हैं, तो यह उन्हें तुरंत ठीक कर देता है। यह रोबोट के स्मार्ट होने के साथ-साथ ग्रेडिंग को निष्पक्ष बनाए रखता है।
परिणाम: स्व-शिक्षित महारत
इस शोध पत्र ने तीन अलग-अलग AI मॉडल्स पर इसका परीक्षण किया। यहाँ हुआ:
- मानव सहायता के बिना: ZeroCoder ने बेस मॉडल की तुलना में कोड लिखने की क्षमता में लगभग 14.5% और टेस्ट लिखने की क्षमता में 24.3% का सुधार किया।
- एक छोटी सी मदद के साथ: जब उन्होंने केवल 10 मानव-लेबल वाले उदाहरणों का उपयोग करके "कैलिब्रेशन" (DyB4) जोड़ा, तो सुधार कोडिंग के लिए 21.6% और टेस्टिंग के लिए 24.3% तक बढ़ गया।
- "ओरेकल" (Oracle) तुलना: उन्होंने ZeroCoder की तुलना एक ऐसे सिस्टम से की जिसके पास पूर्ण, मानव-लिखित उत्तरों (ओरेकल) तक पहुँच थी। आश्चर्यजनक रूप से, स्व-शिक्षित ZeroCoder लगभग उतना ही अच्छा प्रदर्शन कर रहा था जितना कि वह सिस्टम जिसके पास परफेक्ट ह्यूमन टीचर था!
बड़ी तस्वीर
ZeroCoder यह सिद्ध करता है कि AI कोड जनरेशन को बेहतर बनाने के लिए आपको मानव शिक्षकों की एक विशाल सेना की आवश्यकता नहीं है। एक ऐसी प्रणाली बनाकर जहाँ AI कोड लिखता है, उस कोड के लिए परीक्षण लिखता है, और फिर दोनों की आलोचना करता है, यह सुधार का एक स्व-संचालित लूप बनाता है।
यह एक ऐसे छात्र की तरह है जो एक निबंध लिखता है, फिर अपने लिए एक क्विज़ लिखता है, क्विज़ देता है, और परिणामों का उपयोग करके और अधिक मेहनत से पढ़ाई करता है। अंततः, वे अपने सबसे अच्छे शिक्षक स्वयं बन जाते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।