Leveraging LLMs for Multi-File DSL Code Generation: An Industrial Case Study
BMW का यह औद्योगिक केस स्टडी यह प्रदर्शित करता है कि रिपॉजिटरी पदानुक्रमों के एक संरचित, पथ-संरक्षण (path-preserving) JSON प्रतिनिधित्व के साथ कोड-उन्मुख LLMs को फाइन-ट्यून करना, सटीक, बहु-फ़ाइल DSL आर्टिफ़ेक्ट्स उत्पन्न करने के लिए बेसलाइन प्रॉम्प्टिंग और वन-शॉट लर्निंग की तुलना में काफी बेहतर प्रदर्शन करता है जो डाउनस्ट्रीम कोड जनरेशन को संचालित करते हैं।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक विशाल निर्माण कंपनी (BMW) के लिए काम करने वाले एक मास्टर आर्किटेक्ट हैं। आपका काम अलग-अलग शहरों के लिए नई इमारतें (मार्केट कॉन्फ़िगरेशन) डिजाइन करना है।
पुराने तरीके में, आपको हर एक ब्लूप्रिंट, इलेक्ट्रिकल प्लान और प्लंबिंग डायग्राम को अलग-अलग कागजों पर मैन्युअल रूप से लिखना पड़ता था। यदि आप किचन में एक नई खिड़की जोड़ना चाहते थे, तो आपको इलेक्ट्रिकल प्लान, प्लंबिंग प्लान और स्ट्रक्चरल प्लान को भी अपडेट करना होता था ताकि वे पूरी तरह से सिंक में रहें। यदि आप एक छोटा सा विवरण भी भूल जाते, तो पूरा निर्माण नहीं हो पाता और निर्माण दल (कोड जनरेटर) अटक जाता।
यह पेपर आपको एक सुपर-स्मार्ट रोबोटिक असिस्टेंट (एक लार्ज लैंग्वेज मॉडल, या LLM) को यह मैनुअल कागजी कार्रवाई करने के लिए सिखाने के बारे में है। लेकिन इसमें एक पेच है: रोबोट ने पहले कभी आपके विशिष्ट ब्लूप्रिंट नहीं देखे हैं, और उसे आपके केवल एक वाक्य के निर्देश के आधार पर कई परस्पर जुड़े हुए कागजों को एक साथ अपडेट करना है।
यहाँ बताया गया है कि शोधकर्ताओं ने रोबोट को यह काम करने के लिए कैसे सिखाया:
1. समस्या: "एक निर्देश, कई फाइलें" की पहेली
आमतौर पर, AI एक एकल कहानी या एक एकल कोड लिखने में अच्छा होता है। लेकिन इस कंपनी में, एक एकल अनुरोध जैसे "जर्मन बाजार के लिए एक नया लोन प्रकार जोड़ें" के लिए पांच अलग-अलग फोल्डरों में फाइलों को बदलने की आवश्यकता होती है। यदि रोबोट मुख्य फ़ाइल को बदल देता है लेकिन उस फ़ाइल को अपडेट करना भूल जाता है जिसमें सभी लोन प्रकारों की सूची है, तो पूरा सिस्टम टूट जाता है।
2. समाधान: लाइब्रेरी को फ्लैट करना (Flattening the Library)
रोबोट को पूरे प्रोजेक्ट को एक साथ समझने में मदद करने के लिए, शोधकर्ताओं ने इसे फाइल दर फाइल नहीं खिलाया। इसके बजाय, उन्होंने पूरे "लाइब्रेरी" के ब्लूप्रिंट (फोल्डर संरचना) को एक विशाल "फ्लैटेड" बुक (एक एकल JSON डॉक्यूमेंट) में बदल दिया।
- उपमा (Analogy): कल्पना कीजिए कि आपके पास 20 अलग-अलग फोल्डरों वाली एक अव्यवस्थित डेस्क है और आपने हर एक पेज को एक विशाल मेज पर बिछा दिया है, लेकिन उन्हें व्यवस्थित पंक्तियों में रखा है ताकि आपको पता रहे कि कौन सा पेज किस फोल्डर का है। अब, रोबोट एक बार में पूरे टेबल को देख सकता है और कह सकता है, "ठीक है, मैं देख सकता हूँ कि बदलाव कहाँ जाने चाहिए।"
3. प्रशिक्षण: रोबोट को सिखाने के तीन तरीके
शोधकर्ताओं ने रोबोट को यह विशिष्ट कार्य सिखाने के लिए तीन अलग-अलग तरीकों का परीक्षण किया:
- "कोल्ड स्टार्ट" (Zero-Shot): उन्होंने बस रोबोट को निर्देश और फ्लैटेड बुक दी और कहा, "इसे ठीक करो।"
- परिणाम: रोबोट पेजों को सही क्रम में रखने में ठीक था, लेकिन वह अक्सर गलत विवरण बना देता था या छोटे कनेक्शन मिस कर देता था। यह एक ऐसे छात्र की तरह था जो वर्णमाला तो जानता है लेकिन व्याकरण नहीं सीखा है।
- "उदाहरण" (One-Shot): उन्होंने रोबोट को निर्देश, बुक, और साथ ही पिछले काम का एक सही उदाहरण दिया। "पिछली बार हमने एक खिड़की कैसे जोड़ी थी; इसे वैसे ही करो।"
- परिणाम: इससे रोबोट को संरचना (स्ट्रक्चर) सही रखने में मदद मिली (पेज सही फोल्डरों में रहे), लेकिन वह अभी भी नए अनुरोध के विशिष्ट, कठिन विवरणों के लिए संघर्ष कर रहा था।
- "गहन पाठ्यक्रम" (Fine-Tuning): उन्होंने रोबोट को लिया और उसे सैकड़ों "पहले" और "बाद के" ब्लूप्रिंट दिखाए। उन्होंने केवल दिखाया ही नहीं; बल्कि उन्होंने रोबोट के आंतरिक मस्तिष्क को समायोजित किया (QLoRA नामक तकनीक का उपयोग करके) ताकि वह इस कंपनी के ब्लूप्रिंट के विशिष्ट नियमों को सीख सके।
- परिणाम: यह विजेता रहा। रोबोट एक विशेषज्ञ बन गया। वह एक अनुरोध को देख सकता था और सभी फाइलों में परिवर्तनों का एक पूरी तरह से सिंक्रोनाइज़ सेट तैयार कर सकता था।
4. परिणाम: क्या यह काम आया?
शोधकर्ताओं ने वास्तविक कार्यों के साथ रोबोट का परीक्षण किया और मानव विशेषज्ञों से काम की समीक्षा करवाई।
- संरचना (Structure): फाइन-ट्यून किया गया रोबोट फाइलों को सही फोल्डरों में रखने और फर्जी फोल्डर न बनाने में लगभग परफेक्ट था। इसने प्रोजेक्ट के "आकार" को सही रखने पर एक परफेक्ट स्कोर (1.0) प्राप्त किया।
- विवरण (Details): यह वास्तविक कंटेंट में बहुत अच्छा था, लगभग 66% बदलाव बिल्कुल सही और 84% बदलाव उपयोगी होने के लिए "काफी करीब" थे।
- "निकट-चूक" (Near-Miss) की वास्तविकता: रोबोट इतना अच्छा था कि जब वह विफल हुआ, तो वह आमतौर पर केवल एक छोटी सी टाइपो या गलत नंबर था, न कि कोई गायब फाइल। यह एक ऐसे शेफ की तरह था जो एक बेहतरीन भोजन बनाता है लेकिन गलती से चीनी की जगह नमक का उपयोग कर लेता है। संरचना सही थी; बस स्वाद थोड़ा अलग था।
5. मानव विशेषज्ञों ने क्या कहा
शोधकर्ताओं ने चार वरिष्ठ आर्किटेक्ट्स (डेवलपर्स) से रोबोट के काम की समीक्षा करने के लिए कहा।
- फैसला: वे इसे पसंद करते थे। उन्होंने इसकी पठनीयता और संरचना के लिए उच्च अंक दिए।
- समय की बचत: उन्होंने अनुमान लगाया कि छोटे, सरल प्रोजेक्टों के लिए, रोबोट उनके समय में 40% से 80% तक की बचत कर सकता है। हालांकि, बहुत बड़े, जटिल प्रोजेक्टों के लिए, रोबोट अभी भी एक "सहायक" था जिसे अंतिम विवरणों की जांच के लिए एक इंसान की आवश्यकता थी।
- पेच (The Catch): जटिल परिदृश्य में रोबोट कभी-कभी भ्रमित हो जाता था कि किस विशिष्ट प्रकार के हिस्से का उपयोग करना है, जिसके लिए मानव द्वारा त्वरित सुधार की आवश्यकता होती थी।
निचोड़ (The Bottom Line)
यह पेपर यह साबित करता है कि आप AI को जटिल, मल्टी-फाइल प्रोजेक्ट्स को मैनेज करना सिखा सकते हैं यदि आप:
- फाइलों को एक एकल, आसानी से पढ़े जाने वाले फॉर्मेट में व्यवस्थित करें।
- उसे आपके विशिष्ट नियमों पर एक विशिष्ट "गहन पाठ्यक्रम" (Fine-tuning) दें।
यह अभी मानव आर्किटेक्ट्स की जगह नहीं लेगा, लेकिन यह ब्लूप्रिंट तैयार करने के भारी काम को कर सकता है, जिससे उनका घंटों का उबाऊ काम बचता है और वे रचनात्मक हिस्सों पर ध्यान केंद्रित कर पाते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।