कुछ महीने पहले कुछ साफ-सुथरे चैटजीपीटी करतबों को कवर करने के बावजूद, मैंने कॉपिलॉट, जीथब के एआई कोडिंग सपोर्ट टूल को आजमाने के लिए अगला तार्किक कदम नहीं उठाया। हालांकि, मेरी दिलचस्पी पिछले हफ्ते जगी थी, क्योंकि मेरे एक सहकर्मी ने एआई-जेनरेट किए गए टेस्ट सूट का स्क्रीनशॉट साझा किया था।
संकेत यथोचित सरल था, और उत्पन्न परीक्षण के मामले प्रासंगिक थे; मुझे जीसी नि: शुल्क परीक्षण की सदस्यता लेने और विलक्षणता घटना के आगमन में योगदान करने के लिए पर्याप्त है।
मैं विस्तार से कवर करने से बचूंगा कि कोपिलॉट क्या कर सकता है या क्या नहीं कर सकता: दूसरों ने पहले ही मुझे एक लंबे शॉट से अनुमान लगा लिया था। मेरे लिए दिलचस्प हिस्सा यह है कि मैं इस नई तकनीक के साथ कैसे तालमेल बिठा सकता हूं।
इस पोस्ट में, मैं Github Copilot का उपयोग बेंचमार्क के रूप में यह अनुमान लगाने के लिए करूंगा कि "AI फॉर कोडिंग" आज क्या कर सकता है, क्योंकि मुझे लगता है कि यह क्षेत्र में अत्याधुनिक का प्रतिनिधित्व करता है।
सॉफ्टवेयर डोमेन में एआई के बारे में सोचते समय कई सहज प्रश्न मन में आते हैं।
क्या यह उपयोगी है? क्या यह खतरनाक है? क्या यह हमारी नौकरियां लेगा? सबसे महत्वपूर्ण बात यह है कि हम खुद को एक सीमित मानसिकता के साथ नहीं घेरते हैं और अपनी भावनाओं को एआई के आसपास कुछ अजीब आख्यान बनाने देते हैं - या तो नवपाषाणवादी या यूटोपियन तकनीकी-उत्साही के रूप में।
इसके बजाय, मुझे अन्य प्रकार के प्रश्न अधिक दिलचस्प और उत्तर देने में आसान लगते हैं: ये प्रश्न "हां" या "नहीं" उत्तर नहीं देते हैं, लेकिन आमतौर पर "क्या", "कब", और "कहां" से शुरू होते हैं।
उदाहरण के लिए, मैं कोपिलॉट को अपने दैनिक कार्य में कैसे एकीकृत कर सकता हूँ? यह किन कार्यों को सुगम बनाता है, और यह किन व्यक्तिगत कौशलों की माँग करता है?
हमारे काम में एआई का मूल्य ज्यादातर सॉफ्टवेयर इंजीनियरों के लिए स्पष्ट है। फिर भी, मैं समझता हूं कि जीवन के अन्य क्षेत्रों के लोग व्यापक रूप से गलत अनुमान लगा सकते हैं कि संभावनाएं क्या हैं, विशेष रूप से कई सामग्री निर्माता या पत्रकार भयावह परिदृश्यों का सुझाव देकर लोगों को आकर्षित करना पसंद करते हैं (या वादा करते हैं कि बिल्डिंग सॉफ्टवेयर अब किसी के लिए भी सुलभ है)।
हाँ, यह सच है कि GPT-3 पर आधारित उपकरण - और अभी हाल ही में GPT-4 - कोड लिख सकते हैं, और हाँ, उत्पन्न होने वाला कोड अक्सर संकलन करेगा और वह करेगा जो इससे अपेक्षित है।
हालांकि, यह अनिवार्य रूप से मेरी नौकरी की सुरक्षा के लिए तत्काल खतरे का प्रतिनिधित्व नहीं करता है, क्योंकि कोड लिखना वह नहीं है जो सॉफ्टवेयर इंजीनियर वास्तव में करते हैं। मुझे बेहतर विस्तार से बताएं।
हमारा काम टेक्स्ट एडिटर में कोड टाइप करना नहीं है। हम स्टेनोग्राफर नहीं हैं। काम यह तय करने के बारे में है कि क्या कोड करना है। वास्तव में, जब भी मैं सॉफ्टवेयर डिजाइन कर रहा होता हूं और अंत में मैं अपने आईडीई में कुछ टाइप करना शुरू करता हूं, तो मैं पहले से ही अपने दिमाग में रखता हूं कि कोड का अगला स्निपेट कैसा होगा।
इस बिंदु पर, एआई केवल डॉट्स को कनेक्ट कर रहा है, तुरंत विधि या डेटा संरचना का निर्माण कर रहा है, माइनस अनैच्छिक टाइपो या अन्य स्पष्ट गलतियाँ।
यहां तक कि अगर एआई कुछ कोड आधार के 80% से अधिक में योगदान दे सकता है, तो उचित संकेत देना (प्रारंभिक 20%) आवश्यक है , क्योंकि इसमें भारी जानकारी होती है जिसे जीसी को सही ढंग से संचालित करने की आवश्यकता होती है। और कीबोर्ड के पीछे किसी इंजीनियर के बिना आपको वह शुरुआती संकेत नहीं मिलेगा।
मेरा मानना है कि हवाई जहाज के ऑटोपायलट से अच्छी तुलना की जा सकती है। AFCS (ऑटो-फ्लाइट कंट्रोल सिस्टम) पूरी तरह से विभिन्न प्रकार के उड़ान संचालन कर सकता है: उड़ान पथ को समायोजित करना, हवाई अड्डे तक पहुंचना या यहां तक कि उतरना।
मैं अभी भी किसी मानवीय पर्यवेक्षण के बिना व्यावसायिक उड़ान पर कूदने का सपना नहीं देखूंगा।
तथ्य यह है कि कंप्यूटर विमान को नियंत्रित करने में सक्षम है इसका मतलब यह नहीं है कि पायलट उड़ान डेक पर बेकार बैठे हैं।
अभी भी बहुत कुछ करना बाकी है: आगे के मौसम की जाँच करना, हवाई यातायात नियंत्रण के साथ संचार करना, वैकल्पिक मार्गों की योजना बनाना, और, सबसे महत्वपूर्ण, ऑटोपायलट की निगरानी करना और ज़रूरत पड़ने पर बागडोर संभालना।
इसलिए, हम देख सकते हैं कि कैसे पायलट अभी भी विमान उड़ा रहे हैं।
इसी तरह, एआई सॉफ्टवेयर विकसित नहीं करता है, इंजीनियर करते हैं । एआई एक उपकरण है। इंजीनियरों को स्वचालन का उपयोग करके अपने कार्यप्रवाह को कारगर बनाने के लिए प्रशिक्षित किया जाता है, लेकिन वे हमेशा निगरानी रखेंगे कि उनका उपकरण क्या कर रहा है। यदि यह इरादा के अनुसार व्यवहार नहीं कर रहा है, तो इंजीनियर कूद पड़ेंगे और स्थिति का निवारण करेंगे।
यह वह मानसिकता है जो कोपिलॉट का उपयोग करते समय मेरे पास है: मैं ख़ुशी से इसे छोटे कार्यों के लिए सौंप दूंगा, लेकिन इस बीच, मैं इसके बारे में सतर्क रहूंगा कि यह क्या उत्पादन करेगा।
जैसा कि आप जानते हैं, कोपिलॉट के अंतर्निहित एमएल एल्गोरिदम को GPT-3 कहा जाता है और उत्पन्न होने वाले टोकन के सबसे संभावित अनुक्रम की भविष्यवाणी करता है। जबकि उत्पन्न कोड आमतौर पर वाक्य-विन्यास की दृष्टि से सही होता है, उपकरण को इस बात का कोई बोध नहीं होता है कि चश्मा क्या है और क्या निर्मित कोड मान्य है।
एक संभावित प्रत्युपाय कुछ त्वरित इंजीनियरिंग के साथ GC की मदद कर रहा है: उदाहरण के लिए, यह बताते हुए एक टिप्पणी लिखना कि अगला स्निपेट क्या करता है, AI की मदद करने के लिए एक शक्तिशाली तकनीक है।
इससे भी बेहतर, कभी-कभी पहले कुछ शब्दों में टाइप करने के बाद भी टिप्पणी स्वत: उत्पन्न हो सकती है।
हालाँकि, यह कहा जाना चाहिए कि, सबसे आदर्श परिस्थितियों में भी, Copilot हमेशा एक सहायक सुझाव या कोई सुझाव नहीं देता है, यदि ऐसा है। जबकि GC बहुत अद्भुत है, मेरा मानना है कि यह कोडिंग टूल के रूप में अभी भी अत्यधिक अपूर्ण है।
अभी के लिए, मैंने यह तय नहीं किया कि कोपिलॉट को अपने टूलसेट में पूरी तरह से शामिल करना है या नहीं: इसके सुझावों की हिट-या-मिस प्रकृति कभी-कभी बाधा बन सकती है।
किसी भी मामले में, मैं सभी को सुझाव दूंगा कि वे अपने पैर गीले कर लें, और कम से कम एक बार इसे आजमाएं: इसे अपने सिंटैक्स हाइलाइटर या अपने पसंदीदा आईडीई के स्वत: पूर्णता सुविधा जैसे उपयोगिता उपकरण के रूप में सोचें।
Github Copilot पर आपकी क्या राय है? क्या आपने इसे अपने दैनिक कार्य में शामिल किया या यह आपके लिए एक कठिन परीक्षा थी? शरमाओ मत, और मुझे टिप्पणियों में बताओ!