← नवीनतम पेपर
💻 computer science

Natural Language based Specification and Verification

यह शोध पत्र एक ऐसे नवीन दृष्टिकोण का प्रस्ताव करता है और प्रारंभिक रूप से उसे मान्य करता है जो प्राकृतिक भाषा विनिर्देशों (specifications) को उत्पन्न करने और कोड के कंपोजिशनल वेरिफिकेशन (compositional verification) करने के लिए लार्ज लैंग्वेज मॉडल्स का लाभ उठाता है, जिसका लक्ष्य कठोर औपचारिक भाषाओं पर निर्भर हुए बिना असुरक्षित कार्यान्वयनों के उत्पादन को रोकना है।

मूल लेखक: Zhaorui Li, Chengyu Song

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

मूल लेखक: Zhaorui Li, Chengyu Song

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

कल्पना कीजिए कि आप यह सिद्ध करने की कोशिश कर रहे हैं कि एक विशाल, जटिल मशीन (जैसे कार का इंजन या कंप्यूटर प्रोग्राम) कभी खराब नहीं होगी या कोई दुर्घटना नहीं करेगी।

समस्या: "बहुत बड़ी मशीन जिसे पढ़ना असंभव है"

कंप्यूटर कोड की दुनिया में, विशेष रूप से C और C++ जैसी भाषाओं में, चीजें गलत होने के कई तरीके हैं। एक पॉइंटर खाली हो सकता है, मेमोरी का उपयोग उसे फेंक दिए जाने के बाद किया जा सकता है, या बफर बहुत छोटा हो सकता है। ये त्रुटियाँ एक बांध में छोटी दरारों की तरह हैं; ये अक्सर इसलिए होती हैं क्योंकि मशीन के विभिन्न हिस्से एक-दूसरे के साथ कैसे परस्पर क्रिया करते हैं।

पारंपरिक रूप से, यह सिद्ध करने के लिए कि एक मशीन सुरक्षित है, आपको एक सख्त, गणितीय नियम पुस्तिका (औपचारिक विनिर्देश/formal specifications) की आवश्यकता होती है। लेकिन यह नियम पुस्तिका लिखना अविश्वसनीय रूप से कठिन और उबाऊ है। यह एक इंजन के हर एक गियर के लिए कानूनी अनुबंध लिखने जैसा है, इससे पहले कि आप यह तक जांच सकें कि इंजन काम करता है या नहीं।

हाल ही में, हमारे पास शक्तिशाली AI मॉडल (लार्ज लैंग्वेज मॉडल्स या LLMs) हैं जो कोड को पढ़ने और बग खोजने में माहिर हैं। हालाँकि, इन AI से पूरे इंजन को एक साथ देखने और यह कहने के लिए कहना कि, "क्या यह सुरक्षित है?" आमतौर पर विफल रहता है। इंजन बहुत बड़ा है, और AI भ्रमित हो जाता है, जिससे वह पिस्टन और वाल्व के बीच के सूक्ष्म संबंधों को समझने में चूक जाता है।

समाधान: NLForge ("सारांश नोट" दृष्टिकोण)

यह शोध पत्र NLForge नामक एक नया टूल पेश करता है। पूरी मशीन को एक साथ पढ़ने के बजाय, NLForge कंपोजिशनल वेरिफिकेशन (compositional verification) नामक रणनीति का उपयोग करता है।

इसे एक विशाल गगनचुंबी इमारत की जांच करने वाली निरीक्षकों की टीम की तरह समझें:

  1. पुराना तरीका (मोनोलिथिक): आप एक निरीक्षक को छत पर खड़ा करते हैं और पूरी इमारत को एक साथ देखते हैं। वे अभिभूत हो जाते हैं, विवरणों को भूल जाते हैं, और यह नहीं देख पाते कि 10वीं मंजिल की प्लंबिंग दूसरी मंजिल के लिफ्ट को कैसे प्रभावित करती है।
  2. NLForge का तरीका (कंपोजिशनल): आप इमारत को मंजिलों में विभाजित करते हैं।
    • पहले, आप बेसमेंट में एक निरीक्षक भेजते हैं। वे नींव की जांच करते हैं और बेसमेंट क्या करता है, इसके बारे में एक सरल, सामान्य-अंग्रेजी नोट (एक सारांश) लिखते हैं (जैसे, "यह मंजिल पानी रखती है, लेकिन केवल तभी जब पाइप जुड़े हों")।
    • इसके बाद, आप पहली मंजिल पर एक निरीक्षक भेजते हैं। वे बेसमेंट का नोट पढ़ते हैं। उन्हें बेसमेंट के ब्लूप्रिंट देखने की आवश्यकता नहीं है; उन्हें बस नियमों को जानने की आवश्यकता है। वे पहली मंजिल की जांच करते हैं, अपना स्वयं का नोट लिखते हैं, और इसे ऊपर भेज देते हैं।
    • यह प्रक्रिया छत तक चलती रहती है। प्रत्येक निरीक्षक को केवल अपने फ्लोर की चिंता करनी होती है, और नीचे के फ्लोर के नोट्स पर भरोसा करना होता है।

