Decaf: Improving Neural Decompilation with Automatic Feedback and Search
यह शोध पत्र Decaf को प्रस्तुत करता है, जो एक ऐसा सिस्टम है जो कंपाइलर फीडबैक और सर्च का लाभ उठाकर न्यूरल डीकंपाइलेशन आउटपुट की सिमेंटिक शुद्धता (semantic correctness) में महत्वपूर्ण सुधार करता है, जिससे मूल सोर्स कोड के साथ समानता से समझौता किए बिना Real -O2 स्प्लिट पर सफलता दर 26.0% से बढ़कर 83.9% हो जाती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
यहाँ "Decaf: Automatic Feedback और Search के साथ Neural Decompilation में सुधार" नामक शोध पत्र का सरल भाषा और रचनात्मक उपमाओं के साथ विवरण दिया गया है।
बड़ी समस्या: "खोया हुआ अनुवाद" (The Lost Translation)
कल्पना कीजिए कि आपके पास एक जटिल, उच्च-स्तरीय भाषा (जैसे अंग्रेजी) में लिखी गई एक किताब है। एक मशीन इस किताब को एक गुप्त कोड (मशीन कोड) में अनुवाद करती है ताकि कंप्यूटर इसे चला सके। एक बार अनुवाद होने के बाद, मशीन मूल किताब, अध्याय के शीर्षक, पात्रों के नाम और यहाँ तक कि व्याकरण के नियमों को भी फेंक देती है।
अब, कल्पना कीजिए कि आप एक जासूस हैं जो यह पता लगाने की कोशिश कर रहे हैं कि मूल कहानी क्या थी, लेकिन आपके पास केवल वह गुप्त कोड है। यह डीकंपिलेशन (decompilation) है।
पारंपरिक उपकरण (जैसे Ghidra) एक बहुत ही शाब्दिक अनुवादक की तरह हैं। वे गुप्त कोड को वापस शब्दों में तो बदल सकते हैं, लेकिन परिणाम एक गड़बड़ी जैसा होता है। वाक्य अजीब होते हैं, नाम बदलकर "Variable_1" और "Variable_2" कर दिए जाते हैं, और तर्क (logic) को समझना कठिन होता है। यह तकनीकी रूप से सही है, लेकिन इसे पढ़ना असंभव है।
दूसरी ओर, आधुनिक AI (लार्ज लैंग्वेज मॉडल्स) एक रचनात्मक लेखक की तरह है। यह कहानी का अनुमान लगा सकता है, शानदार पात्रों के नाम गढ़ सकता है, और सुचारू वाक्य लिख सकता है। लेकिन अपनी अत्यधिक रचनात्मकता के कारण, यह कभी-कभी भ्रमित (hallucinate) हो जाता है। यह एक ऐसा प्लॉट ट्विस्ट बना सकता है जो कभी हुआ ही नहीं था या किसी महत्वपूर्ण विवरण को छोड़ सकता है, जिससे कहानी सुंदर दिखने के बावजूद तथ्यात्मक रूप से गलत हो जाती है।
समाधान: "Decaf" (Automated Feedback के साथ Decompilation)
इस शोध पत्र के लेखक, अलेक्जेंडर शिपुला और उनकी टीम ने महसूस किया कि केवल AI के एक अनुमान पर भरोसा करना पर्याप्त नहीं है। उन्होंने Decaf नामक एक प्रणाली बनाई है जो एक सख्त जज के साथ टैलेंट शो की तरह काम करती है।
Decaf की प्रक्रिया इस प्रकार काम करती है:
1. "टैलेंट शो" (कई उम्मीदवारों का चयन - Sampling Many Candidates)
AI से कहानी का केवल एक संस्करण लिखने के बजाय, Decaf AI को कहानी के 32 अलग-अलग संस्करण लिखने के लिए कहता है।
- उपमा: कल्पना कीजिए कि आप 32 अलग-अलग शेफ से एक ही व्यंजन बनाने के लिए कह रहे हैं। कुछ इसे जला देंगे, कुछ इसे बहुत नमकीन बना देंगे, लेकिन उनमें से एक शायद बिल्कुल सही संस्करण बना देगा।
- शोध पत्र में पाया गया कि यदि आप केवल एक व्यंजन मांगते हैं, तो आपके पास कुछ खाने योग्य चीज़ पाने की संभावना 60% होती है। यदि आप 32 मांगते हैं, तो आपके पास 88% संभावना है कि कम से कम उनमें से एक एकदम सही होगा।
2. "स्वाद परीक्षण" (स्वचालित फीडबैक - Automatic Feedback)
अब आपके पास कोड के 32 अलग-अलग संस्करण हैं। आप कैसे जानेंगे कि कौन सा वास्तविक मूल है? आप उन्हें बस पढ़ नहीं सकते; वे सभी कोड की तरह दिखते हैं।
- ट्रिक: Decaf हर एक AI-जनरेटेड संस्करण को पुनः कंपाइल (re-compile) करता है। यह कोड को वापस उसी गुप्त मशीन कोड में बदल देता है।
- तुलना: इसके बाद यह इस नए गुप्त कोड की तुलना उस मूल गुप्त कोड से करता है जिससे आपने शुरुआत की थी।
- उपमा: कल्पना कीजिए कि आपके पास मूल गुप्त रेसिपी है। आप 32 शेफ के व्यंजनों को वापस सामग्री में बदलते हैं, और देखते हैं कि क्या सामग्रियों का सेट मूल सूची से बिल्कुल मेल खाता है। यदि सामग्री मेल खाती है, तो व्यंजन सही है।
3. "मुख्य जज" (न्यूरल रीरैंकर - The Neural Reranker)
कभी-कभी, केवल पुनः कंपाइल करने वाला चरण पर्याप्त नहीं होता क्योंकि सामग्रियां थोड़ी अलग दिख सकती हैं लेकिन स्वाद एक जैसा हो सकता है। इसलिए, Decaf एक दूसरे AI का उपयोग करता है, जिसे Reranker कहा जाता है, जो मुख्य जज के रूप में कार्य करता है।
- यह जज मूल के "गुप्त कोड" और AI के अनुमान के "गुप्त कोड" को देखता है।
- यह केवल शब्दों को नहीं देखता; यह तर्क (logic) को देखता है। यह पूछता है, "क्या ये दोनों कोड बिल्कुल एक ही काम करते हैं?"
- जज विजेता को चुनता है और बाकी को हटा देता है।
परिणाम: यह क्यों मायने रखता है
शोध पत्र ने इस प्रणाली का परीक्षण ExeBench नामक एक बड़े बेंचमार्क पर किया। यहाँ क्या हुआ:
- Decaf से पहले: सर्वश्रेष्ठ AI मॉडल केवल 26% समय ही तर्क को सही कर पाते थे। वे या तो बहुत अव्यवस्थित (पारंपरिक उपकरणों की तरह) थे या बहुत अधिक रचनात्मक (गलत जानकारी देने वाले) थे।
- Decaf के साथ: सटीकता बढ़कर 83.9% हो गई।
- "परफेक्ट मैच": इससे भी बेहतर, Decaf द्वारा बनाया गया कोड मूल के इतना समान था कि, 70.9% मामलों में, यदि आप इसे पुनः कंपाइल करते, तो कंप्यूटर कोड मूल के बाइट-दर-बाइट (byte-for-byte) समान होता।
शोध पत्र से एक वास्तविक उदाहरण
शोध पत्र एक विशिष्ट फंक्शन (कोड का एक छोटा हिस्सा) दिखाता है जो संख्याओं की गणना करता है।
- पारंपरिक टूल (Ghidra): एक सही लेकिन बदसूरत उत्तर देता है जिसमें
iVar1औरiVar2जैसे नाम होते हैं। - मानक AI (LLM4Decompile): एक सुंदर, पठनीय उत्तर देता है, लेकिन यह एक महत्वपूर्ण चरण (एक "break" स्थिति) को छोड़ देता है, जिससे तर्क गलत हो जाता है।
- Decaf: इसने 32 संस्करण बनाए। इसने उस संस्करण को खोज निकाला जिसमें सुंदर नाम और सही तर्क दोनों थे। इसने सफलतापूर्वक विजेता को चुनने के लिए अपने "स्वाद परीक्षण" और "मुख्य जज" का उपयोग किया।
"तनाव परीक्षण" (The Stress Test)
लेखकों ने यह भी परीक्षण किया कि क्या उनका सिस्टम तब भी काम करता है जब "सामग्री" बदल जाती है। उन्होंने जांच करने के लिए एक अलग कंपाइलर (GCC के बजाय Clang) का उपयोग किया।
- परिणाम: सिस्टम अभी भी अच्छा काम करता रहा, हालांकि यह थोड़ा कम सटीक हो गया। यह एक ऐसे जज की तरह है जो इतालवी भोजन चखने का आदी है लेकिन उससे फ्रांसीसी भोजन को परखने के लिए कहा गया है; वह अभी भी बता सकता है कि व्यंजन कैसा है, लेकिन वह अपने मूल व्यंजन की तरह एकदम सटीक नहीं हो सकता।
सारांश
Decaf यह नहीं कहता कि AI को अधिक डेटा देकर उसे स्मार्ट बनाया जाए। इसके बजाय, यह रणनीति को बदल देता है:
- कई विकल्प उत्पन्न करें (पहले अनुमान पर समझौता न करें)।
- स्वचालित रूप से सत्यापित करें उन्हें वापस मशीन कोड में बदलकर।
- एक स्मार्ट जज का उपयोग करें जो यह चुने कि कौन सा कोड पठनीय और तथ्यात्मक रूप से सही दोनों है।
यह दृष्टिकोण एक "अनुमान लगाने वाले खेल" को "खोज और सत्यापन" (search and verify) की प्रक्रिया में बदल देता है, जिससे कंप्यूटर कोड को समझने की क्षमता में नाटकीय सुधार होता है जिसे कंपाइल किया गया है और जिसके मूल अर्थ को हटा दिया गया है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।