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

CNnotator: LLM-Guided Memory Safety Annotation Synthesis

यह शोध पत्र CNnotator को प्रस्तुत करता है, जो लेगेसी C कोड के लिए मेमोरी सुरक्षा एनोटेशन (CN विनिर्देशों) को स्वचालित रूप से संश्लेषित और सत्यापित करने के लिए लार्ज लैंग्वेज मॉडल्स का लाभ उठाता है, यह प्रदर्शित करते हुए कि वर्तमान AI मॉडल सुरक्षित भाषाओं में माइग्रेशन को सुगम बनाने के लिए मेमोरी उपयोग पैटर्न की पहचान करने में उच्च सफलता दर प्राप्त कर सकते हैं।

मूल लेखक: Twain Byrnes, Mike Dodds

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

मूल लेखक: Twain Byrnes, Mike Dodds

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

कल्पना कीजिए कि आपके पास एक पुरानी, हाथ से लिखी हुई रेसिपी बुक है जो C नामक एक बहुत ही खतरनाक रसोई की भाषा में लिखी गई है। इस भाषा में, शेफ (प्रोग्रामर) को हर एक सामग्री का प्रबंधन खुद करना पड़ता है। यदि वे किसी बर्तन पर ढक्कन लगाना भूल जाते हैं, या यदि वे उस चम्मच का उपयोग करने की कोशिश करते हैं जिसे पहले ही कूड़ेदान में फेंक दिया गया है, तो पूरी रसोई में आग लग सकती है। इन्हें मेमोरी सेफ्टी एरर्स (memory safety errors) कहा जाता है, और ये उन सुरक्षा बग्स के कारण होते हैं जो हमारे दैनिक जीवन में उपयोग होने वाले सॉफ़्टवेयर में बड़ी संख्या में मौजूद होते हैं।

Rust जैसी आधुनिक भाषाएँ स्मार्ट उपकरणों वाली रसोई की तरह हैं: वे ओवन को गर्म होने पर खोलने की कोशिश करने पर उसे अपने आप लॉक कर देती हैं, या वे आपको ऐसा चम्मच उठाने नहीं देंगी जो मौजूद ही नहीं है। लेकिन हम अपनी पुरानी रेसिपी बुक्स को बस यूँ ही फेंक नहीं सकते। हमें यह समझने की ज़रूरत है कि पुराने शेफ अपनी सामग्रियों का उपयोग कैसे कर रहे थे ताकि हम या तो रेसिपी को ठीक कर सकें या उन्हें नई, सुरक्षित भाषा में अनुवाद कर सकें।

समस्या यह है कि पुरानी किताबों में, सामग्रियों के उपयोग के नियम लिखे नहीं गए हैं। वे उलझे हुए चरणों के बीच छिपे हुए हैं। इन नियमों को समझना एक गुप्त कोड को केवल खाना बनाते हुए देखकर पहचानने की कोशिश करने जैसा है। यह उबाऊ है और इसमें गलती होने की संभावना बहुत अधिक है।

नया टूल: CNnotator

लेखकों ने CNnotator नामक एक टूल बनाया है जो इसमें मदद करता है। इसे दो लोगों की एक टीम के रूप में समझें:

  1. अनुमान लगाने वाला शेफ (The AI): यह एक लार्ज लैंग्वेज मॉडल (LLM) है। यह एक उलझी हुई रेसिपी को देखकर यह अनुमान लगाने में बहुत माहिर है कि, "ओह, मुझे यकीन है कि यह शेफ इस चम्मच को अंत तक थामे रखेगा।" यह छिपे हुए नियमों को एक औपचारिक अनुबंध (formal contract) के रूप में लिखने की कोशिश करता है।
  2. सख्त निरीक्षक (The Formal Tool): यह CN नामक एक कंप्यूटर प्रोग्राम है। यह 'अनुमान लगाने वाले शेफ' पर भरोसा नहीं करता है। इसका एकमात्र काम अनुमानों की जाँच करना है। यह लिखे गए नियमों को लेता है और रेसिपी को अलग-अलग रैंडम सामग्रियों के साथ 100 बार चलाकर देखता है कि क्या रसोई सुरक्षित रहती है।

