Can Large Language Models Model Programs Formally?
यह शोधपत्र Model-Bench को प्रस्तुत करता है, जो एक बेंचमार्क और पाइपलाइन है जिसमें 400 पायथन प्रोग्राम शामिल हैं जिन्हें बड़े भाषा मॉडलों (Large Language Models) की सत्यापन-योग्य मॉडल चेकिंग विनिर्देशों (verification-ready model checking specifications) को स्वचालित रूप से उत्पन्न करने की क्षमता का मूल्यांकन करने और सुधारने के लिए डिज़ाइन किया गया है, जो इस क्षमता में वर्तमान महत्वपूर्ण सीमाओं को प्रकट करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपके पास एक बहुत ही प्रतिभाशाली, सुपर-फास्ट अनुवादक है जो हर मानवीय भाषा बोल सकता है और पायथन (Python) कोड लिख सकता है। आप इस अनुवादक से एक जटिल पायथन प्रोग्राम को एक पूरी तरह से अलग भाषा में फिर से लिखने के लिए कहते हैं जिसे TLA+ कहा जाता है।
लेकिन यहाँ एक पेंच है: TLA+ केवल ऐप्स बनाने के लिए कोई अन्य प्रोग्रामिंग भाषा नहीं है। यह एक गणितीय भाषा है जो सत्य को सिद्ध करने के लिए है। यह ऐसा है जैसे किसी अनुवादक से एक उपन्यास को एक कठोर गणितीय प्रमाण में बदलने के लिए कहना जो यह गारंटी देता है कि कहानी में कोई भी 'प्लॉट होल' (तार्किक कमी) नहीं हो सकती।
यह शोध पत्र, जिसका शीर्षक है "Can Large Language Models Model Programs Formally?", एक सरल लेकिन कठिन प्रश्न पूछता है: क्या AI (जैसे कि यह अनुवादक) वास्तव में यह काम कर सकता है?
यहाँ उनकी यात्रा का विवरण दिया गया है, जिसमें रोजमर्रा के उदाहरणों का उपयोग किया गया है।
1. समस्या: "ब्लूप्रिंट" का अंतर (The "Blueprint" Gap)
सॉफ्टवेयर की दुनिया में, यह जाँचने के दो तरीके हैं कि क्या कोई प्रोग्राम सुरक्षित है:
- टेस्टिंग (Testing): कार को कुछ अलग सड़कों पर चलाकर देखना कि क्या वह टूट जाती है। (अच्छा है, लेकिन शायद आप एक छिपी हुई खाई को मिस कर दें)।
- फॉर्मल वेरिफिकेशन (Formal Verification): कार का एक आदर्श गणितीय ब्लूप्रिंट बनाना और गणित के साथ यह सिद्ध करना कि वह कभी भी खाई में नहीं गिर सकती, चाहे कुछ भी हो जाए।
इस "ब्लूप्रिंट" वाले हिस्से को मॉडल चेकिंग (Model Checking) कहा जाता है। इसे स्वचालित रूप से करना अविश्वसनीय रूप से कठिन है क्योंकि अव्यवस्थित, लचीले कोड (जैसे पायथन) को एक कठोर, गणितीय ब्लूप्रिंट (TLA+) में बदलना वैसा ही है जैसे किसी मुक्त-प्रवाह वाले जैज़ इम्प्रोवाइजेशन (jazz improvisation) को एक सख्त सैन्य मार्चिंग ऑर्डर में बदलने की कोशिश करना।
अब तक, AI "गणितीय प्रमाण" (Theorem Proving) वाले हिस्से में मदद करने में महान रहा है, लेकिन वह "ब्लूप्रिंट" (Model Checking) वाले हिस्से में संघर्ष करता रहा है क्योंकि AI वास्तविक दुनिया के कोड के अव्यवस्थित विवरणों से भ्रमित हो जाता है।
2. समाधान: मॉडल-बेंच (Model-Bench - द ट्रेनिंग जिम)
लेखकों ने Model-Bench नामक एक नया जिम बनाया।
- वर्कआउट: उन्होंने 400 पायथन प्रोग्राम (लोकप्रिय कोडिंग चुनौतियों से) लिए और विभिन्न AI मॉडलों को उन्हें TLA+ ब्लूप्रिंट में बदलने के लिए कहा।
- लक्ष्य: यह देखना कि क्या AI एक ऐसा ब्लूप्रिंट बना सकता है जिसे एक "मॉडल चेकर" (एक सख्त रेफरी) बिना किसी त्रुटि के सत्यापित कर सके।
- ट्विस्ट: उन्होंने केवल कोड को AI के सामने नहीं फेंका। उन्होंने दो अलग-अलग कोचिंग विधियों का प्रयास किया:
- प्रत्यक्ष अनुवाद (Direct Translation): "यह पायथन कोड है, इसे TL+ में बदलो।"
- "प्री-प्रोसेसिंग" का तरीका (The "Pre-Processing" Trick): AI से पूछने से पहले, उन्होंने कोड को एक रोबोट के माध्यम से सरल बनाया। उन्होंने जटिल विशेषताओं (जैसे फैंसी लूप या अजीब लाइब्रेरी) को हटा दिया और इसे एक सरल "स्टेट मशीन" (जैसे कि एक फ्लोचार्ट) में बदल दिया। इसने कोड को उस TLA+ भाषा जैसा दिखने में मदद की जिसे AI को बोलना था।
3. परिणाम: AI कोशिश कर रहा है, लेकिन लड़खड़ा रहा है
परिणाम "बुरे नहीं हैं!" और "ओह नहीं" का मिश्रण थे।
- अच्छी खबर: सबसे अच्छे AI मॉडल (जैसे DeepSeek-V3) कुछ उदाहरणों से सीखने के बाद लगभग 50% समय सफलतापूर्वक एक काम करने वाला ब्लूप्रिंट बना सकते थे। यह एक शुरुआत है!
- बुरी खबर: जब AI को बिना किसी उदाहरण के अकेले काम करना पड़ा, तो वह लगभग 100% बार विफल रहा।
- "स्टेट सिमिलरिटी" (State Similarity) का मुद्दा: भले ही AI ब्लूप्रिंट को चलाने में सफल रहा हो, लेकिन यह अक्सर मूल प्रोग्राम से पूरी तरह मेल नहीं खाता था। यह ऐसा था जैसे AI ने एक ऐसी कार बनाई जो मूल कार की तरह दिखती है और चलती है, लेकिन उसके इंजन के पुर्जे थोड़े अलग हैं। इसने "चलने योग्य" (runnable) परीक्षण को पास कर लिया, लेकिन "सटीक मिलान" (exact match) परीक्षण में विफल रहा।
4. "प्री-प्रोसेसिंग" का तरीका: एक दोधारी तलवार
लेखकों ने उस "प्री-प्रोसेसिंग" ट्रिक (कोड को पहले सरल बनाने) का परीक्षण किया।
- क्या हुआ? ब्लूप्रिंट्स बहुत अधिक सटीक (बेहतर समानता) हो गए। AI ने तर्क को बेहतर ढंग से समझा।
- कैच (Catch): ब्लूप्रिंट्स के क्रैश हुए बिना चलने की संभावना थोड़ी कम थी। क्यों? क्योंकि सरल कोड को टाइप करना लंबा और अधिक जटिल था, जिससे AI अपने ही वाक्य के "बीच में खो" (lost in the middle) गया।
- सीख: मूल कोड और सरल कोड दोनों का एक साथ उपयोग करने से सबसे अच्छे परिणाम मिले। यह एक मानव अनुवादक द्वारा AI के काम की जाँच करने जैसा है; वे एक-दूसरे के पूरक हैं।
5. यह क्यों विफल हुआ? ("Bad Cases")
लेखकों ने त्रुटियों को देखा और पाया कि AI के अटकने के तीन मुख्य कारण थे:
- "डिक्शनरी" की समस्या: पायथन में इन-बिल्ट टूल्स (जैसे
sort()) होते हैं जिन्हें TLA+ में नहीं होता। AI फिर भी उनका उपयोग करने की कोशिश करता है, जिससे क्रैश हो जाता है। यह एक शेफ से यह कहने जैसा है कि "ब्लेंडर का उपयोग करें" जबकि रसोई में केवल एक ओखली और मूसल (mortar and pestle) उपलब्ध है। - "गिनती" की समस्या: पायथन 0 से गिनती शुरू करता है (0, 1, 2...), लेकिन TLA+ 1 से गिनती शुरू करता है (1, 2, 3...)। AI इस नियम को भूल जाता रहा, जिससे "ऑफ-बाय-वन" (off-by-one) त्रुटियां हुईं।
- "बहुत वफादार" होने की समस्या: कभी-कभी AI मूल कोड के प्रति बहुत वफादार होता था। उसने हर एक विवरण को कॉपी करने की कोशिश की, जिसमें वे चीजें भी शामिल थीं जो गणितीय प्रमाण में नहीं होनी चाहिए, जिससे तर्क टूट गया।
बड़ी तस्वीर (The Big Picture)
यह शोध पत्र एक वास्तविकता की जाँच (reality check) है। यह हमें बताता है कि हालांकि AI कोड लिखने में अद्भुत है, लेकिन यह अभी तक औपचारिक गणितीय मॉडलिंग (formal mathematical modeling) का मास्टर नहीं है।
- उपमा (Analogy): AI को एक प्रतिभाशाली प्रशिक्षु बढ़ई (apprentice carpenter) के रूप में सोचें। वह बहुत तेज़ी से एक सुंदर कुर्सी (कोड लिखना) बना सकता है। लेकिन उससे वह इंजीनियरिंग स्कीमेटिक्स (engineering schematics) बनाने के लिए कहना जो यह सिद्ध करें कि कुर्सी किसी भी वजन के नीचे कभी नहीं गिरेगी (Formal Modeling), अभी भी उसके लिए बहुत कठिन है। उसे अधिक प्रशिक्षण, बेहतर उपकरणों और शायद गणित की दोबारा जाँच करने के लिए एक मानव पर्यवेक्षक की आवश्यकता है।
भविष्य: लेखक आशा करते हैं कि यह "Model-Bench" अगली पीढ़ी के AI को न केवल कोड लेखक, बल्कि कोड वेरीफायर (code verifiers) बनने के लिए प्रशिक्षित करने में मदद करेगा, जिससे यह सुनिश्चित होगा कि हमारा महत्वपूर्ण सॉफ्टवेयर (जैसे कि सेल्फ-ड्राइविंग कार या मेडिकल डिवाइस) गणितीय रूप से सुरक्षित है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।