वाचनासाठी 4 मिनिटे

एआय कोड निर्मिती: संगणक साध्या भाषेतील सूचनेवरून प्रोग्रॅम कसा लिहितो?

प्रकाशित अद्ययावत

३० सेकंदांत अर्थ

कोड निर्मिती (Code Generation) म्हणजे मानवी भाषेतील वर्णनाचा आणि उपलब्ध कोडचा संदर्भ घेऊन कृत्रिम बुद्धिमत्तेद्वारे संगणकीय प्रोग्रॅमचा मजकूर तयार करण्याचे तंत्रज्ञान. लाखो सॉफ्टवेअर फाईल्समधील भाषिक व तांत्रिक संबंधांचा अभ्यास करून हे मॉडेल कोड सुचवते, ज्यामुळे विकासाचा वेग वाढतो पण मानवी चाचणीची गरज कायम राहते.

साध्या शब्दांमधून उलगडणारा प्रोग्रॅमिंग कोड

पूर्वी संगणकावर एखादे ॲप किंवा सॉफ्टवेअर बनवायचे असेल तर प्रोग्रॅमरला प्रत्येक बारीक आज्ञा हाताने टाईप करावी लागायची. भाषेचे व्याकरण नियम (सिंटॅक्स) चुकले किंवा एखादा स्वल्पविराम सुटला तरी संपूर्ण प्रोग्रॅम बंद पडायचा. आज मात्र परिस्थिती वेगाने बदलली आहे. प्रोग्रॅमर केवळ इंग्रजीत किंवा साध्या भाषेत “ग्राहकांच्या बिलांची बेरीज करा” अशी सूचना देतो आणि काही क्षणांत संगणकाची आज्ञावली (प्रोग्रामिंग कोड) स्क्रीनवर तयार होते. या सुविधेला स्वयंचलित कोड निर्मिती (कोड जनरेशन) असे म्हणतात.

GitHub Copilot किंवा Claude सारखी आधुनिक साधने एखाद्या डिजिटल सहाय्यकासारखे (एआय को-पायलट) काम करतात. ती प्रोग्रॅमरचा पुढचा विचार ओळखून कोडच्या ओळी आपोआप पूर्ण करतात. यामुळे दिवसाचे काम काही तासांत संपते. मात्र ही साधने माणसासारखा स्वतंत्र विचार करत नाहीत. ती केवळ इंटरनेटवरील लाखो ओपन-सोर्स प्रोग्रॅम्समधून शिकलेल्या संभाव्यतेच्या आधारे पुढचा शब्द कोणता असावा याचा अंदाज बांधतात.

आधुनिक भाषा मॉडेल्स आणि कोडची झाडासारखी रचना

पडद्यामागे भाषा शिकणारी आधुनिक संगणकीय प्रणाली (ट्रान्सफॉर्मर आर्किटेक्चर) काम करते. ही प्रणाली तुमच्या सूचनेचे विश्लेषण करून कोडच्या नियमांची झाडासारखी रचना (अबस्ट्रॅक्ट सिंटॅक्स ट्री किंवा एएसटी) समजून घेते. त्यानंतर संगणक कोडचे लहानात लहान मोजमाप तुकडे (टोकन्स) एकापुढे एक जोडून प्रोग्रॅम तयार करतो. प्रोग्रॅमिंगमध्ये वारंवार लागणारे साचेबंद प्रोग्रॅमिंग साचे (बॉयलरप्लेट कोड) तयार करण्यासाठी हे तंत्रज्ञान अत्यंत कुशल ठरते.

चालणारा कोड आणि सुरक्षित कोड यातील महत्त्वाचा फरक

सॉफ्टवेअरच्या जगात एक महत्त्वाची गोष्ट समजून घेणे आवश्यक असते: कोडमध्ये व्याकरणाची चूक नसणे म्हणजे तो योग्य काम करेलच असे नाही. संगणकाने दिलेला कोड सुरुवातीला चालताना दिसेल, पण प्रत्यक्ष वापरात गंभीर त्रुटी समोर येऊ शकतात. उदाहरणार्थ, जर एखाद्या ग्राहकाने घेतलेली वस्तू परत केली, तर विक्रीच्या बेरजेतून ती रक्कम वजा कशी करायची? जर वापरकर्त्याने चुकीचा आकडा, ऋण संख्या किंवा रिकामी जागा भरली, तर प्रोग्रॅम थांबणार की चुकीचे आकडे दाखवणार? साध्या वर्णनात हे नियम स्पष्ट नसल्यास एआय स्वतःहून त्यांचा विचार करू शकत नाही.