यह कैसे काम करता है ("अनुमान लगाओ और जाँचो" लूप)

यह टूल एक सरल चक्र (cycle) पर काम करता है:

  1. एक रेसिपी चुनें: टूल C कोड के एक फंक्शन (एक विशिष्ट खाना बनाने का चरण) को देखता है।
  2. AI से पूछें: "हे AI, इस चरण में सामग्रियों को कैसे संभाला जाता है, इसके नियम लिखो।"
  3. AI अनुमान लगाता है: AI एक "कॉन्ट्रैक्ट" (नियमों का एक सेट) लिखता है जो यह बताता है कि कौन सी सामग्री का स्वामित्व किसके पास है और उनका उपयोग करना कब सुरक्षित है।
  4. निरीक्षक परीक्षण करता है: टूल उन नियमों के आधार पर कोड को 100 बार चलाता है।
    • यदि यह पास हो जाता है: बहुत बढ़िया! नियम संभवतः सही हैं। अगली रेसिपी पर जाएँ।
    • यदि यह विफल हो जाता है: निरीक्षक कहता है, "आपने कहा था कि चम्मच सुरक्षित था, लेकिन वह फट गया!" टूल इस त्रुटि को वापस AI को भेजता है: "फिर से कोशिश करें, लेकिन इस विशिष्ट गलती को सुधारें।"
  5. दोहराएं: AI तब तक दोबारा प्रयास करता है, अधिकतम छह बार, जब तक कि वह इसे सही न कर ले या हार न मान ले।

परिणाम

शोधकर्ताओं ने इसका परीक्षण 31 अलग-अलग "रेसिपीज़" (C फंक्शन्स) पर किया, जो सरल कार्यों से लेकर थोड़े जटिल कार्यों तक विस्तृत थे। उन्होंने इसे पाँच अलग-अलग AI मॉडल्स के साथ आज़माया।

  • स्टार परफॉर्मर: o3 नामक AI मॉडल सबसे अच्छा था। इसने पहली ही कोशिश में 90% रेसिपी के लिए नियमों को सही ढंग से लिखा। जब इसे कुछ बार फिर से प्रयास करने की अनुमति दी गई, तो इसने 97% मामलों में सफलता प्राप्त की।
  • चैटबॉट: यहाँ तक कि पुराना, मानक चैट मॉडल (GPT-4o) भी काफी अच्छा काम करता है, जो पहली कोशिश में लगभग 65% बार सही होता है।
  • सेफ्टी नेट: यह टूल "टूटी हुई" रेसिपी को पहचानने में भी स्मार्ट था। यदि कोड में कोई गारंटीकृत बग था (जैसे कि उस चम्मच का उपयोग करना जिसे पहले ही फेंक दिया गया है), तो AI कहेगा, "मैं इसके लिए एक सुरक्षित नियम नहीं लिख सकता क्योंकि रेसिपी स्वयं ही टूटी हुई है," और रुक जाएगा।

यह क्यों महत्वपूर्ण है

पेपर का तर्क है कि हमें AI के पूर्ण होने पर भरोसा करने की आवश्यकता नहीं है। हमें बस इसे एक अच्छा अनुमान लगाने वाला (guesser) बनाने की आवश्यकता है। क्योंकि हमारे पास एक सख्त निरीक्षक (inspector) है जो हर अनुमान की जाँच करता है, हम अंतिम परिणाम पर भरोसा कर सकते हैं भले ही AI बीच में गलतियाँ करे।

यह दृष्टिकोण बताता है कि अब हम पुराने, खतरनाक C कोड को समझने और आधुनिक बनाने के लिए AI का उपयोग कर सकते हैं, जिससे बिना हर एक लाइन को मैन्युअल रूप से दोबारा लिखे, उन्हें सुरक्षित बनाया जा सके। यह एक सुपर-फास्ट प्रशिक्षु (apprentice) की तरह है जो सुरक्षा नियमों का मसौदा तैयार कर सकता है, जबकि एक मास्टर निरीक्षक यह सुनिश्चित करता है कि इमारत ढह न जाए।

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

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

Digest आज़माएँ →