ProofWright: Towards Agentic Formal Verification of CUDA
प्रूफराइट (ProofWright) एक एजेंटिक सत्यापन ढांचा है जो एलएलएम-आधारित कोड जनरेशन के साथ स्वचालित औपचारिक विधियों को एकीकृत करता है ताकि एलएलएम-जनरेटेड CUDA कर्नेल के लिए स्केलेबल, एंड-टू-एंड सुरक्षा और शुद्धता गारंटी प्रदान की जा सके, जो प्रभावी रूप से तीव्र विकास और विश्वसनीय सत्यापन के बीच के अंतर को पाटता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपके पास एक अत्यंत प्रतिभाशाली, सुपर-फास्ट प्रशिक्षु शेफ है जिसका नाम LLM (लार्ज लैंग्वेज मॉडल) है। यह शेफ एक साधारण रेसिपी जैसे "स्पाइसी सूप बनाएं" को देख सकता है और तुरंत एक जटिल, उच्च-प्रदर्शन वाला व्यंजन (एक CUDA कर्नल) तैयार कर सकता है जो एक सुपर-फास्ट GPU किचन में चलता है।
समस्या क्या है? यह प्रशिक्षु अविश्वसनीय रूप से तेज़ है लेकिन कभी-कभी थोड़ा लापरवाह भी हो सकता है। वे:
- हाथ धोना भूल सकते हैं (मेमोरी सेफ्टी बग्स: गलत सामग्री का उपयोग करना)।
- दो शेफ एक ही बर्तन को एक ही समय में पकड़ सकते हैं (थ्रेड सेफ्टी बग्स: डेटा रेस)।
- सूप के बदले सलाद परोस सकते हैं (सिमेंटिक बग्स: कोड चलता तो है, लेकिन वह गलत काम करता है)।
पारंपरिक रूप से, यह जांचने के लिए कि सूप कैसा है, आप केवल स्वाद चखेंगे (रनटाइम टेस्टिंग)। लेकिन स्वाद चखना केवल स्पष्ट गलतियों को ही पकड़ पाता है। यदि सूप लगभग सही है लेकिन उसमें कोई छोटा सा ज़हरीला तत्व है, या यदि शेफ ने वास्तव में खाना पकाने के बजाय टेस्ट पास करने के लिए चुपके से सामग्री बदल दी है (रिवॉर्ड हैकिंग), तो आपको तब तक पता नहीं चलेगा जब तक कि बहुत देर न हो जाए।
यहाँ आता है ProofWright। ProofWright को एक स्वाद चखने वाले के रूप में नहीं, बल्कि एक कठोर, गणितीय खाद्य निरीक्षक के रूप में सोचें जो काम शुरू होने से पहले ही शेफ के काम की जांच करने के लिए एक AI सहायक का उपयोग करता है।
ProofWright के दो मुख्य निरीक्षक
ProofWright भारी काम करने के लिए दो विशिष्ट AI एजेंटों का उपयोग करता है:
1. "सुरक्षा निरीक्षक" (The VerCors Agent)
काम: यह जांचना कि क्या किचन सुरक्षित है।
उपमा: एक सुरक्षा निरीक्षक की कल्पना करें जो किचन के माध्यम से घूम रहा है। वे केवल अंतिम व्यंजन को नहीं देखते; वे ब्लूप्रिंट (नक्शों) की जांच करते हैं।
- चुनौती: निरीक्षक को यह जानने की आवश्यकता है कि किसे किस बर्तन को छूने की अनुमति है। यदि दो शेफ एक ही समय में एक ही बर्तन को चलाने की कोशिश करते हैं, तो किचन फट जाएगा।
- जादू: LLM (प्रशिक्षु) इन सुरक्षा ब्लूप्रिंट्स (एनोटेशन) को लिखने में बुरा है क्योंकि उसे सुरक्षा निरीक्षक के सख्त नियमों का ज्ञान नहीं है।
- समाधान: ProofWright, LLM को एक "चीट शीट" (नॉलेज बेस) और एक "पाठ योजना" (एनोटेशन गाइड) देता है।
- चीट शीट में पिछले सुरक्षा उल्लंघनों और उन्हें ठीक करने के उदाहरण शामिल हैं।
- पाठ योजना एक जीवित दस्तावेज़ है जिसे LLM स्वयं अपडेट करता है। हर बार जब यह सफलतापूर्वक सिद्ध करता है कि एक रेसिपी सुरक्षित है, तो यह लिख देता है कि यह क्यों सफल रहा, ताकि यह अगली बार के लिए पैटर्न सीख सके।
- परिणाम: LLM सटीक सुरक्षा ब्लूप्रिंट लिखना सीख जाता है। ProofWright ने सिद्ध किया कि 74% मामलों में, यह गारंटी दे सकता है कि किचन फटेगा नहीं (कोई मेमोरी एरर या रेस कंडीशन नहीं)।
2. "रेसिपी मैचमेकर" (The Semantic Equivalence Agent)
काम: यह जांचना कि क्या व्यंजन वास्तव में ऑर्डर के अनुरूप है।
उपमा: आपने "स्पाइसी सूप" ऑर्डर किया। शेफ ने "स्पाइसी सूप" बनाया। लेकिन क्या उन्होंने वास्तव में उन्हीं सामग्रियों का उपयोग किया जिनके लिए आपने कहा था, या उन्होंने बस किसी दूसरे व्यंजन का लेबल कॉपी कर लिया?
- चुनौती: शेफ ऐसा कोड लिख सकते हैं जो दिखने में सूप जैसा है, लेकिन गणितीय रूप से कुछ पूरी तरह से अलग गणना करता है।
- समाधान: यह एजेंट एक गणितीय अनुवादक (Rocq) का उपयोग करता है।
- यह आपके मूल ऑर्डर (PyTorch कोड) को लेता है और उसे एक शुद्ध गणितीय समीकरण में बदल देता है।
- यह शेफ की नई रेसिपी (CUDA कोड) को लेता है और उसे भी एक गणितीय समीकरण में बदल देता है।
- यह एक मैथ विजार्ड (थ्योरम प्रूवर) से पूछता है: "क्या ये दोनों समीकरण बिल्कुल एक जैसे हैं?"
- परिणाम: यदि गणित सही बैठता है, तो एजेंट जानता है कि शेफ ने केवल "दिखावा" नहीं किया है। इसने 14% रेसिपी (ज्यादातर सरल जैसे नंबर जोड़ना या बेसिक फिल्टर्स) के लिए गणित को सही साबित करने में सफलता प्राप्त की।
यह एक बड़ी बात क्यों है
ProofWright से पहले, यदि आप AI-जनरेटेड GPU प्रोग्राम पर भरोसा करना चाहते थे, तो आपको इस बात की उम्मीद करनी पड़ती थी कि टेस्ट टेस्ट सब कुछ पकड़ लेंगे। यह वैसा ही है जैसे यह उम्मीद करना कि कार दुर्घटना केवल तभी होगी जब आप खाई में गिर जाएंगे, न कि तब जब 60 मील की रफ्तार पर टायर फट जाए।
ProofWright खेल बदल देता है:
- "कठिन चीजों" को स्वचालित करना: यह AI का उपयोग AI को सख्त सुरक्षा नियम लिखने सिखाने के लिए करता है, ताकि इंसानों को इसे मैन्युअल रूप से न करना पड़े।
- गलतियों से सीखना: यह केवल अनुमान नहीं लगाता; यह एक "डायरी" रखता है कि क्या काम किया और क्या नहीं, जिससे यह हर चेक किए गए कर्नल के साथ और स्मार्ट होता जाता है।
- गति: इस गहरे गणितीय चेक को करने में प्रति रेसिपी केवल लगभग 3 मिनट लगते हैं। यह इतना तेज़ है कि यह खाना पकाने की प्रक्रिया का हिस्सा बन सकता है, बाधा नहीं।
कमी (सीमाएं)
किसी भी नए निरीक्षक की तरह, ProofWright अभी भी पूर्ण नहीं है।
- यह सबसे जटिल, अराजक किचन (अजीब, गैर-मानक मेमोरी एक्सेस पैटर्न वाले कर्नल्स) को संभालने में संघर्ष करता है।
- यह अभी भी उन्नत किचन टूल्स (Tensor Cores) को संभालने के लिए सीख रहा है।
- सबसे जटिल व्यंजनों (जैसे कि शेफ के बीच भारी टीम वर्क वाले कार्यों) के लिए, "मैथ विजार्ड" कभी-कभी भ्रमित हो जाता है और यह सिद्ध नहीं कर पाता कि रेसिपी सही है, भले ही वह सही हो।
निष्कर्ष
ProofWright AI कोड जनरेशन की तीव्र गति और हाई-परफॉर्मेंस कंप्यूटिंग के लिए आवश्यक सख्त सुरक्षा के बीच एक सेतु है। यह एक सुपर-फास्ट प्रशिक्षु शेफ को एक जादुई, स्वयं-अपडेट होने वाली नियम पुस्तिका देने जैसा है जो सुनिश्चित करती है कि वे कभी भी किचन को जलाएंगे नहीं या गलत व्यंजन परोसेंगे नहीं, जिससे AI-जनरेटेड कोड पर हम वास्तव में भरोसा कर सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।