COBOLAssist: Analyzing and Fixing Compilation Errors for LLM-Powered COBOL Code Generation
यह शोध पत्र COBOLAssist को प्रस्तुत करता है, जो एक पुनरावृत्ति ढांचा (iterative framework) है जो LLM-जनित COBOL कोड की सिंटैक्स और कार्यात्मक शुद्धता में महत्वपूर्ण सुधार करने के लिए संकलन फीडबैक (compilation feedback) का लाभ उठाता है, जिससे उन्नत मॉडलों के लिए संकलन सफलता दर 29.5% जैसे निम्न स्तर से बढ़कर 95% से अधिक हो जाती है, जबकि कार्यात्मक सटीकता में निरंतर बनी रहने वाली चुनौतियों को भी रेखांकित करती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
यहाँ "COBOLAssist" पेपर का सरल भाषा और रचनात्मक उपमाओं (analogies) का उपयोग करते हुए विवरण दिया गया है।
समस्या: "प्राचीन पुस्तकालय" और "नया इंटर्न"
एक विशाल, प्राचीन पुस्तकालय की कल्पना करें (वैश्विक बैंकिंग और बीमा प्रणालियाँ) जो पूरी तरह से एक बहुत ही पुरानी, सख्त भाषा में लिखा गया है जिसे COBOL कहा जाता है। यह भाषा औपचारिक, पुराने जमाने की अंग्रेजी की तरह है जहाँ हर वाक्य को एक कठोर संरचना का पालन करना चाहिए, अन्यथा लाइब्रेरियन (कंप्यूटर कंपाइलर) भ्रमित हो जाएगा और किताब पढ़ने से मना कर देगा।
समस्या यह है कि जो लोग इस भाषा को लिखना जानते हैं, वे सेवानिवृत्त (retire) हो रहे हैं, और नए प्रशिक्षुओं की संख्या बहुत कम रह गई है। पुस्तकालय को चालू रखने के लिए, कंपनियाँ एक सुपर-स्मार्ट AI इंटर्न (एक लार्ज लैंग्वेज मॉडल या LLM, जैसे GPT-4) को अपने लिए नया कोड लिखने के लिए रख रही हैं।
हालाँकि, इस AI इंटर्न में एक बड़ी खामी है: इसने मुख्य रूप से आधुनिक किताबें (Python, Java) पढ़ी हैं और इसने पर्याप्त रूप से प्राचीन COBOL व्याकरण की किताबों का अध्ययन नहीं किया है। जब यह कोड लिखने की कोशिश करता है, तो यह गलतियाँ करता है। यह वाक्य के अंत में पूर्ण विराम (period) लगाना भूल सकता है, ऐसा शब्द इस्तेमाल कर सकता है जिसका अस्तित्व ही नहीं है, या अध्यायों के क्रम को बिगाड़ सकता है। जब लाइब्रेरियन (कंपाइलर) काम की जाँच करता है, तो वह त्रुटियों की एक लंबी सूची के साथ उसे खारिज कर देता है।
समाधान: COBOLAssist ("संपादक की लाल कलम")
शोधकर्ताओं ने COBOLAssist नामक एक टूल बनाया है। इसे एक स्मार्ट एडिटर के रूप में समझें जो AI इंटर्न और लाइब्रेरियन के बीच बैठता है।
यह कैसे काम करता है, चरण-दर-चरण यहाँ दिया गया है:
- पहला ड्राफ्ट: AI इंटर्न कोड का एक हिस्सा लिखता है।
- अस्वीकृति: लाइब्रेरियन कहता है, "नहीं! तुम इस पैराग्राफ को बंद करना भूल गए," या "तुम यहाँ इस शब्द का उपयोग नहीं कर सकते।" यह एक विशिष्ट त्रुटि संदेश (error message) वापस भेजता है।
- फीडबैक लूप: हार मानने के बजाय, COBOLAssist उस त्रुटि संदेश को लेता है, उसे AI इंटरल को दिखाता है, और कहता है, "हे, इस नोट को देखो। तुमने यहाँ एक गलती की है। कृपया इसे ठीक करने के लिए कोड को फिर से लिखो।"
- पुनः प्रयास (Retry): AI फिर से प्रयास करता है। यदि यह अभी भी गलत है, तो संपादक नया त्रुटि संदेश वापस भेजता है, और वे फिर से प्रयास करते हैं। वे तब तक ऐसा करते रहते हैं जब तक कि कोड एकदम सही न हो जाए या उनके प्रयास समाप्त न हो जाएं।
उन्होंने क्या खोजा ( "त्रुटि रिपोर्ट")
शोधकर्ताओं ने AI द्वारा की गई हजारों गलतियों का अध्ययन किया और पाया कि इसमें तीन मुख्य प्रकार की "बुरी आदतें" थीं:
- "अधूरी कहानी" (अपूर्ण कोड - Incomplete Code): AI एक कहानी शुरू करता है लेकिन "द एंड" (The End) लिखना भूल जाता है। COBOL में, कोड के हर ब्लॉक को एक विशिष्ट "स्टॉप" शब्द की आवश्यकता होती है। AI अक्सर इन्हें भूल जाता है, जिससे कोड अधूरा रह जाता है।
- "व्याकरण पुलिस" (सिंटैक्स त्रुटियाँ - Syntax Errors): AI चीजों को गलत क्रम में रखता है। उदाहरण के लिए, यह
MOD(शेषफल के लिए गणित) जैसे फंक्शन का गलत तरीके से उपयोग करने की कोशिश कर सकता है, या कोड के ऐसे अनुभाग को दोहरा सकता है जो केवल एक बार आने की अनुमति है। - "गलत श्रेणी" (टाइप त्रुटियाँ - Type Errors): AI एक ऐसे शब्द को उस बॉक्स में डालने की कोशिश करता है जो संख्याओं के लिए बना है, या इसके विपरीत।
बड़ी हैरानी की बात: AI एक विशिष्ट प्रकार की गलती करता है जो मानव विशेषज्ञ शायद ही कभी करते हैं: इन-बिल्ट फंक्शन्स का गलत उपयोग करना। यह ऐसा है जैसे AI "कैलकुलेटर" शब्द जानता है, लेकिन उसे संज्ञा के बजाय क्रिया के रूप में उपयोग करने की कोशिश करता है। यह दर्शाता है कि AI अन्य भाषाओं के पैटर्न के आधार पर अनुमान लगा रहा है, न कि वास्तव में COBOL को समझ रहा है।
परिणाम: "फेलिंग ग्रेड" से "ऑनर रोल" तक
शोधकर्ताओं ने इस "एडिटर" टूल का परीक्षण पांच अलग-अलग AI मॉडल्स के साथ किया। परिणाम प्रभावशाली थे:
- एडिटर से पहले: सबसे अच्छे AI (GPT-4o) का केवल 42% कोड पहली बार में काम कर सका। वह आधे से अधिक समय विफल हो रहा था।
- एडिटर के बाद: COBOLAssist के साथ, उसी AI का 96% कोड काम करने में सफल रहा। वह मुश्किल से पास होने से लेकर एक 'A+' छात्र बन गया।
- "विशेषज्ञ" बनाम "सामान्यवादी" (Specialist vs. Generalist): उन्होंने एक मॉडल का भी परीक्षण किया जिसे विशेष रूप से COBOL पर प्रशिक्षित किया गया था (mAInframer)। यह कोड को कंपाइल कराने में बहुत अच्छा था (98% सफलता), लेकिन कोड अक्सर वह काम नहीं करता था जो उसे करना चाहिए था (कम फंक्शनल स्कोर)। सामान्य AI (GPT-4o), एडिटर की मदद से, समस्याओं को सही ढंग से हल करने में बेहतर था।
निष्कर्ष
यह पेपर साबित करता है कि हालांकि AI अकेले अपने आप में प्राचीन, सख्त भाषाओं जैसे COBOL को लिखने में परफेक्ट नहीं है, लेकिन यह अत्यधिक प्रभावी हो सकता है यदि हम इसे अपनी गलतियों से सीखने का एक तरीका दें।
इसे एक बच्चे को साइकिल चलाना सिखाने जैसा समझें। यदि आप बस उन्हें छोड़ देंगे, तो वे गिर जाएंगे। लेकिन यदि आपके पास एक माता-पिता (COBOLAssist) हैं जो उन्हें बताते हैं कि वे कहाँ डगमगाए और उन्हें फिर से प्रयास करने के लिए कहते हैं, तो वे जल्दी ही पूरी तरह से साइकिल चलाना सीख जाते हैं।
संक्षेप में: हम केवल AI पर हमारे पुराने सिस्टम्स (legacy systems) को ठीक करने के लिए भरोसा नहीं कर सकते, लेकिन यदि हम AI को एक "कंपाइलर" से बात करने का मौका और खुद को सुधारने का अवसर देते हैं, तो यह दुनिया की वित्तीय प्रणालियों को चालू रखने के लिए एक शक्तिशाली उपकरण बन जाता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।