← नवीनतम पेपर
🤖 AI

From Natural Language to Verified Code: Toward AI Assisted Problem-to-Code Generation with Dafny-Based Formal Verification

यह शोध पत्र NL2VC-60 डेटासेट का परिचय देता है और विभिन्न प्रॉम्प्टिंग रणनीतियों का मूल्यांकन करता है ताकि ओपन-वेट लार्ज लैंग्वेज मॉडल्स को Dafny वेरीफायर और uDebug प्लेटफॉर्म का उपयोग करके प्राकृतिक भाषा की समस्याओं को औपचारिक रूप से सत्यापित कोड में बदलने में सक्षम बनाया जा सके।

मूल लेखक: Md Erfan, Md Kamal Hossain Chowdhury, Ahmed Ryan, Md Rayhanur Rahman

प्रकाशित 2026-04-27
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Md Erfan, Md Kamal Hossain Chowdhury, Ahmed Ryan, Md Rayhanur Rahman

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आप एक बहुत ही प्रतिभाशाली, लेकिन कभी-कभी "भ्रमित" (hallucinating) होने वाले प्रशिक्षु को उच्च-सुरक्षा वाली तिजोरियाँ बनाना सिखाने की कोशिश कर रहे हैं।

यह प्रशिक्षु (AI/लार्ज लैंग्वेज मॉडल) अविश्वसनीय रूप से तेज़ है और इसने दुनिया की लगभग हर किताब पढ़ ली है, लेकिन इसकी एक बुरी आदत है: कभी-कभी यह ऐसी तिजोरी बनाता है जो बाहर से तो बिल्कुल सही दिखती है, लेकिन जब आप वास्तव में चाबी घुमाने की कोशिश करते हैं, तो उसका दरवाज़ा निकलकर गिर जाता है। सॉफ्टवेयर की दुनिया में, हम इसे "हैलुसिनेशन" (hallucination) कहते हैं—ऐसा कोड जो सही दिखता है लेकिन वास्तव में टूटा हुआ होता है।

यह शोध पत्र इन प्रशिक्षुओं को प्रशिक्षित करने और उनकी निगरानी करने के लिए एक नया तरीका बताता है, जिसमें एक "गणितीय निरीक्षक" (Mathematical Inspector) का उपयोग किया जाता है ताकि यह सुनिश्चित किया जा सके कि वे केवल दिखावा नहीं कर रहे हैं।

समस्या: "वाइब कोडिंग" (Vibe Coding) का जाल

अधिकांश लोग AI का उपयोग कोड लिखने के लिए एक "वाइब" देकर करते हैं, जैसे कि एक ढीला, प्राकृतिक भाषा का विवरण: "हे, मेरे लिए एक प्रोग्राम लिखो जो संख्याओं को सॉर्ट कर सके।"

समस्या यह है कि महत्वपूर्ण प्रणालियों (जैसे हवाई जहाज के सॉफ्टवेयर या चिकित्सा उपकरणों) के लिए, "लगभग सही" होना पर्याप्त नहीं है। आपको औपचारिक सत्यापन (Formal Verification) की आवश्यकता होती है। यह एक गणितीय प्रमाण की तरह है जो कहता है, "यह शारीरिक रूप से असंभव है कि सही कोड दर्ज किए बिना यह दरवाज़ा खुले।" इन प्रमाणों को लिखना मनुष्यों के लिए अविश्वसनीय रूप से कठिन और उबाऊ काम है।

समाधान: तीन-चरणीय प्रशिक्षण कार्यक्रम

शोधकर्ताओं ने एक नया परीक्षण बनाया जिसे NL2VC-60 (60 जटिल तर्क पहेलियों का एक संग्रह) कहा जाता है और उन्होंने तीन अलग-अलग "शिक्षण शैलियों" का उपयोग करके सात अलग-अलग AI मॉडल का परीक्षण किया:

1. "आँखों पर पट्टी" वाला परीक्षण (संदर्भहीन प्रॉम्प्टिंग - Contextless Prompting)

  • उपमा: आप प्रशिक्षु से कहते हैं, "एक तिजोरी बनाओ," और कमरे से बाहर चले जाते हैं।
  • परिणाम: लगभग पूर्ण विफलता। AI घबरा जाता है। उसे समझ नहीं आता कि शुरुआत कहाँ से करनी है, आयाम क्या होने चाहिए, या ब्लूप्रिंट की संरचना कैसी होनी चाहिए। यह एक घर बनाने की कोशिश करने जैसा है बिना यह जाने कि वह एक छोटा सा झोपड़ा है या एक गगनचुंबी इमारत।

2. "ब्लूप्रिंट" वाला परीक्षण (सिग्नेचर प्रॉम्प्टिंग - Signature Prompting)

  • उपमा: आप प्रशिक्षु को ब्लूप्रिंट और दरवाज़े के सटीक आयाम देते हैं, लेकिन आप उन्हें यह नहीं बताते कि आंतरिक गियर कैसे बनाए जाएँ।
  • परिणाम: एक बड़ी सफलता! AI को एक "कंकाल" (एक औपचारिक संरचना जिसे उसे पालन करना है) देने से, AI बुनियादी बातों के लिए संघर्ष करना बंद कर गया और वह कठिन हिस्से पर ध्यान केंद्रित कर सका: यानी तर्क (logic)। यहाँ तक कि "छोटे" AI मॉडल भी अचानक बहुत अधिक सक्षम हो गए।

3. "मास्टर और क्रिटिक" लूप (स्व-सुधार प्रॉभटिंग - Self-Healing Prompting)

  • उपमा: यही असली जादू है। प्रशिक्षु एक गियर बनाता है, और एक "गणितीय निरीक्षक" (एक टूल जिसे Dafny कहा जाता है) तुरंत उसकी जाँच करता है। यदि गियर 0.001 मिमी भी गलत है, तो निरीक्षक प्रशिक्षु को एक नोट वापस देता है: "यह हिस्सा नहीं घूमेगा; फिर से प्रयास करें।" प्रशिक्षु उस नोट को पढ़ता है, गियर को ठीक करता है, और फिर से प्रयास करता है।
  • परिणाम: यह सबसे सफल तरीका था। AI ने "स्व-सुधार" करना सीख लिया। गलती होने पर हार मानने के बजाय, उन्होंने त्रुटि संदेशों (error messages) का उपयोग खुद को ठीक करने के लिए एक मार्गदर्शक के रूप में किया।

"सत्य का ओरेकल" (uDebug)

शोधकर्ता "रिक्त सत्यापन" (Vacuous Verification) नामक चीज़ को लेकर चिंतित थे।

  • उपमा: कल्पना कीजिए कि एक प्रशिक्षु एक ऐसी तिजोरी बनाता है जो इतनी सरल है कि उसमें कोई ताला ही नहीं है। निरीक्षक कहता है, "तकनीकी रूप से, कोई भी अंदर नहीं घुस सकता क्योंकि घुसने का कोई तरीका ही नहीं है!" तिजोरी "सत्यापित" तो है, लेकिन वह बेकार है।
  • समाधान: शोधकर्ताओं ने uDebug नामक एक प्लेटफॉर्म का उपयोग किया, जो एक पेशेवर चोर की तरह काम करता है जो तिजोरी में घुसने के हर संभव तरीके को आज़माता है। यह सुनिश्चित करता है कि कोड न केवल "गणितीय रूप से सुसंगत" है, बल्कि वास्तव में वास्तविक दुनिया में काम भी करता है।

मुख्य निष्कर्ष

इस कहानी का सितारा Gemma 4-31B नामक मॉडल था, जो एक अविश्वसनीय "प्रशिक्षु" साबित हुआ। जब इसे "मास्टर और क्रिटिक" लूप के माध्यम से अपनी गलतियों से सीखने की अनुमति दी गई, तो इसने 90.91% सफलता दर प्राप्त की।

सार: हमें पूर्ण सॉफ्टवेयर बनाने के लिए "पूर्ण" AI का इंतज़ार करने की ज़रूरत नहीं है। यदि हम "स्मार्ट लेकिन अव्यवस्थित" AI को "सख्त और गणितीय" निरीक्षकों के साथ जोड़ते हैं, तो हम ऐसा सॉफ्टवेयर बना सकते हैं जो न केवल "विश्वसनीय" है, बल्कि गणितीय रूप से सिद्ध (provably correct) भी है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →