← नवीनतम पेपर
🤖 machine learning

Teaching LLMs Program Semantics via Symbolic Execution Traces

यह शोध पत्र 500 C सत्यापन कार्यों के लिए एक नए मूल्यांकन ढांचे को प्रस्तुत करता है और यह प्रदर्शित करता है कि लगभग 3,000 सिम्बोलिक एक्जीक्यूशन ट्रेसेस (symbolic execution traces) के साथ चेन-ऑफ-थॉट रीजनिंग (chain-of-thought reasoning) पर एक Qwen3-8B मॉडल को प्रशिक्षित करने से विविध प्रकार के गुणों (property types) में उल्लंघन का पता लगाने और समग्र सटीकता में महत्वपूर्ण सुधार होता है, जो बड़े मॉडलों से बेहतर प्रदर्शन करता है और दोनों तकनीकों के बीच एक सुपर-एडिटिव सिनर्जी (superadditive synergy) को प्रकट करता है।

मूल लेखक: Jonas Bayer, Stefan Zetzsche, Olivier Bouissou, Remi Delmas, Michael Tautschnig, Soonho Kong

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

मूल लेखक: Jonas Bayer, Stefan Zetzsche, Olivier Bouissou, Remi Delmas, Michael Tautschnig, Soonho Kong

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

एक बड़ी तस्वीर: AI को कोड के बग्स (गलतियाँ) पहचानना सिखाना

कल्पना कीजिए कि आपके पास एक बहुत ही बुद्धिमान छात्र (AI) है जिसने कोड लिखने के तरीकों पर लाखों किताबें पढ़ी हैं। वे नियमों को रटने और यह कहने में माहिर हैं कि, "हाँ, यह कोड सुरक्षित दिखता है!" लेकिन जब आप उनसे पूछते हैं, "क्या इस कोड में कोई छिपा हुआ जाल है?" तो वे अक्सर इसे चूक जाते हैं। वे अपने सामान्य ज्ञान में इतने आश्वस्त होते हैं कि वे उन विशिष्ट, पेचीदा विवरणों को अनदेखा कर देते हैं जो सॉफ्टवेयर को क्रैश कर सकते हैं या डेटा लीक कर सकते हैं।

यह पेपर उस छात्र को वास्तव में जालों को ढूँढना सिखाने के एक नए तरीके के बारे में है, न कि केवल यह कहने के बारे में कि कोड ठीक लग रहा है।

समस्या: "अति-आशावादी" छात्र

शोधकर्ताओं ने पहले 14 अलग-अलग AI मॉडल्स का परीक्षण 500 पेचीदा C-लैंग्वेज कोड पहेलियों पर किया। इन पहेलियों ने AI से यह तय करने के लिए कहा कि क्या कोड सुरक्षित था या इसमें कोई बग (जैसे मेमोरी लीक या अनंत लूप) था।

उन्होंने एक अजीब पैटर्न पाया:

  • अच्छी खबर: AI यह कहने में उत्कृष्ट था कि "यह सुरक्षित है" जब वह वास्तव में सुरक्षित था।
  • बुरी खबर: AI यह कहने में बहुत खराब था कि "यह टूटा हुआ है" जब वह वास्तव में टूटा हुआ था।

यह एक ऐसे सुरक्षा गार्ड की तरह था जो लोगों को अंदर आने देने में तो बहुत अच्छा है जब वे सही होते हैं, लेकिन असली चोरों को रोकने में बहुत खराब है। यहाँ तक कि सबसे बड़े, सबसे शक्तिशाली AI (कुछ जिनमें सैकड़ों अरब "मस्तिष्क कोशिकाएं" थीं) भी छोटे प्रोग्रामों में बग्स को पहचानने में विफल रहे, और जैसे-जैसे कोड लंबा होता गया, उनका प्रदर्शन और खराब होता गया।

समाधान: "जादुई जासूस" के साथ प्रशिक्षण

इसे ठीक करने के लिए, शोधकर्ताओं ने केवल AI को अधिक कोड पढ़ने के लिए नहीं दिया। इसके बजाय, उन्होंने Soteria नामक एक विशेष टूल का उपयोग किया।

