Can Code Evaluation Metrics Detect Code Plagiarism?
यह शोध पत्र अनुभवजन्य रूप से प्रदर्शित करता है कि कोड मूल्यांकन मेट्रिक्स, विशेष रूप से क्रिस्टलब्लू (CrystalBLEU), विभिन्न संशोधन स्तरों में सोर्स कोड प्लेजरिज्म (साहित्यिक चोरी) का प्रभावी ढंग से पता लगा सकते हैं और अक्सर प्रीप्रोसेसिंग लागू होने पर डोलोस (Dolos) और जेप्लैग (JPlag) जैसे समर्पित प्लेजरिज्म डिटेक्शन टूल्स से बेहतर या उनके बराबर प्रदर्शन करते हैं।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक शिक्षक हैं जो सैकड़ों प्रोग्रामिंग असाइनमेंटों को ग्रेड कर रहे हैं। आपको संदेह है कि कुछ छात्रों ने एक-दूसरे का काम कॉपी किया है, लेकिन उन्होंने वेरिएबल के नाम बदलकर, फॉन्ट बदलकर या कोड का क्रम बदलकर इसे छिपाने की कोशिश की है। यह सोर्स कोड प्लेजरिज्म (Source Code Plagiarism) की समस्या है।
वर्षों से, शिक्षक चोरी पकड़ने के लिए विशेष "डिटेक्टिव टूल्स" (जैसे JPlag और Dolos) का उपयोग करते रहे हैं। ये उपकरण चोरी पकड़ने के लिए विशेष रूप से डिज़ाइन किए गए फॉरेंसिक स्कैनर की तरह हैं।
लेकिन हाल ही में, तकनीकी दुनिया में एक नए प्रकार के टूल लोकप्रिय हुए हैं: कोड इवैल्यूएशन मेट्रिक्स (CEMs)। इन टूल्स को "क्वालिटी चेकर्स" के रूप में सोचें: जिन्हें मूल रूप से एक अलग काम के लिए बनाया गया था: यह देखने के लिए कि कंप्यूटर द्वारा जनरेट किया गया कोड एक आदर्श रेफरेंस कोड के मुकाबले कैसा प्रदर्शन करता है। इन्हें नकल पकड़ने के लिए नहीं, बल्कि AI को ग्रेड करने के लिए बनाया गया था।
यह शोध पत्र एक सरल प्रश्न पूछता है: क्या ये "क्वालिटी चेकर्स" (CEMs) भी "प्लेजरिज्म डिटेक्टिव्स" (नकल पकड़ने वाले जासूस) के रूप में कार्य कर सकते हैं?
यहाँ कहानी है कि कैसे लेखकों ने इसे टेस्ट किया, सरल उपमाओं का उपयोग करते हुए।
प्रयोग: "कॉपी-पेस्ट" के स्तर
शोधकर्ताओं ने केवल स्पष्ट चोरी को ही नहीं देखा। उन्होंने चोरी को "छिपाने" के छह अलग-अलग स्तरों के खिलाफ इन टूल्स का परीक्षण किया, जो आसान से लेकर लगभग असंभव तक थे:
- स्तर 1 (कॉस्मेटिक बदलाव): जैसे फॉन्ट का रंग बदलना या अतिरिक्त स्पेस जोड़ना। (पहचानने में आसान)।
- स्तर 2-3 (नाम बदलने का खेल): "myVariable" को "x" में बदलना या वाक्यों का क्रम बदलना। (मध्यम कठिनाई)।
- स्तर 4-5 (स्ट्रक्चरल शफल): एक लूप को लेकर उसे दूसरे प्रकार के लूप में बदल देना, या एक बड़े फंक्शन को तीन छोटे फंक्शन्स में बांट देना। (कठिन)।
- स्तर 6 (लॉजिक रीराइट): पूरी लॉजिक को इस तरह से फिर से लिखना कि वह पूरी तरह से अलग दिखे लेकिन वही सटीक काम करे। (बहुत कठिन)।
उन्होंने दो बड़े वास्तविक छात्र कोड सेट का उपयोग करके पांच अलग-अलग "क्वालिटी चेकर्स" (CEMs) का दो "फॉरेंसिक स्कैनर्स" (JPlag और Dolos) के विरुद्ध परीक्षण किया।
टूल्स: वे कैसे "सोचते" हैं
परिणामों को समझने के लिए, यह जानना सहायक है कि ये टूल्स कोड को कैसे "देखते" हैं:
- लेक्सिकल टूल्स (जैसे CrystalBLEU): ये शब्दों (टोकन) को देखते हैं। कल्पना करें कि आप एक किताब पढ़ रहे हैं और देख रहे हैं कि कितने शब्द मेल खाते हैं। CrystalBLEU स्मार्ट है; यह सामान्य वाक्यांशों जैसे "import java" या "public class" (बॉयलरप्लेट) को अनदेखा करता है ताकि यह टेम्पलेट के उपयोग से धोखा न खा जाए।
- स्ट्रक्चरल टूल्स (जैसे TSED): ये कोड के आकार को देखते हैं, जैसे दो इमारतों के कंकाल (skeleton) की तुलना करना।
- सिमेंटिक टूल्स (जैसे CodeBERTScore): ये कोड के अर्थ को समझने की कोशिश करते हैं, जैसे एक मानव पाठक।
निष्कर्ष: दौड़ में कौन जीता?
1. "रॉ" टेस्ट (बिना तैयारी के)
जब टूल्स ने कोड को ठीक वैसे ही देखा जैसा छात्रों ने सबमिट किया था (कमेंट्स, अतिरिक्त स्पेस और टेम्पलेट्स के साथ):
- Dolos (समर्पित जासूस) समग्र विजेता था। यह नकल करने वालों को पकड़ने में सबसे सुसंगत था।
- हालांकि, CrystalBLEU (क्वालिटी चेकर) दूसरे स्थान पर बहुत करीब था, जिसने पुराने जासूस JPlag को पीछे छोड़ दिया।
- "टीम अप" रणनीति: लेखकों ने शीर्ष तीन क्वालिटी चेकर्स को मिलाकर FusionTop3 नामक एक सुपर-टूल बनाने की कोशिश की। इस टीम ने सर्वश्रेष्ठ जासूस, Dolos, के लगभग बराबर प्रदर्शन किया।
2. "प्रीप्रोसेस्ड" टेस्ट (पहले कोड की सफाई करना)
परीक्षण से पहले, शोधकर्ताओं ने कोड को "साफ" किया: उन्होंने कमेंट्स, अतिरिक्त स्पेस और मानक टेम्पलेट लाइनों को हटा दिया। यह अपराध स्थल को उंगलियों के निशान देखने से पहले धूल से साफ करने जैसा है।
- बदलाव: सफाई के बाद, क्वालिटी चेकर्स बहुत बेहतर हो गए। CrystalBLEU और FusionTop3 टीम ने समग्र रैंकिंग में Dolos को भी पछाड़ दिया।
- क्यों? सफाई की प्रक्रिया ने उस "शोर" (noise) को हटा दिया जिसने क्वालिटी चेकर्स को भ्रमित किया था, जिससे उन्हें वास्तविक कोड स्ट्रक्चर पर ध्यान केंद्रित करने की अनुमति मिली।
3. कठिनाई का वक्र (The "L4" Wall)
यह सबसे महत्वपूर्ण निष्कर्ष था।
- स्तर 1, 2, और 3: सभी टूल्स (दोनों समर्पित जासूस और क्वालिटी चेकर्स) उत्कृष्ट थे। उन्होंने लगभग सभी को पकड़ लिया।
- स्तर 4 और उससे आगे: सभी के लिए प्रदर्शन तेजी से गिर गया।
- उपमा: कल्पना करें कि एक छात्र एक रेसिपी की नकल करता है लेकिन सामग्री, पकाने की विधि और चरणों के क्रम को बदल देता है, फिर भी व्यंजन का स्वाद वही रहता है। सबसे अच्छे टूल्स भी यह कहने में संघर्ष कर रहे थे कि, "यह वही रेसिपी है!"
- अपवाद: CrystalBLEU सबसे कठिन स्तरों (स्तर 6) पर भी आश्चर्यजनक रूप से मजबूत बना रहा, जबकि अन्य संघर्ष कर रहे थे।
सीमाएं: जहाँ वे विफल रहे
- CodeBERTScore (अर्थ समझने वाला): यह टूल बुरी तरह विफल रहा। इसने हर चीज़ को उच्च समानता स्कोर दिया, यहाँ तक कि उन कोड्स को भी जो कॉपी नहीं किए गए थे। यह एक सुरक्षा गार्ड की तरह था जो सोचता है कि इमारत में हर व्यक्ति चोर है क्योंकि वे सभी इंसान दिखते हैं।
- TSED (कंकाल देखने वाला): जब छात्रों ने सिंटैक्स (शब्दों) को बदला लेकिन लॉजिक को बरकरार रखा, तो इसे संघर्ष करना पड़ा। यह "नाम बदलने के खेल" को संभालने में सक्षम नहीं था।
- "L4" वॉल: कोई भी टूल, चाहे वह समर्पित जासूस हो या क्वालिटी चेकर, बिना हाई फॉल्स अलार्म (गलत सूचना) के सबसे जटिल रूपों की चोरी को विश्वसनीय रूप से नहीं पकड़ सका।
निष्कर्ष: इसका क्या अर्थ है?
शोध पत्र यह निष्कर्ष निकालता है कि कोड इवैल्यूएशन मेट्रिक्स वास्तव में प्लेजरिज्म का पता लगा सकते हैं, और कुछ मामलों में (विशेष रूप से कोड की सफाई के बाद), वे विशेषज्ञ टूल्स के समान या उनसे भी बेहतर प्रदर्शन करते हैं।
हालांकि, वे कोई जादुई समाधान नहीं हैं।
- सर्वश्रेष्ठ उपयोग: वे स्क्रीनिंग के लिए बेहतरीन हैं। वे तेजी से सबमिशन को रैंक कर सकते हैं ताकि शिक्षक को दिखा सकें, "हे, पहले इन 10 जोड़ों को देखें; ये संदिग्ध लग रहे हैं।"
- अंतिम निर्णय के लिए नहीं: क्योंकि वे जटिल लॉजिक परिवर्तनों (स्तर 4+) के साथ संघर्ष करते हैं, इसलिए एक मानव शिक्षक को हमेशा अंतिम निर्णय लेना चाहिए।
मुख्य बात: आपको अपने विशेष प्लेजरिज्म डिटेक्टर्स को फेंकने की आवश्यकता नहीं है। इसके बजाय, आप इन नए "क्वालिटी चेकर्स" को एक शक्तिशाली, पूरक उपकरण के रूप में उपयोग कर सकते हैं—विशेष रूप से यदि आप कोड को पहले साफ करते हैं—ताकि उन नकल करने वालों को पकड़ने में मदद मिल सके जो अपने पदचिह्नों को छिपाने की कोशिश करते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।