No Resource, No Benchmarks, No Problem? Evaluating and Improving LLMs for Code Generation in No-Resource Languages
यह शोध पत्र लक्षित भाषा डेटा पर एक बेस मॉडल के निरंतर प्री-ट्रेनिंग (further pre-training) और उसके बाद वेट डिफ ट्रांसफर (weight diff transfer) के माध्यम से इंस्ट्रक्शन-फॉलोइंग क्षमताओं को इंजेक्ट करने की एक लागत प्रभावी रणनीति को पेश करके, शून्य-संसाधन वाली प्रोग्रामिंग भाषाओं में कोड जनरेशन की चुनौती को संबोधित करता है, जो कि इंस्ट्रक्शन-ट्यून्ड मॉडल्स के सीधे फाइन-ट्यूनिंग की तुलना में काफी बेहतर प्रदर्शन करती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपके पास एक शानदार, अत्यंत बुद्धिमान रोबोट सहायक (एक लार्ज लैंग्वेज मॉडल, या LLM) है जो कोडिंग का विशेषज्ञ है। आप उससे पायथन (Python) या जावा (Java) में कोड लिखने के लिए कह सकते हैं, और यह बिल्कुल वैसा ही है जैसे किसी मास्टर शेफ से एक क्लासिक इतालवी व्यंजन बनाने के लिए कहना—वह उस रेसिपी को कंठस्थ जानता है क्योंकि उसने उन विशिष्ट भाषाओं के बारे में लाखों कुकबुक्स (ट्रेनिंग डेटा) पढ़ी हैं।
लेकिन क्या होगा यदि आप उस रोबोट को एक बिल्कुल नए, अज्ञात व्यंजन को पकाने के लिए कहें जिसके लिए किसी ने भी कुकबुक नहीं लिखी है? शायद यह एक ऐसी भाषा है जिसे किसी कंपनी ने कल ही बनाया है, या किसी विशिष्ट उद्योग के लिए एक विशेष टूल है जो अभी तक इंटरनेट पर साझा नहीं किया गया है।
यह पेपर इस बारे में है कि उस रोबोट को ये "नो-रिसोर्स" (no-resource) व्यंजन बनाना कैसे सिखाया जाए।
समस्या: रोबोट पूरी तरह अनभिज्ञ है
शोधकर्ताओं ने पाया कि जब उन्होंने इन बिल्कुल नई भाषाओं (उन्होंने Gleam और MoonBit का परीक्षण किया) में कोड लिखने के लिए शीर्ष-स्तरीय AI मॉडल्स से कहा, तो रोबोट लगभग पूरी तरह से खो गया था।
- हाई-रिसोर्स भाषाएं (Python/Java): रोबोट लगभग 80-90% बार सही था।
- लो-रिसोर्स भाषाएं (जैसे Lua या R): रोबोट ठीक-ठाक था, लगभग 50-60% बार सही था।
- नो-रिसोर्स भाषाएं (Gleam/MoonBit): रोबोट लगभग 100% बार विफल रहा।
उपमा: यह वैसा ही है जैसे किसी ऐसे शेफ से पूछना जिसने केवल चाकू का उपयोग करके खाना बनाना सीखा हो और अचानक उसे एक बिल्कुल नए, अजीब आकार के टूल का उपयोग करने के लिए कहना। वे केवल छोटी गलती नहीं करते; वे अक्सर यह भी नहीं जानते कि उस टूल को सही ढंग से कैसे पकड़ना है। त्रुटियां केवल "खराब खाना बनाना" नहीं थीं; वे "सिंटैक्स एरर" (syntax errors) थे—रोबोट उस नई भाषा की बुनियादी संरचना को भी नहीं लिख पा रहा था क्योंकि वह उसके व्याकरण को नहीं जानता था।
प्रयोग: हम रोबोट को कैसे सिखाते हैं?
टीम ने रोबोट को इन नई भाषाओं को सीखने में मदद करने के लिए चार अलग-अलग तरीके आजमाए, इन नई भाषाओं को एक नए विषय की तरह माना जिसे रोबोट को टेस्ट के लिए पढ़ना है।
- "चीट शीट" (Few-Shot & RAG): उन्होंने रोबोट को नई भाषा में लिखे गए कोड के कुछ उदाहरण या मैनुअल का एक अंश, उससे लिखने के लिए कहने से ठीक पहले दिया।
- परिणाम: इसने थोड़ी मदद की, जैसे किसी छात्र को कुछ अभ्यास प्रश्न देना। रोबोट थोड़ा बेहतर हुआ, लेकिन वह अभी भी बुनियादी बातों के साथ संघर्ष कर रहा था।
- "क्रैश कोर्स" (Fine-Tuning): उन्होंने रोबोट को लिया और उसे उस नई भाषा के लिए उपलब्ध हर एक कोड और डॉक्यूमेंटेशन खिलाया, जिससे उसे सब कुछ फिर से सीखने के लिए मजबूर किया गया।
- परिणाम: यह अच्छा काम कर गया। रोबोट ने भाषा को बहुत बेहतर तरीके से सीखा।
- "डीप डाइव" (Pre-Training): उन्होंने रोबोट के एक कच्चे (raw) संस्करण को लिया (जो निर्देशों का पालन करने के लिए प्रशिक्षित नहीं है) और उसे उपलब्ध सारा डेटा—हर कोड फ़ाइल और हर मैनुअल पेज—खिलाया।
- परिणाम: यह विजेता था। क्योंकि उन्होंने सारा डेटा इस्तेमाल किया (न कि केवल व्यवस्थित उदाहरणों का उपयोग किया जो फाइन-ट्यूनिंग के लिए उपयोग किए जाते हैं), रोबोट ने भाषा को अधिक गहराई से सीखा। इसे सबसे अच्छे स्कोर मिले।
पेच: "स्मार्ट" रोबोट बनाम "रॉ" (Raw) रोबोट
यहाँ एक मोड़ है। "डीप डाइव" (Pre-Training) सबसे अच्छा काम कर गया, लेकिन इसका एक दुष्प्रभाव हुआ।
- जो रोबोट भाषा को गहराई से सीख चुका था, वह एक "रॉ" मॉडल था। वह भाषा को पूरी तरह से जानता था, लेकिन वह मानवीय निर्देशों को सुनना भूल गया था। यदि आप उससे पूछते, "दो संख्याओं को जोड़ने के लिए एक फंक्शन लिखें," तो वह शायद आपको घूरता रहता या बड़बड़ाने लगता क्योंकि उसे आदेशों का पालन करने के लिए प्रशिक्षित नहीं किया गया था।
- "स्मार्ट" रोबोट (Instruction-Tuned models) आदेशों का पालन पूरी तरह से कर सकते थे, लेकिन वे नई भाषा के मामले में बहुत खराब थे।
समाधान: "स्किल ट्रांसफर" (Instruction Transferring)
शोधकर्ताओं ने बिना भारी खर्च किए दोनों दुनियाओं का सर्वश्रेष्ठ प्राप्त करने के लिए एक चतुर तरीका निकाला।
रूपक: कल्पना कीजिए कि आपके पास दो जुड़वां भाई हैं।
- जुड़वां A एक मास्टर शेफ है जो नए व्यंजन को पूरी तरह से जानता है लेकिन बदतमीज है और आदेशों को नहीं सुनता।
- जुवा़ं B एक विनम्र, आज्ञाकारी वेटर है जो नए व्यंजन के बारे में बिल्कुल नहीं जानता।
एक नया शेफ रखने या वेटर को शुरू से फिर से प्रशिक्षित करने के बजाय, शोधकर्ताओं ने जुड़वां B की "विनम्रता" और "सुनने के कौशल" को जुड़वां A पर "कॉपी और पेस्ट" करने का एक तरीका खोज निकाला।
- उन्होंने विनम्र वेटर और कच्चे शेफ के बीच के "अंतर" की गणना की, और फिर उस अंतर को नए, भाषा-विशेषज्ञ रोबोट में जोड़ दिया।
- परिणाम: उन्होंने एक ऐसा रोबोट बनाया जो नई भाषा में विशेषज्ञ है और निर्देशों का पालन करना भी जानता है।
- बोनस: यह ट्रिक इतनी अच्छी तरह काम कर गई कि एक छोटा, सस्ता रोबोट (8 बिलियन पैरामीटर्स वाला) जिसमें यह "स्किल ट्रांसफर" किया गया था, एक बहुत बड़े, अधिक महंगे रोबोट (32 बिलियन पैरामीटर्स वाला) से बेहतर प्रदर्शन करता है जिसे केवल सामान्य रूप से फाइन-ट्यून किया गया था।
निचोड़
यदि कोई कंपनी आज एक नई प्रोग्रामिंग भाषा का आविष्कार करती है, तो वे केवल एक तैयार AI असिस्टेंट खरीदकर यह उम्मीद नहीं कर सकते कि वह काम करेगा। AI विफल हो जाएगा।
हालाँकि, यह पेपर एक रास्ता दिखाता है:
- उस नई भाषा के लिए मौजूद थोड़े से भी कोड को इकट्ठा करें।
- एक कच्चे AI मॉडल को वह भाषा सिखाएं (Pre-training)।
- उस मॉडल को निर्देश सुनने की क्षमता देने के लिए "स्किल ट्रांसफर" ट्रिक का उपयोग करें।
यह कंपनियों को उनके अद्वितीय, प्रोप्रायटरी (proprietary) भाषाओं के लिए अपने स्वयं के विशेष AI कोडिंग असिस्टेंट बनाने की अनुमति देता है, जिसके लिए उन्हें विशाल प्रशिक्षण चरणों पर लाखों डॉलर खर्च करने की आवश्यकता नहीं है। वे एक छोटे, स्मार्ट मॉडल को मामूली लागत में भाषा विशेषज्ञ बना सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।