Learning from 53.6K Real-World Developer Edits of AI-Generated Code
यह शोध पत्र DECODE को प्रस्तुत करता है, जो 1,000 से अधिक डेवलपर्स के AI-जनित कोड के 53,600 वास्तविक-विश्व इन-IDE संपादन (edits) का एक डेटासेट है, जो यह प्रकट करता है कि अधिकांश संशोधन स्वीकृति के 15 मिनट के भीतर होते हैं और यह प्रदर्शित करता है कि इस डेटा पर छोटे मॉडलों को फाइन-ट्यून करना कोड संपादन की भविष्यवाणी करने में फ्रंटियर LLMs की तुलना में काफी बेहतर प्रदर्शन करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक रोबोट को खाना बनाना सिखा रहे हैं। आप उसे एक रेसिपी बुक दिखाते हैं, और वह एक व्यंजन बनाने की कोशिश करता है। कभी-कभी, वह इसे बिल्कुल सही बनाता है। लेकिन अक्सर, वह इसमें बहुत अधिक नमक डाल देता है, लहसुन भूल जाता है, या व्हिस्क के बजाय चम्मच का उपयोग करता है। कंप्यूटर विज्ञान की दुनिया में, यह रोबोट एक "AI प्रोग्रामिंग असिस्टेंट" है, और व्यंजन कोड की लाइनें हैं। लंबे समय तक, वैज्ञानिकों ने इन रोबोटों को तैयार रेसिपी (जिन्हें "Git commits" कहा जाता है) दिखाकर सिखाने की कोशिश की—वे अंतिम, पूर्ण व्यंजन जो कुक बुक्स में शामिल किए गए। लेकिन यह केवल प्लेट पर रखे भोजन को देखकर खाना सीखने जैसा है, जिसमें रसोई की गंदगी, जले हुए टोस्ट और शेफ के घबराहट भरे सुधारों को अनदेखा कर दिया जाता है।
असली जादू (और असली गड़बड़ी) बीच में होती है। जब एक मानव शेफ सूप चखता है और कहता है, "नहीं, इसमें और काली मिर्च की जरूरत है," या "वास्तव में, इसे फेंक दो और फिर से शुरू करो," तो वह एक "कोड एडिट" है। अब तक, हमारे पास यह देखने का कोई अच्छा तरीका नहीं था कि शेफ ऐसा कैसे करता है। हम केवल अंतिम परिणाम देखते थे। यह शोध पत्र उस बिखरी हुई, सुंदर रसोई की गहराई में उतरता है। यह पूछता है: इंसान वास्तव में AI की गलतियों को कैसे ठीक करते हैं? क्या वे थोड़ा सा बदलाव करते हैं, या वे पूरी चीज़ को ही फेंक देते हैं? और क्या हम रोबोट को ये सुधार होने से पहले ही इनका अनुमान लगाना सिखा सकते हैं?
द ग्रेट कोड डिटेक्टिव: DECODE
इस अध्ययन के पीछे के शोधकर्ताओं ने महसूस किया कि AI को कोड लिखने में बेहतर बनाने के लिए, उन्हें तैयार उत्पाद को देखना बंद करना होगा और प्रक्रिया को देखना शुरू करना होगा। उन्होंने DECODE (डेवलपर एडिट्स ऑफ कोड डेटासेट) नामक एक विशाल नया डेटासेट बनाया। DECODE को 1,000 से अधिक वास्तविक डेवलपर्स के IDEs (डिजिटल वर्कस्पेस) में स्थापित एक विशाल, हाई-डेफिनिशन सुरक्षा कैमरा सिस्टम समझें। केवल अंतिम कोड को सेव करने के बजाय, इस सिस्टम ने डेवलपर द्वारा किए गए हर एक टैप, डिलीट और रीराइट को रिकॉर्ड किया, जो उन्होंने AI द्वारा कोड का सुझाव देने के बाद किया था।
उन्होंने इन वास्तविक दुनिया के एडिटिंग सत्रों के 53,600 संग्रह किए, जो मुख्य रूप से Python, TypeScript और JavaScript में थे। यह 53,600 कहानियों के पुस्तकालय जैसा है कि कैसे इंसान और रोबोट सॉफ्टवेयर बनाने के लिए बहस करते हैं, समझौता करते हैं और सहयोग करते हैं।
उन्होंने क्या पाया: 15-मिनट का नियम और "कचरे का डिब्बा"
जब टीम ने डेटा देखा, तो उन्हें AI के सुझावों के साथ इंसान कैसे व्यवहार करते हैं, इसके बारे में कुछ आश्चर्यजनक पैटर्न मिले।
सबसे पहले, उन्होंने एक सख्त 15-मिनट का नियम खोजा। अधिकांश संपादन बहुत जल्दी होते हैं। यदि कोई डेवलपर AI के कोड को बदलने वाला है, तो वे आमतौर पर सुझाव स्वीकार करने के पहले 15 मिनट के भीतर ऐसा करते हैं। उसके बाद, कोड को आमतौर पर अकेला छोड़ दिया जाता है।
दूसरा, उन्होंने पाया कि इंसान आश्चर्यजनक रूप से कठोर होते हैं। लगभग 31% मामलों में, डेवलपर ने केवल कोड में मामूली बदलाव नहीं किया; उन्होंने AI के पूरे सुझाव को हटा दिया और शून्य से शुरुआत की। यह ऐसा है जैसे AI ने आपको एक सैंडविच दिया, और आपने तुरंत उसे कचरे में फेंक दिया क्योंकि ब्रेड थोड़ी गलत थी। डेटा बताता है कि यदि AI का सुझाव तुरंत डेवलपर के इरादे के अनुसार सटीक नहीं बैठता है, तो उसे अक्सर त्याग दिया जाता है।
हालाँकि, जब इंसान कोड को रखते हैं, तो वे उसमें ज्यादा बदलाव नहीं करते हैं। डेटा दिखाता है कि जो कोड बच जाता है, उसके लिए डेवलपर्स आमतौर पर मूल AI सुझाव का लगभग 63% हिस्सा रखते हैं। वे अपने स्वयं के नए कोड को बहुत कम जोड़ते हैं (अंतिम कोड का केवल लगभग 20% ही मानव द्वारा जोड़ा गया नया हिस्सा है)। इसका मतलब है कि डेवलपर्स AI पर बहुत अधिक भरोसा करते हैं, लेकिन वे शुरुआती गुणवत्ता के प्रति बहुत चूजी (picky) होते हैं।
शोधकर्ताओं ने चीजों को ठीक करने के एक विशिष्ट क्रम पर भी ध्यान दिया। यह एक चेकलिस्ट की तरह है:
- "क्या यह उपयोगी भी है?" चेक: पहले, वे तय करते हैं कि क्या वे कोड को रखना चाहते हैं। यदि नहीं, तो वे इसे हटा देते हैं।
- "बग्स ठीक करें" चरण: इसके बाद, वे सिंटैक्स एरर या पठनीयता (readability) की समस्याओं को ठीक करते हैं।
- "इसे अपना बनाएं" चरण: फिर, वे वेरिएबल्स का नाम बदलते हैं या अपनी विशिष्ट आवश्यकताओं के अनुसार नंबर बदलते हैं।
- "योजना बदलें" चरण: अंत में, यदि वे अभी भी इस पर काम कर रहे हैं, तो वे उस कोड को बदल सकते हैं जो वास्तव में करता है।
रोबोट को मन पढ़ना सिखाना
पेपर का दूसरा बड़ा हिस्सा एक परीक्षण था: क्या हम एक छोटे, ओपन-सोर्स AI मॉडल को इन एडिट्स को बड़े, सुपर-स्मार्ट "फ्रंटियर" मॉडल्स की तुलना में बेहतर भविष्यवाणी करने के लिए सिखा सकते हैं?
आमतौर पर, सबसे बड़े, सबसे महंगे AI मॉडल्स को हर चीज में सर्वश्रेष्ठ माना जाता है। लेकिन यहाँ, शोधकर्ताओं ने एक छोटे मॉडल (जिसमें 3 बिलियन पैरामीटर्स हैं, जो दिग्गजों की तुलना में बहुत छोटा है) को विशेष रूप से DECODE डेटासेट पर प्रशिक्षित किया। उन्होंने इसे AI सुझाव को देखकर यह अनुमान लगाने के लिए सिखाया: "क्या मानव इसे हटा देगा? क्या वे इसमें बदलाव करेंगे? या वे इसे ऐसे ही छोड़ देंगे?"
परिणाम चौंकाने वाला था। छोटे मॉडल ने, वास्तविक दुनिया के एडिटिंग डेटा से सीखने के बाद, उन विशाल, अत्याधुनिक मॉडल्स की तुलना में एडिट्स की भविष्यवाणी करने में काफी बेहतर प्रदर्शन किया जिन्होंने कभी यह विशिष्ट डेटा नहीं देखा था।
- यह अनुमान लगाने के लिए कि अंतिम कोड कैसा दिखेगा, छोटे मॉडल की सटीकता में 0.17 का सुधार हुआ (जो इस क्षेत्र में एक बड़ी छलांग है)।
- यह अनुमान लगाने के लिए कि क्या कोड को बदला जाएगा या नहीं, इसमें भी 0.17 का सुधार हुआ।
यह सुझाव देता है कि केवल एक बड़ा दिमाग होने के बजाय सही "अनुभव" (वास्तविक दुनिया का एडिटिंग डेटा) होना अधिक महत्वपूर्ण है। यह एक युवा शेफ की तरह है जिसने हजारों कुकिंग शो देखे हैं (डेटा), जो शायद उस प्रसिद्ध शेफ से बेहतर जानता होगा जिसने केवल लैब में पूर्ण भोजन बनाया है।
निष्कर्ष: यह इंसान के बारे में है, न कि केवल कोड के बारे में
पेपर यह निष्कर्ष निकालता है कि हमें AI कोड जनरेशन को गणित की समस्या की तरह मानना बंद करना होगा जहाँ एकमात्र लक्ष्य "सटीकता" है। वास्तविक लक्ष्य "एलाइनमेंट" (alignment) है। कोड को मानव के इरादे के अनुरूप होना चाहिए, अन्यथा इंसान उसे बस फेंक देगा।
लेखक सुझाव देते हैं कि भविष्य के AI सहायकों को केवल पहली बार में एकदम सही कोड लिखने की कोशिश नहीं करनी चाहिए। इसके बजाय, उन्हें एडिटिंग की प्रक्रिया को समझने के लिए प्रशिक्षित किया जाना चाहिए। उन्हें यह सीखने की आवश्यकता है कि इंसान अक्सर चीजों को जल्दी हटा देते हैं, वे फीचर्स बदलने से पहले त्रुटियों को ठीक करते हैं, और वे उस कोड को रखने की अधिक संभावना रखते हैं जिसे आसानी से बदला जा सके।
DECODE जैसे डेटासेट्स का उपयोग करके, हम ऐसा AI बना सकते हैं जो केवल कोड नहीं लिखता, बल्कि ऐसा कोड लिखता है जिसे इंसान वास्तव में रखना चाहता है। यह "क्या यह कोड सही है?" से बदलकर "क्या यह कोड ऐसा है जिसे इंसान आसानी से अपना बना सकता है?" की ओर एक बदलाव है। और डेटा सुझाव देता है कि यदि हम अपने AI को उस 15-मिनट के एडिटिंग विंडो को समझने के लिए सिखाते हैं, तो हम अंततः एक ऐसा रोबोट प्राप्त कर सकते हैं जो हमारे लिए ऐसा भोजन पकाएगा जिसे हम खुशी से खा सकें।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।