असली मंत्र: साधारण अंग्रेजी नोट्स

यहाँ एक मोड़ है: इन नोट्स के लिए पिछले अधिकांश प्रयासों में सख्त, गणितीय भाषाओं का उपयोग किया गया था। लेकिन AI, जटिल गणितीय प्रतीकों के बजाय प्राकृतिक भाषा (जैसे अंग्रेजी) को समझने और लिखने में बेहतर है।

NLForge AI को इन "नोट्स" को साधारण अंग्रेजी में लिखने के लिए कहता है।

  • एक जटिल सूत्र के बजाय, AI लिखता है: "यह फंक्शन आपको मेमोरी का एक नया बॉक्स देता है, लेकिन यह खाली (null) हो सकता है।"
  • अगला AI जो इस नोट को पढ़ता है, वह इसे पूरी तरह से समझ जाता है और अगले कोड के हिस्से की जांच करने के लिए इस जानकारी का उपयोग करता है।

उन्होंने क्या पाया

शोधकर्ताओं ने परीक्षण के लिए कठिन कोड चुनौतियों (SV-COMP नामक एक प्रतियोगिता से) का उपयोग किया।

  • क्या AI एक सत्यापनकर्ता (verifier) हो सकता है? हाँ, लेकिन एक शर्त के साथ। AI बग खोजने में बहुत अच्छा है (उच्च रिकॉल/high recall), जिसका अर्थ है कि यह समस्या को शायद ही कभी छोड़ता है। हालाँकि, यह कभी-कभी तब भी "भेड़िया" चिल्ला देता है जब वास्तव में कोई भेड़िया नहीं होता (फॉल्स पॉजिटिव/false positives)। यह अभी तक एक सख्त गणितीय प्रमाण की जगह लेने के लिए पर्याप्त पूर्ण नहीं है, लेकिन यह संभावित समस्याओं को जल्दी से खोजने के लिए उत्कृष्ट है।
  • क्या "नोट लेने" वाला तरीका काम करता है? हाँ! जब AI ने "सारांश नोट्स" विधि (कंपोजिशनल) का उपयोग किया, तो इसने पूरे कोड को एक साथ पढ़ने की तुलना में काफी अधिक बग खोजे। यह विशेष रूप से छोटे AI मॉडल के लिए सच था जिन्हें लंबे संदर्भों को याद रखने में कठिनाई होती है। नोट्स ने एक 'चीट शीट' की तरह काम किया, जिससे उन्हें बेहतर तर्क करने में मदद मिली।

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

यह शोध पत्र तर्क देता है कि हमें केवल AI का उपयोग अन्य उपकरणों द्वारा जांचे जाने वाले सख्त गणितीय नियम बनाने के लिए नहीं करना चाहिए। इसके बजाय, हमें AI को स्वयं तर्क करने वाला (reasoner) बनने देना चाहिए, जो बड़े, डरावने कार्यों को छोटे, प्रबंधनीय टुकड़ों में तोड़ने के लिए सरल, मानव-पठनीय सारांशों का उपयोग करता है।

यह एक विशाल जिग्सॉ पहेली (jigsaw puzzle) को हल करने जैसा है: पूरी पहेली के डिब्बे को देखकर चक्कर आने के बजाय, आप टुकड़ों को छोटे ढेर (सारांश) में छाँटते हैं और उन्हें एक-एक करके हल करते हैं, इस भरोसे के साथ कि पिछले ढेर के टुकड़े अगले ढेर में पूरी तरह फिट बैठते हैं।

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

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

Digest आज़माएँ →