Fine-Tuning Pre-Trained Code Models for AI-Generated Code Detection
यह शोध पत्र SemEval-2026 टास्क 13 के लिए "आर्कियोलॉजी" (Archaeology) टीम के सिस्टम को प्रस्तुत करता है, जो एआई-जनित कोड का पता लगाने और उसके स्रोत का निर्धारण करने में शीर्ष स्तर का प्रदर्शन करने के लिए फाइन-ट्यून्ड प्री-ट्रेंड कोड मॉडल्स और 'लीव-वन-लैंग्वेज-आउट क्रॉस-वैलिडेशन' (leave-one-language-out cross-validation) एवं 'सैंडविच टोकन पैकिंग' (sandwich token packing) जैसी विशिष्ट रणनीतियों का लाभ उठाता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
एक डिजिटल डिटेक्टिव एजेंसी की कल्पना करें जिसका नाम Archaeology है। उनका काम प्राचीन मिट्टी के बर्तन खोदना नहीं है, बल्कि कंप्यूटर कोड के ढेर को छानकर दो बड़े सवालों के जवाब देना है:
- इसे किसने लिखा? क्या यह किसी इंसान प्रोग्रामर ने लिखा था या किसी रोबोट (AI) ने?
- वह कौन सा रोबोट था जिसने इसे लिखा? यदि यह एक रोबोट द्वारा लिखा गया था, तो किस विशिष्ट AI मॉडल ने इसे बनाया?
इस टीम ने अपने कौशल को साबित करने के लिए SemEval-2026 Task 13 नामक एक उच्च-दांव वाली प्रतियोगिता में प्रवेश किया। उन्होंने यह कैसे किया, इसे सरल भाषा में समझाया गया है।
चुनौती: एक दो-भाग वाला रहस्य
प्रतियोगिता में दो अलग-अलग पहेलियाँ थीं, जिनमें से प्रत्येक के लिए अलग डिटेक्टिव रणनीति की आवश्यकता थी।
पहेली A: "इंसान बनाम रोबोट" परीक्षण (बाइनरी क्लासिफिकेशन)
- लक्ष्य: कोड के एक टुकड़े को देखें और कहें, "इंसान" या "AI।"
- जाल: टीम को मुख्य रूप से Python कोड (उनके अभ्यास डेटा का 91%) पर प्रशिक्षित किया गया था, लेकिन अंतिम परीक्षण में ऐसे भाषाएँ शामिल थीं जिन्हें उन्होंने पहले कभी नहीं देखा था, जैसे JavaScript, Go और C#। यह एक शेफ को केवल इतालवी खाना बनाना सिखाने जैसा है, और फिर उनसे पूछना कि क्या कोई व्यंजन घर का बना है या फैक्ट्री का बना है, जबकि वह वास्तव में एक थाई करी है।
- सुराग: AI कोड लंबा और अधिक एकसमान होता है, जबकि मानव कोड छोटा और अधिक अराजक होता है। हालांकि, यह नियम भाषा के आधार पर बदल जाता है (उदाहरण के लिए, C++ में, इंसान वास्तव में AI की तुलना में लंबा कोड लिखते हैं)।
पहेली B: "कौन सा रोबोट?" परीक्षण (मल्टी-क्लास एट्रिब्यूशन)
- लक्ष्य: यदि कोड AI-जनरेटेड है, तो पहचानें कि कौन से 11 अलग-अलग AI मॉडल्स ने इसे लिखा है।
- जाल: डेटा बहुत असंतुलित था। एक श्रेणी (मानव-लिखित कोड) ने डेटा का 88% हिस्सा बनाया, जबकि कुछ विशिष्ट AI मॉडल्स के पास 2,000 से भी कम उदाहरण थे। यह घास के ढेर में सुई खोजने जैसा है, जहाँ घास का ढेर 99% घास है और सुइयाँ अलग-अलग रंगों की हैं, लेकिन आपके पास केवल एक लाल सुई और दस लाख नीली सुइयाँ हैं।
- सुराग: विभिन्न AI मॉडल्स की सूक्ष्म "हस्तलेखन" शैलियाँ होती हैं, लेकिन ये शैलियाँ लंबे, जटिल कोड में पहचानना कठिन होता है।
डिटेक्टिव का टूलकिट
टीम ने केवल अनुमान नहीं लगाया; उन्होंने चार अलग-अलग "सुपर-आंखों" (प्री-ट्रेन्ड AI मॉडल्स) का उपयोग किया और प्रत्येक पहेली के लिए उन्हें विशेष प्रशिक्षण तकनीकें दीं।
पहेली A (इंसान बनाम रोबोट) के लिए
- "लैंग्वेज स्वैप" ड्रिल: परीक्षण में आने वाली सरप्राइज भाषाओं के लिए तैयार होने के लिए, उन्होंने एक समय में एक भाषा को छिपाकर मॉडल्स को प्रशिक्षित किया। उन्होंने मॉडल को विशिष्ट भाषा के ट्रिक्स (जैसे कि पायथन कमेंट्स के लिए
#का उपयोग करता है) पर निर्भर रहने के बजाय पैटर्न पहचानने के लिए सिखाया। - "स्क्रब एंड मास्क" वर्कआउट: उन्होंने कमेंट्स को हटा दिया और ट्रेनिंग के दौरान नंबरों को प्लेसहोल्डर्स से बदल दिया। इसने मॉडल्स को कोड की सतह की सजावट के बजाय उसके लॉजिक को देखने के लिए मजबूर किया।
- "चंकिंग" रणनीति: चूंकि टेस्ट कोड अक्सर एक बार में पढ़ने के लिए बहुत लंबा होता था, इसलिए उन्होंने इसे ओवरलैपिंग टुकड़ों में काट दिया (जैसे एक लंबी किताब को एक बार में कुछ प halaman पढ़कर पढ़ना)। फिर उन्होंने अंतिम निर्णय लेने के लिए इन टुकड़ों का औसत लिया, जिसमें सबसे अधिक "शोर" वाले अनुमानों को छोड़ दिया गया।
- "डिफिकल्ट केस" कैलिब्रेशन: उन्होंने उन उदाहरणों का उपयोग करके एक विशेष "कठिन टेस्ट" बनाया जिन्हें एक साधारण कंप्यूटर प्रोग्राम गलत कर देता था। उन्होंने यह सुनिश्चित करने के लिए कि वे टेस्ट डेटा से मूर्ख न बनें कि उन्होंने इन ट्रिकी मामलों के आधार पर अपने निर्णय की सीमा (threshold) को ट्यून किया।
पहेली B (कौन सा रोबोट?) के लिए
- "सैंडविच" तकनीक: चूंकि कोड मॉडल की मेमोरी में फिट होने के लिए बहुत लंबा था, इसलिए उन्होंने केवल बीच का हिस्सा नहीं काटा। इसके बजाय, उन्होंने कोड के Head (शुरुआत) और Tail (अंत) को रखा और उन्हें बीच में एक विशेष मार्कर के साथ एक सैंडविच की तरह एक साथ भर दिया। इससे शुरुआत और अंत की शैली सुरक्षित रही, जहाँ अक्सर "रोबोट सिग्नेचर" छिपा होता है।
- "फेयरनेस" वेट: क्योंकि कुछ AI मॉडल्स डेटा में दुर्लभ थे, टीम ने मॉडल को बताया, "सिर्फ सबसे सामान्य का अनुमान न लगाएं! दुर्लभ वाले पर विशेष ध्यान दें।" उन्होंने स्कोरिंग सिस्टम को समायोजित किया ताकि मॉडल लोकप्रिय के बजाय दुर्लभ रोबोट्स को पहचानना सीख सके।
- "क्राउड विजडम" वोट: उन्होंने एक ही कोड को मामूली बदलावों के साथ मॉडल के माध्यम से कई बार चलाया और मॉडल्स को उत्तर पर वोट करने दिया। इससे त्रुटियां कम हुईं और आत्मविश्वास बढ़ा।
परिणाम
"Archaeology" टीम ने बहुत अच्छा प्रदर्शन किया:
- पहेली A: उन्होंने 0.737 का स्कोर प्राप्त किया, जो उन्हें 81 टीमों में से 6वें स्थान पर ले आया। उनका सबसे अच्छा टूल CodeBERT था, जो ऐसा लगा कि वह अन्य मॉडल्स की तुलना में कोड के "लॉजिक" को बेहतर समझता है।
- पहेली B: उन्होंने 0.422 का स्कोर प्राप्त किया, जो उन्हें 34 टीमों में से 7वें स्थान पर ले आया। यहाँ उनका सबसे अच्छा टूल UniXcoder था, जिसे कोड के लंबे टुकड़ों को देखने और "वोटिंग" रणनीति का लाभ मिला।
मुख्य निष्कर्ष
टीम ने खोजा कि मॉडल को कैसे प्रशिक्षित किया जाता है, यह इस बात से अधिक महत्वपूर्ण है कि वह कितना बड़ा है।
- छोटे मॉडल्स (125 मिलियन पैरामीटर्स) जो विशेष रूप से कोड लॉजिक को समझने के लिए प्रशिक्षित किए गए थे, वे AI को पकड़ने में बेहतर प्रदर्शन करते थे।
- विशाल मॉडल (220 मिलियन पैरामीटर्स) ने जीत हासिल नहीं की, जिससे पता चलता है कि इस विशिष्ट कार्य के लिए, एक "स्पेशलिस्ट" होना एक "जनरलिस्ट" होने से बेहतर है।
संक्षेप में, टीम ने साबित कर दिया कि सही प्रशिक्षण युक्तियों के साथ—जैसे लंबे कोड को काटना, सतह के शोर को अनदेखा करना और उत्तरों पर वोट करना—आप एक ऐसा सिस्टम बना सकते हैं जो AI-जनरेटेड कोड को पकड़ने में आश्चर्यजनक रूप से सक्षम है, भले ही वह नई भाषाओं में खुद को छिपाने की कोशिश करे।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।