Control Models for In-IDE Code Completion
यह शोध पत्र जेटब्रेंस (JetBrains) IDEs में इन्फरेंस (inference) को ट्रिगर करने और सुझावों को फ़िल्टर करने के माध्यम से LLM-संचालित कोड पूर्णता (code completion) को अनुकूलित करने के लिए नियंत्रण मॉडलों, विशेष रूप से ML क्लासिफायर, को प्रस्तुत और मूल्यांकित करता है, जो ऑफलाइन विश्लेषण और एक प्रोडक्शन A/B अध्ययन के माध्यम से बेहतर दक्षता और गुणवत्ता प्रदर्शित करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक शेफ (डेवलपर) हैं जो एक व्यस्त रसोई (IDE) में काम कर रहे हैं। आपके पास एक सुपर-इंटेलिजेंट sous-chef (AI) है जो सब्जियां काटते समय आपको लगातार रेसिपी के विचार और सामग्री के सुझाव देता रहता है।
कभी-कभी, sous-chef बहुत शानदार होता है और आपका समय बचाता है। लेकिन अक्सर, sous-chef थोड़ा ज़्यादा ही उत्साही होता है:
- वह तब डेज़र्ट (मिठाई) का सुझाव देता है जब आप सूप बना रहे होते हैं (गलत समय)।
- वह ऐसी सामग्री का सुझाव देता है जो आपके पास पहले से ही है (अनावश्यक)।
- वह कुछ ऐसा सुझाव देता है जिसका स्वाद बहुत खराब होता है (खराब कोड)।
यह लगातार चिल्लाना ध्यान भटकाता है। यह आपके "फ्लो" (प्रवाह) को तोड़ देता है, रसोई की ऊर्जा (कंप्यूटिंग पावर) को बर्बाद करता है, और आपको मदद मिलने के बजाय चिड़चिड़ा महसूस कराता है।
समस्या:
JetBrains की टीम (इस पेपर के लेखक) ने देखा कि उनका AI ऐसे सुझाव जेनरेट कर रहा था जिन्हें डेवलपर्स लगभग 70% बार अनदेखा या खारिज कर देते थे। वे ऐसे सुझावों पर बहुत सारा पैसा और ऊर्जा बर्बाद कर रहे थे जिन्हें कोई चाहता ही नहीं था।
समाधान: "कंट्रोल मॉडल्स" (स्मार्ट बाउंसर)
AI को रेसिपी के अंदाज़े लगाने में और अधिक स्मार्ट बनाने के बजाय, टीम ने इंटेलिजेंस की एक नई परत बनाई जिसे "कंट्रोल मॉडल्स" कहा जाता है। इसे AI और शेफ के बीच खड़ा एक स्मार्ट बाउंसर (द्वारपाल) समझें।
इस बाउंसर के दो काम हैं:
- द ट्रिगर (The "Wait" Signal - "रुको" संकेत): इससे पहले कि AI सुझाव बनाना शुरू भी करे, बाउंसर शेफ के मूड की जांच करता है। क्या शेफ तेज़ी से टाइप कर रहा है? क्या वह किसी वाक्य के बीच में है? यदि समय सही नहीं है, तो बाउंसर कहता है, "अभी AI को परेशान करने की ज़रूरत नहीं है।"
- द फ़िल्टर (The "Trash" Bin - "कचरे का डिब्बा"): यदि AI वास्तव में कोई सुझाव तैयार भी कर लेता है, तो बाउंसर उसे पहले चखता है। यदि वह अजीब लग रहा है या वर्तमान डिश के अनुकूल नहीं है, तो बाउमर उसे शेफ को दिखाने से पहले ही कचरे में फेंक देता है।
उन्होंने इसका परीक्षण कैसे किया
टीम ने वास्तविक डेटा का उपयोग करके प्रयोग किए जो हज़ारों डेवलपर्स द्वारा JetBrains सॉफ़्टवेयर (जैसे IntelliJ IDEA) का उपयोग करने से प्राप्त हुआ था। उन्होंने दो प्रकार के बाउंसरों का परीक्षण किया:
- द "बूस्टिंग" बाउंसर: एक तेज़, हल्का मॉडल जो सरल आंकड़ों (जैसे टाइपिंग की गति और कर्सर की स्थिति) को देखता है। यह एक ऐसे बाउंसर की तरह है जो बस आपकी आईडी पर एक नज़र डालता है और जल्दी से निर्णय ले लेता है।
- द "ट्रांसफॉर्मर" बाउंसर: एक भारी, जटिल मॉडल जो वास्तव में कोड को पढ़ता है और गहरे संदर्भ (context) को समझता है। यह एक ऐसे बाउंसर की तरह है जो अंदर आने देने से पहले पूरी रेसिपी बुक पढ़ लेता है।
परिणाम
- पैसा बचाना: "बूस्टिंग" बाउंसर का उपयोग करके, उन्होंने लगभग 20% अनावश्यक AI अनुरोधों को रोका। यह बहुत सारी कंप्यूटिंग पावर (इन्फरेंस लागत) बचाता है।
- बेहतर गुणवत्ता: क्योंकि खराब सुझावों को फ़िल्टर कर दिया गया था, इसलिए जो सुझाव डेवलपर्स तक पहुँचे, वे बहुत बेहतर थे। डेवलपर्स उन्हें अधिक स्वीकार करते हैं और कम खारिज करते हैं।
- ट्रेड-ऑफ़ (समझौता): दिलचस्प बात यह है कि हालांकि उन्होंने बहुत सारे बुरे विचारों को फ़िल्टर किया, लेकिन डेवलपर्स द्वारा टाइप किए गए शब्दों की कुल संख्या में बहुत कमी नहीं आई। ऐसा इसलिए है क्योंकि जब डेवलपर्स को खराब सुझावों से परेशान नहीं किया जाता, तो वे वास्तव में खुद अधिक कोड टाइप करते हैं, जिससे AI की मदद के लिए नए अवसर पैदा होते हैं।
कैच (हम फैंसी बाउंसर का उपयोग क्यों नहीं करते?)
"ट्रांसफॉर्मर" बाउंसर (जो कोड को पढ़ता है) वास्तव में बहुत अच्छा था, लेकिन यह बहुत धीमा था और इसे चलाने के लिए बहुत अधिक कंप्यूटिंग पावर की आवश्यकता थी। इसने गोपनीयता संबंधी चिंताएं भी पैदा कीं क्योंकि निर्णय लेने के लिए इसे वास्तविक कोड को पढ़ने की आवश्यकता थी। इसलिए, टीम ने फिलहाल के लिए तेज़ और हल्के "बूस्टिंग" बाउंसर के साथ बने रहने का निर्णय लिया।
बड़ी तस्वीर
पेपर यह निष्कर्ष निकालता है कि कोडिंग में AI को मददगार बनाने के लिए, हम केवल कोड लिखने में AI को स्मार्ट नहीं बना सकते। हमें स्मार्ट गेटकीपर्स (द्वारपाल) भी बनाने होंगे जो यह तय करें कि कोड को कब और कैसे दिखाया जाए। यह सुनिश्चित करता है कि AI डेवलपर के फ्लो में मदद करे न कि उसमें बाधा डाले।
संक्षेप में: उन्होंने एक स्मार्ट फ़िल्टर बनाया जो AI को डेवलपर्स को बुरे विचारों से परेशान करने से रोकता है, जिससे पैसा बचता है और कोडिंग का अनुभव अधिक सहज बनता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।