प्रॉम्प्टमधील सूक्ष्म फरक परिणामावर कसा प्रभाव पाडतो हे पाहणे रंजक ठरते. जर तुम्ही केवळ “विक्रीची बेरीज करा” अशी मोघम सूचना दिली, तर मॉडेल फक्त साधी बेरीज लिहून मोकळे होईल. याउलट, “दुकानदारासाठी विक्रीची बेरीज करा, परतावा वजा करा आणि जर आकडा शून्य असेल तर स्पष्ट संदेश दाखवा” असे स्पष्ट लिहिल्यास मॉडेल त्या अटी लक्षात घेऊन अधिक सुसंबद्ध रचना सुचवते. मात्र असा सुस्पष्ट प्रॉम्प्टही कोड निर्दोष असण्याची संपूर्ण खात्री देऊ शकत नाही; तो केवळ तपासायचे मुद्दे उघड करतो.

याशिवाय सुरक्षेचा धोका सर्वात मोठा असतो. भाषा मॉडेल्स जुन्या कोडवरून शिकत असल्याने अनेकदा जुनाट पद्धती किंवा डेटाबेसमध्ये फेरफार करून होणारा सायबर हल्ला (एसक्यूएल इंजेक्शन) सहज होऊ शकेल अशा सुरक्षेच्या उणिवा असलेला कोड सुचवतात. GitHub च्या अधिकृत मार्गदर्शनानुसार, एआयने सुचवलेला कोड हा नेहमी केवळ एक प्राथमिक मसुदा मानला पाहिजे. विकासकाने तो कोड बारकाईने वाचणे, त्याची प्रोग्रॅमच्या लहान तुकड्यांची स्वतंत्र चाचणी (युनिट टेस्ट्स) घेणे आणि सुरक्षिततेचे परीक्षण करणे अत्यंत आवश्यक आहे. OpenAI च्या संशोधन अहवालातही स्पष्ट केले आहे की कोड जनरेशन साधनांमुळे अनपेक्षित त्रुटी वाढू शकतात, त्यामुळे मानवी नियंत्रण अनिवार्य ठरते.

सॉफ्टवेअर विकासात हे साधन वापरताना घ्यायची काळजी

या तंत्रज्ञानाचा खरा फायदा वेगाने मसुदा मिळवण्यात आहे, पण अंतिम गुणवत्ता माणसाच्या हातातच राहते:

  • सूचनेत अपवादात्मक परिस्थिती स्पष्ट करा: केवळ बेरीज दाखवा म्हणण्याऐवजी, जर डेटा उपलब्ध नसेल किंवा परतावा झाला तर काय करायचे हेही सूचनेत नमूद करा.
  • वेगवेगळ्या परिस्थितींमध्ये प्रत्यक्ष चाचणी घ्या: कोड चालवून पाहताना सामान्य नोंदींसोबत चुकीच्या नोंदी, शून्य किंवा मोकळ्या जागा टाकून प्रोग्रॅम कसा वागतो ते तपासा.
  • गोपनीय डेटा आणि पासवर्ड सुरक्षित ठेवा: व्यावसायिक संकेतस्थळ बनवताना कोडमध्ये कधीही प्रत्यक्ष पासवर्ड किंवा डेटाबेसच्या चाव्या थेट लिहू नका.

कृत्रिम बुद्धिमत्ता मानवी बुद्धीला पर्याय ठरू शकत नाही, तर ती विचार करणाऱ्या हातांना वेग देणारे साधन आहे. प्रोग्रॅम काय काम करतो हे समजून घेऊन, प्रत्येक ओळीची मानवी डोळ्यांनी पडताळणी केल्यास हे तंत्रज्ञान अत्यंत सुरक्षित आणि उपयुक्त ठरते.

स्रोत
  1. Best practices for using GitHub CopilotGitHub
  2. A hazard analysis framework for code synthesis large language modelsOpenAI