Soteria को एक सुपर-डिटेक्टिव (महा-जासूस) के रूप में सोचें जो केवल कोड को एक बार नहीं चलाता है; यह कोड को हर संभव इनपुट संयोजन के साथ एक साथ चलाता है। यह एक ऐसे जासूस की तरह है जो भूलभुलैया के हर संभावित रास्ते की जांच एक साथ करता है ताकि उस एक रास्ते को खोजा जा सके जो अंततः बंद या गलत दिशा में ले जाता है।

  1. प्रशिक्षण डेटा (Training Data): शोधकर्ताओं ने 10 लाख ओपन-सोर्स कोड फाइलों पर Soteria चलाया। Soteria ने लगभग 34,000 फाइलें जिनमें बग्स थे, ढूँढ निकालीं और विस्तृत "क्राइम सीन रिपोर्ट" (ट्रेस) लिखीं, जिसमें विस्तार से समझाया गया कि वह बग क्यों हुआ।
  2. सबक (The Lesson): उन्होंने AI (विशेष रूप से Qwen3-8B मॉडल) को लिया और उसे केवल 3,208 सबसे स्पष्ट बग रिपोर्ट खिलाईं।
  3. ट्विस्ट: उन्होंने केवल कच्चा कोड नहीं दिया; उन्होंने AI को जासूस के नोट्स (सिंबोलिक एक्जीक्यूशन ट्रेसेस) दिए। ये नोट्स इस बात के स्टेप-बाय-स्टेप तर्क दिखाते थे कि बग कैसे पाया गया।

असली मंत्र: "सोचना" बनाम "जानना"

शोधकर्ताओं ने यह जानकर आश्चर्यचकित महसूस किया कि AI ने कैसे सीखा:

  • केवल बग रिपोर्ट पढ़ना पर्याप्त नहीं था।
  • AI को केवल "ज़्यादा गहराई से सोचने" (Chain-of-Thought) के लिए कहना भी पर्याप्त नहीं था।
  • लेकिन दोनों को एक साथ करना? वह एक जादुई संयोजन था।

यह एक छात्र को पढ़ाने जैसा है। यदि आप उन्हें केवल हल किए गए गणित के सवालों की एक पाठ्यपुस्तक देते हैं, तो वे उत्तर रट लेते हैं लेकिन विधि नहीं सीखते। यदि आप उन्हें बिना उदाहरणों के "चरण-दर-चरण सोचने" के लिए कहते हैं, तो वे खो जाते हैं। लेकिन यदि आप उन्हें हल किए गए सवाल भी दिखाते हैं और उन्हें अपना खुद का स्टेप-बाय-स्टेप तर्क लिखने के लिए मजबूर करते हैं, तो वे अंततः तर्क को समझ जाते हैं।

पेपर इसे "सुपरएडिटिव" (superadditive) कहता है। पूरा हिस्सा अपने हिस्सों के योग से भी बड़ा हो गया।

परिणाम: एक स्मार्ट, छोटा मॉडल

इस विशेष प्रशिक्षण के बाद, परिणाम प्रभावशाली थे:

  • छोटा मॉडल जीतता है: प्रशिक्षित 8-बिलियन पैरामीटर वाला मॉडल, उस 32-बिलियन पैरामीटर वाले मॉडल से बेहतर बन गया जिसे इस तरह से प्रशिक्षित नहीं किया गया था।
  • अंतर कम हुआ: AI बग्स को मिस करने से लेकर उन्हें बहुत अधिक बार पकड़ने की स्थिति में आ गया। वास्तव में, इसने बग्स को खोजने की अपनी क्षमता में लगभग 18 प्रतिशत अंक का सुधार किया।
  • सामान्य ज्ञान: भले ही प्रशिक्षण केवल मेमोरी और ओवरफ्लो बग्स पर केंद्रित था, AI सभी प्रकार के बग्स को पहचानने में बेहतर हो गया, जिनमें वे भी शामिल थे जिन्हें उसने पहले कभी नहीं देखा था (जैसे डेटा रेस)। उसने केवल विशिष्ट उत्तरों को नहीं, बल्कि सत्यापन (verification) के कौशल को सीखा।

यह क्यों मायने रखता है

यह पेपर दिखाता है कि AI को सॉफ्टवेयर बग्स खोजने में बेहतर बनाने के लिए, आपको अनिवार्य रूप से एक बड़े दिमाग की आवश्यकता नहीं है। आपको बेहतर प्रशिक्षण डेटा की आवश्यकता है जो AI को यह सिखा सके कि चीजें क्यों गलत होती हैं।

एक फॉर्मल वेरिफिकेशन टूल से "जासूसी रिपोर्ट" का उपयोग करके, उन्होंने AI को अनुमान लगाना बंद करने और यह तर्कपूर्ण प्रमाण देने के लिए सिखाया कि कोड सुरक्षित है या टूटा हुआ है। यह "मुझे लगता है कि यह सुरक्षित है" से "मैं साबित कर सकता हूँ कि यह X, Y और Z के कारण टूटा हुआ है" की ओर एक बदलाव है।

संक्षेप में: उन्होंने AI को एक बेहतर जासूस बनने के लिए सिखाया—उसे केवल और अधिक किताबें पढ़ने देने के बजाय, उसे अपराध स्थल की तस्वीरें और जासूस की नोटबुक दिखाकर।

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

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

Digest आज़माएँ →