A Large-Scale Comprehensive Measurement of AI-Generated Code in Real-World Repositories A Large-Scale Comprehensive Measurement of AI-Generated Code in Real-World Repositories
यह शोध पत्र एक बड़े पैमाने का अनुभवजन्य अध्ययन प्रस्तुत करता है जो वास्तविक दुनिया के रिपॉजिटरीज़ में AI-जनित कोड की विशेषताओं और प्रभाव का विश्लेषण करने के लिए LLM वर्गीकरण के साथ एक नवीन ह्यूरिस्टिक फ़िल्टर का उपयोग करता है, जो मानव-लिखित कोड से प्रमुख अंतरों और विकास प्रथाओं पर इसके प्रभाव को प्रकट करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आपने एक उपन्यास लिखने में मदद करने के लिए एक सुपर-फास्ट, अविश्वसनीय रूप से जानकार रोबोट सहायक को काम पर रखा है। आप उससे एक अध्याय लिखने के लिए कहते हैं, और वह इसे कुछ ही सेकंड में कर देता है। लेकिन यहाँ बड़ा सवाल यह है: क्या रोबोट का लेखन वास्तव में अच्छा है? क्या यह कहानी के अनुकूल है? और क्या यह आपके, यानी मानव लेखक के काम करने के तरीके को बदलता है?
यह शोध पत्र बिल्कुल इसी परिदृश्य की एक विशाल, वैज्ञानिक जांच की तरह है, लेकिन एक उपन्यास के बजाय, यहाँ "कहानी" कंप्यूटर कोड है जो वास्तविक सॉफ़्टवेयर प्रोजेक्ट्स में उपयोग किया जाता है। शोधकर्ताओं ने केवल एक टेस्ट ट्यूब में रोबोट से कोड नहीं लिखवाया; उन्होंने GitHub पर वास्तविक सॉफ़्टवेयर में उपयोग किए जाने वाले कोड की लाखों लाइनों का अध्ययन किया।
यहाँ उनके निष्कर्षों का विवरण दिया गया है, जिसमें रोजमर्रा के उदाहरणों का उपयोग किया गया है:
1. जासूसी कार्य: रोबोट के पदचिह्नों को खोजना
सबसे पहले, शोधकर्ताओं के सामने एक कठिन काम था: कैसे पता करें कि कौन सा कोड इंसान ने लिखा है और कौन सा AI ने?
- समस्या: डेवलपर्स शायद ही कभी कहते हैं, "अरे, मैंने इसके लिए AI का उपयोग किया है।"
- समाधान: उन्होंने एक "डिजिटल डिटेक्टिव" सिस्टम बनाया। उन्होंने "generated by ChatGPT" जैसे कमेंट्स जैसे सुरागों की तलाश की, फिर एक दूसरे AI का उपयोग करके यह जांचा कि क्या वे सुराग असली थे या केवल गलत अलार्म थे।
- परिणाम: उन्होंने "AI-लिखित" कोड (लगभग 20,000 फाइलें) का दुनिया का सबसे बड़ा डेटासेट बनाया और इसकी तुलना उसी प्रोजेक्ट के "मानव-लिखित" कोड से की ताकि एक निष्पक्ष तुलना की जा सके।
2. लेखन शैली: "विस्तृत" रोबोट बनाम "संक्षिप्त" मानव
जब उन्होंने कोड की तुलना की, तो उन्हें इस बात में कुछ दिलचस्प अंतर मिले कि दोनों "लेखक" कैसे लिखते हैं।
- AI एक "ज्यादा समझाने वाला" (Over-Explainer) है:
- उदाहरण: कल्पना कीजिए कि एक मानव शेफ जानता है कि सैंडविच कैसे बनाना है और वह इसे 3 स्टेप्स में करता है। हालाँकि, AI शेफ हर एक स्टेप को विस्तार से समझाता है, हर सामग्री को दो बार सूचीबद्ध करता है और चाकू पकड़ने के निर्देश भी अतिरिक्त रूप से जोड़ देता है।
- निष्कर्ष: AI कोड अधिक वर्बोज़ (verbose) है। यह समान चीज़ कहने के लिए अधिक शब्दों (टोकन), अधिक लाइनों और अधिक संरचनात्मक "फालतू चीज़ों" का उपयोग करता है। यह अधिक कमेंट्स (व्याख्याएं) का उपयोग नहीं करता; यह बस काम करने के लिए अधिक वास्तविक कोड लिखता है।
- मानव "शॉर्टकट का उस्ताद" है:
- मनुष्य जटिल विचारों को संक्षिप्त, कुशल पैकेजों में संकुचित करने की प्रवृत्ति रखते हैं। वे पुराने उपकरणों (कोड डुप्लीकेशन) का अधिक बार पुन: उपयोग करते हैं क्योंकि वे जानते हैं कि "साझा टूलबॉक्स" कहाँ है।
- निष्कर्ष: मनुष्य अधिक संक्षिप्त कोड लिखते हैं और मौजूदा हिस्सों का अधिक प्रभावी ढंग से पुन: उपयोग करते हैं। AI एक ही कार्य के लिए हर बार एक "नया टूल" बनाने की कोशिश करता है, भले ही पास में ही वैसा ही कोई उपकरण मौजूद हो।
3. संरचना: "लेयर्ड केक" बनाम "टाइट बंडल"
- AI "लेयर्ड केक" बनाता है:
- उदाहरण: यदि एक इंसान घर बनाता है, तो वह रसोई और डाइनिंग रूम को एक-दूसरे के बगल में रख सकता है क्योंकि यह तर्कसंगत है। हालाँकि, AI एक रसोई बना सकता है, फिर एक गलियारा, फिर एक डाइनिंग रूम, फिर एक और गलियारा, सिर्फ एक से दूसरे तक पहुँचने के लिए।
- निष्कर्ष: AI कोड अधिक लेयर्ड और नेस्टेड (nested) होता है। यह गहरे "लूप्स" और "if-then" स्ट्रक्चर बनाता है। यह जरूरी नहीं कि गलत हो, लेकिन यह कम कुशल है और इसे समझना कठिन है क्योंकि यह कई परतों में फैला हुआ है।
- मानव "टाइट बंडल" बनाते हैं:
- मानव कोड अक्सर अधिक परस्पर जुड़ा हुआ और सघन होता है। यह अधिक "ऑर्गेनिक" महसूस होता है और किसी कठोर, चरण-दर-चरण निर्देश पुस्तिका जैसा नहीं लगता।
4. सुरक्षा: अलग प्रकार के "लीक्स" (Leaks)
- निष्कर्ष: AI कोड अनिवार्य रूप से "क्रिटिकल" बग्स (जैसे घर का ढह जाना) से भरा नहीं है, लेकिन इसमें मध्यम-जोखिम वाली समस्याएं अधिक होती हैं।
- उदाहरण:
- इंसान अधिक संभावना है कि एक "पासवर्ड" को स्टिकी नोट पर लिखकर छोड़ दें (एक सामान्य, पुराना mistake)।
- AI अनजाने में एक "मास्टर की" या "API टोकन" (पूरे सिस्टम की डिजिटल चाबी) आसपास छोड़ सकता है।
- क्यों? AI को इंटरनेट पर प्रशिक्षित किया गया है, जहाँ वह ऐसे कोड देखता है जिनमें ये विशिष्ट प्रकार की चाबियाँ होती हैं, और वह कभी-कभी गलती से उन्हें कॉपी कर लेता है।
5. वर्कफ़्लो: "त्वरित सुधार" बनाम "लॉन्ग टेल"
यह इस बारे में सबसे आश्चर्यजनक हिस्सा है कि AI काम करने की प्रक्रिया को कैसे बदलता है।
- "माइक्रो-कमिट" (Micro-Commit):
- उदाहरण: जब एक इंसान काम करता है, तो वह एक बार में घर के पूरे कमरे को संभाल सकता है। जब AI का उपयोग किया जाता है, तो डेवलपर्स छोटे, विशिष्ट सुधारों के लिए पूछते हैं। "इस एक बटन को ठीक करो," "इस एक रंग को बदलो।"
- निष्कर्ष: AI-सहायता प्राप्त कमिट्स छोटे और अधिक स्थानीयकृत (localized) होते हैं। डेवलपर्स त्वरित, सूक्ष्म कार्यों के लिए AI का उपयोग करते हैं।
- "विलंबित सफाई" (Delayed Cleanup):
- उदाहरण: रोबोट एक त्वरित दीवार बनाता है, लेकिन वह थोड़ी टेढ़ी है। इंसान इसे तुरंत नोटिस नहीं करता। लेकिन एक हफ्ते बाद, दीवार डगमगाने लगती है, और अब तीन अलग-अलग लोगों को इसे ठीक करने के लिए वापस आना पड़ता है।
- निष्कर्ष: AI-जेनरेटेड कोड के तुरंत बाद बदले जाने की संभावना कम होती है, लेकिन बाद में इसे दोबारा देखे जाने, ठीक किए जाने या अन्य लोगों द्वारा छुए जाने की संभावना बहुत अधिक होती है। इसे "स्थिर" होने में अधिक समय लगता है।
- लागत: काम खत्म नहीं हुआ है; यह बस स्थानांतरित (shifted) हो गया है। कोड लिखने में समय बिताने के बजाय, डेवलपर्स बाद में AI के "रफ ड्राफ्ट" की समीक्षा करने, उसे परिष्कृत करने और ठीक करने में अधिक समय बिताते हैं।
मुख्य निष्कर्ष
यह शोध पत्र निष्कर्ष निकालता है कि AI केवल एक "जादुई बटन" नहीं है जो परफेक्ट कोड लिखता है और हमारा समय बचाता है।
- यह एक "ड्राफ्ट जनरेटर" है: AI काम शुरू करने और जल्दी से पहला ड्राफ्ट लिखने में बहुत अच्छा है।
- यह एक "संरचनात्मक बदलाव" है: यह कोड को अधिक स्पष्ट और लेयर्ड बनाता है, जिससे बाद में इसका रखरखाव करना कठिन हो सकता है।
- मानव की भूमिका बदल रही है: डेवलपर का काम "हर लाइन लिखने" से बदलकर "एडिटिंग और रिफाइनिंग" का हो गया है। हम केवल लेखक के बजाय "एडिटर्स-इन-चीफ" बनते जा रहे हैं।
संक्षेप में: AI आपको तेज़ी से लिखने में मदद करता है, लेकिन यह कोड को "मेसी" (messy) बना सकता है और बाद में अधिक सफाई की आवश्यकता हो सकती है। वास्तविक मूल्य केवल लिखने की गति में नहीं है, बल्कि इस बात में है कि इंसान AI के आउटपुट को कितनी अच्छी तरह प्रबंधित और परिष्कृत कर सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।