LLMSniffer: Detecting LLM-Generated Code via GraphCodeBERT and Supervised Contrastive Learning
यह शोध पत्र LLMSniffer को पेश करता है, जो एक ऐसा डिटेक्शन फ्रेमवर्क है जो बेंचमार्क डेटासेट्स पर एआई-जनरेटेड कोड और मानव-लिखित कोड के बीच अंतर करने की सटीकता को महत्वपूर्ण रूप से सुधारने के लिए ग्राफकोडबर्ट (GraphCodeBERT) को सुपरवाइज्ड कॉन्ट्रास्टिव लर्निंग और कमेंट रिमूवल प्रीप्रोसेसिंग के साथ जोड़ता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए एक ऐसी दुनिया की जहाँ एक रोबोट इंसान जितनी ही तेज़ी से कोड लिख सकता है, लेकिन बिना किसी व्याकरण की गलती या टाइपो के। आज के 'लार्ज लैंग्वेज मॉडल्स' (LLMs) जैसे कि GitHub Copilot या ChatGPT यही करते हैं। हालाँकि यह उत्पादकता के लिए अद्भुत है, लेकिन यह एक नई समस्या पैदा करता है: हम एक मानव प्रोग्रामर और एक रोबोट के बीच अंतर कैसे करें?
यह विशेष रूप से स्कूलों (नकल रोकने के लिए) या सुरक्षा (बुरे तत्वों को पकड़ने के लिए) में पेचीदा है। मौजूदा उपकरण ऐसे हैं जैसे कि केवल लोहे पर काम करने वाले चुंबक का उपयोग करके घास के ढेर में सुई ढूँढना, जबकि सुई प्लास्टिक की बनी है। वे अक्सर विफल हो जाते हैं क्योंकि वे "शब्दों" (कमेंट्स और टेक्स्ट) को देखते हैं, न कि वास्तविक "कोड संरचना" (structure) को।
यहाँ आता है LLMSniffer, एक नया टूल जिसे BUET के शोधकर्ताओं द्वारा इस रहस्य को सुलझाने के लिए डिज़ाइन किया गया है। यह कैसे काम करता है, सरल शब्दों में यहाँ दिया गया है:
1. जासूस की रणनीति: "फालतू चीज़ों को हटाना" (Strip the Fluff)
कल्पना कीजिए कि आप एक लाइनअप में संदिग्ध की पहचान करने की कोशिश कर रहे हैं। संदिग्ध ने एक भेष पहना हुआ है (एक लंबी, बातूनी नोट जिसमें उन्होंने जो किया उसका वर्णन है)।
- पुराने डिटेक्टर: वे नोट पढ़ते हैं। यदि नोट सुनने में ऐसा लगता है कि इसे एक रोबोट ने लिखा है, तो वे अनुमान लगाते हैं "रोबोट"। लेकिन स्मार्ट रोबोट इंसानों जैसे नोट्स लिख सकते हैं, इसलिए वे धोखा खा जाते हैं।
- LLMSniffer का कदम: यह संदिग्ध को पकड़ता है, उसका भेष उतार देता है (सभी कमेंट्स और व्याख्यात्मक टेक्स्ट को हटा देता है) और उसके वास्तविक चेहरे (कच्ची कोड संरचना) को देखता है।
- उपमा: यह उपहार के ऊपर लगे फैंसी रैपिंग पेपर को अनदेखा करने और यह अनुमान लगाने जैसा है कि बॉक्स के अंदर क्या है। रोबोट और इंसान अपने "उपहारों" को अलग तरह से लपेटते हैं, भले ही सामग्री समान दिखे।
2. प्रशिक्षण स्कूल: "कोड का जिम" (The Gym for Code)
अंतर को पहचानने में वास्तव में कुशल होने के लिए, LLMSniffer GraphCodeBERT नामक एक विशेष मस्तिष्क का उपयोग करके दो-चरणीय प्रशिक्षण शिविर से गुजरता है।
चरण 1: ग्रुप हग (कंट्रास्टिव लर्निंग - Contrastive Learning)
कल्पना कीजिए एक जिम की जहाँ कोच छात्रों से कहता है: "उन सभी को गले लगाओ जो तुम्हारे जैसे दिखते हैं, लेकिन उन सभी को दूर धकेलो जो अलग दिखते हैं!"- मॉडल कोड का एक बैच लेता है। यह सभी "मानव" (Human) कोड को कमरे के एक कोने में कसकर इकट्ठा होने के लिए मजबूर करता है।
- यह सभी "AI" कोड को दूसरे कोने में इकट्ठा होने के लिए मजबूर करता है।
- महत्वपूर्ण रूप से, यह दोनों समूहों को एक-दूसरे से जितना संभव हो सके उतना दूर धकेलता है। यह मानव और रोबोट कोड के बीच एक बहुत स्पष्ट "नो-मैन्स-लैंड" (कोई न रहने की जगह) बनाता है।
चरण 2: अंतिम परीक्षा (द क्लासिफायर - The Classifier)
एक बार जब समूह पूरी तरह से अलग हो जाते हैं, तो कोच एक नया शिक्षक (एक MLP क्लासिफायर) लाता है। इस शिक्षक को अब उन्हें समूहबद्ध करने की आवश्यकता नहीं है; उन्हें बस कमरे के बीच में एक सीधी रेखा खींचनी है और कहना है, "यदि आप बाईं ओर हैं, तो आप मानव हैं। यदि आप दाईं ओर हैं, तो आप AI हैं।"
3. परिणाम: एक स्पष्ट तस्वीर
शोधकर्ताओं ने दो प्रमुख चुनौतियों (डेटासेट्स) पर इसका परीक्षण किया:
- "GPTSniffer" टेस्ट: एक कठिन टेस्ट जहाँ AI कोड प्रशिक्षण डेटा से अलग "ब्रह्मांड" से आया था।
- पुराने टूल्स: लगभग 70% बार सही थे।
- LLMSniffer: 78% बार सही था।
- "Whodunit" टेस्ट: कोडिंग प्रतियोगिता से पायथन कोड का उपयोग करने वाला एक टेस्ट।
- पुराने टूल्स: 91% बार सही थे।
- LLMSnifier: 94.6% बार सही था।
दृश्य प्रमाण: शोधकर्ताओं ने t-SNE (इसे एक 3D मैप समझें) नामक तकनीक का उपयोग किया।
- पहले: मैप नीले और नारंगी जेलीबीन्स के मिश्रित कटोरे जैसा दिख रहा था। आप अंतर नहीं कर सकते थे कि कौन सा क्या है।
- बाद में: मैप ने नीले जेलीबीन्स का एक सख्त, साफ गोला और नारंगी जेलीबीन्स का एक अलग, सख्त गोला दिखाया जिसके बीच में एक बड़ा खाली स्थान था। यह स्पष्ट था कि कौन सा क्या है।
यह क्यों मायने रखता है?
- शिक्षकों के लिए: यह पहचानने में मदद करता है कि छात्र ने अपना होमवर्क करने के लिए रोबोट का उपयोग किया है या नहीं, जिससे निष्पक्षता सुनिश्चित होती है।
- सुरक्षा के लिए: यह कंपनियों को यह जानने में मदद करता है कि कोड का एक टुकड़ा उनकी टीम द्वारा लिखा गया है या एक AI द्वारा उत्पन्न किया गया है जिसमें छिपे हुए बग या सुरक्षा खामियां हो सकती हैं।
- भविष्य के लिए: शोधकर्ताओं ने अपने टूल, डेटा और कोड को सभी के लिए मुफ्त उपलब्ध कराया है। उन्होंने एक वेबसाइट भी बनाई है जहाँ आप कोड पेस्ट कर सकते हैं और तुरंत उत्तर प्राप्त कर सकते हैं।
कमी (सीमाएँ)
किसी भी जासूस की तरह, LLMSniffer भी पूर्ण नहीं है।
- "लंबी कहानी" की समस्या: यह केवल एक निश्चित लंबाई तक कोड पढ़ सकता है। यदि फ़ाइल बहुत बड़ी है, तो इसे बीच में ही काटना होगा, जिससे यह सुराग चूक सकता है।
- "दुष्ट जीनियस" की समस्या: यदि कोई रोबोट मानवीय विशिष्टताओं की नकल करने में बहुत अच्छा हो जाता है, या यदि कोई इंसान अपनी शैली बदलकर डिटेक्टर को धोखा देने की कोशिश करता है, तो टूल भ्रमित हो सकता है।
- नैतिकता: लेखक चेतावनी देते हैं: इसे एकमात्र निर्णायक के रूप में उपयोग न करें। यदि टूल कहता है कि छात्र ने नकल की है, तो एक मानव शिक्षक को अभी भी काम की जांच करनी चाहिए। गलत आरोप जीवन बर्बाद कर सकते हैं।
संक्षेप में
LLMSniffer एक अधिक स्मार्ट, तेज़ जासूस है। "फालतू चीज़ों" (कमेंट्स) से विचलित होने के बजाय, यह कोड के कंकाल (skeleton) को देखता है। "मानव" और "रोबोट" कोड को कमरे के अलग-अलग कोनों में शारीरिक रूप से अलग करने के लिए AI को प्रशिक्षित करके, यह पिछले उपकरणों की तुलना में बहुत अधिक सटीकता के साथ अंतर को पहचान सकता है। यह सॉफ्टवेयर की दुनिया को ईमानदार रखने के लिए एक शक्तिशाली नया कवच है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।