आज हम एक अत्याधुनिक सफलता की घोषणा कर रहे हैं जो AI कोड जनरेशन की सीमाओं को आगे बढ़ा रही है। NinjaTech AI में हमारी विज्ञान टीम ने “मल्टी-प्रोग्रामिंग लैंग्वेज एन्सेम्बल” (MPLE) नामक कोड जनरेशन के लिए एक नया दृष्टिकोण विकसित किया है।
लामा 3.1 405B इंस्ट्रक्ट के साथ इस दृष्टिकोण का उपयोग करते हुए हम HumanEval बेंचमार्क द्वारा मापे गए OpenAI के GPT-4o और एंथ्रोपिक के सॉनेट 3.5 की तुलना में सांख्यिकीय रूप से बेहतर प्रदर्शन दिखाने में सक्षम थे। आप इन परिणामों को, हमारे दृष्टिकोण के विवरण के साथ, हमारे द्वारा प्रकाशित तकनीकी पेपर में पा सकते हैं arxiv.org।
इस ब्लॉग पोस्ट में, हम मल्टी-प्रोग्रामिंग लैंग्वेज एन्सेम्बल (MPLE) से संबंधित तीन महत्वपूर्ण निष्कर्षों पर ध्यान देंगे, जिसमें सभी AI सहायकों में कोड जनरेशन क्षमताओं को महत्वपूर्ण रूप से बढ़ाने की क्षमता है:
- कोड जनरेशन के लिए एक एजेंटिक वर्कफ़्लो (MPLE) दृष्टिकोण, लागत प्रभावी तरीके से 2-9% बेहतर सटीकता उत्पन्न करता है।
- मौजूदा एलएलएम मॉडल पर लागू रिफ्लेक्शन और मोंटे कार्लो ट्री सर्च (एमसीटीएस) जैसी उन्नत अनुमान तकनीकों के साथ MPLE को एकीकृत करने से अतिरिक्त प्रदर्शन लाभ मिलता है।
- हमारे सुखद आश्चर्य के लिए, हमने देखा कि llama3.1-405b-instruct द्वारा संचालित MPLE+MCTS तकनीकें कितनी सटीकता तक पहुँच गई हैं HumanEval बेंचमार्क में 96.25%।
कोड जनरेशन की चुनौती
कोड लिखना चुनौतीपूर्ण हो सकता है क्योंकि इसके लिए प्रोग्रामिंग भाषाओं की गहरी समझ और जटिल विचारों को निष्पादन योग्य कोड में अनुवाद करने की क्षमता की आवश्यकता होती है। इसके अतिरिक्त, डेवलपर्स को डिबगिंग, ऑप्टिमाइज़ेशन और संगतता जैसे मुद्दों से भी जूझना चाहिए - जो कोडिंग प्रक्रिया को और भी जटिल और समय लेने वाली बना सकते हैं।
यह वह जगह है जहाँ AI मदद करता है; बड़े भाषा मॉडल (LLM) उपयोगकर्ता द्वारा संकेत दिए जाने पर जल्दी से बड़ी मात्रा में कोड उत्पन्न कर सकते हैं। जब से हमने लॉन्च किया है MyNinja.ai मई, 2024 के अंत में, इसने लगभग 173K डेवलपर्स से 734K से अधिक कोडर कार्यों को संसाधित किया है।
लेकिन AI कोड जनरेशन कोड लिखने की सभी चुनौतियों को खत्म नहीं करता है। एलएलएम 100% विश्वसनीय नहीं हैं - कोड जेनरेट करते समय वे त्रुटियां कर सकते हैं।
एलएलएम द्वारा त्रुटियां करने का कारण यह है कि एआई कोड जनरेशन के पारंपरिक दृष्टिकोण एकल प्रोग्रामिंग भाषा पर निर्भर करते हैं, जिससे भाषा-विशिष्ट त्रुटियां और पूर्वाग्रह हो सकते हैं। उदाहरण के लिए, एक एलएलएम पायथन कोड जनरेशन में अच्छा प्रदर्शन कर सकता है क्योंकि इसे पायथन में प्रशिक्षित किया गया था। लेकिन जब C ++ या Java कोड बनाने के लिए कहा जाता है, तो यह त्रुटि प्रबंधन या लाइब्रेरी उपयोग में अंतर के कारण सटीक परिणाम नहीं बना सकता है। एक अन्य कारण यह है कि एक एलएलएम सटीक कोड जनरेट करने के साथ संघर्ष कर सकता है, वह है मानव पठनीय पाठ (यानी उपयोगकर्ता का संकेत) को कोड में अनुवाद करने में कठिनाई।
इस समस्या का एक समाधान अधिक मॉडल प्रशिक्षण में निवेश करना है। कंपनियां पहली कोशिश में कोडिंग सवालों के जवाब देने के लिए एलएलएम को प्रशिक्षित करने में अधिक समय - और अधिक से अधिक पैसा खर्च कर सकती हैं। इसे ज़ीरो-शॉट लर्निंग कहा जाता है, जिसका अर्थ है कि मॉडल बिना किसी उदाहरण के, केवल एक संकेत दिए जाने पर सही उत्तर देता है, और यह केवल अपने पूर्व ज्ञान के आधार पर उचित प्रतिक्रिया उत्पन्न करता है। हालांकि, मॉडल की सटीकता को बेहतर बनाने के लिए जीरो शॉट दृष्टिकोण के लिए समय और धन ($10M-$100M+) के भारी निवेश की आवश्यकता होती है।
लेकिन पिछले 2 वर्षों में अनुमान लागत में 100X से अधिक की गिरावट आई है और वे ऐसा करना जारी रखते हैं, जिससे एक नया तरीका सामने आता है: कोडजेन के लिए एजेंटिक वर्कफ़्लोज़।
हमारा समाधान: मल्टी-प्रोग्रामिंग लैंग्वेज एन्सेम्बल (MPLE)
हमारी टीम ने AI कोड जनरेशन के लिए एक नया दृष्टिकोण प्रस्तावित किया है जिसे मल्टी-प्रोग्रामिंग लैंग्वेज एन्सेम्बल (MPLE) कहा जाता है। यह दृष्टिकोण मल्टी-शॉट दृष्टिकोण का उपयोग करके अधिक सटीक और मजबूत कोड बनाने के लिए कई प्रोग्रामिंग भाषाओं की ताकत का लाभ उठाता है।
पहली कोशिश (सिंगल शॉट) पर सही उत्तर बनाने के लिए मॉडल पर भरोसा करने के बजाय हम सही प्रतिक्रिया उत्पन्न करने के लिए कई बार एलएलएम के साथ इंटरफेस करते हैं। हर बार जब हम मॉडल के साथ इंटरफेस करते हैं तो हम उसे एक अलग प्रोग्रामिंग भाषा का उपयोग करके उपयोगकर्ता की समस्या को हल करने के लिए कहते हैं। इससे हम एलएलएम की प्राकृतिक ताकत का लाभ उठा सकते हैं - एक प्रोग्रामिंग भाषा से दूसरी प्रोग्रामिंग भाषा में कोड का अनुवाद करने की क्षमता।
MPLE को विशेषज्ञों की एक टीम के रूप में सोचें, जिनमें से प्रत्येक एक अलग प्रोग्रामिंग भाषा में पारंगत है, पहली कोशिश में सबसे सटीक कोड बनाने के लिए मिलकर काम कर रहा है। प्रत्येक विशेषज्ञ (या प्रोग्रामिंग भाषा) अपनी अनूठी खूबियों को सामने लाता है, और अपनी खूबियों को मिलाकर, वे अधिक सटीक और विश्वसनीय समाधान तैयार कर सकते हैं। MPLE इन सभी विशेषज्ञों से अपनी “विशेषज्ञता” का योगदान करने के लिए कहता है, जबकि हमारा सिस्टम सही उपयोगकर्ता-अनुरोधित कोड बनाता है।
यहां बताया गया है कि MPLE कैसे काम करता है:
- आरंभिक कोड जनरेशन: जब कोई उपयोगकर्ता कोड से संबंधित प्रश्न के साथ हमारे सिस्टम को संकेत देता है, तो हमारा AI मॉडल उपयोगकर्ता द्वारा अनुरोधित प्रोग्रामिंग भाषा में प्रारंभिक प्रतिक्रिया उत्पन्न करता है।
- बहु-भाषा नमूनाकरण और अनुवाद: उपयोगकर्ता को प्रतिक्रिया वापस करने से पहले, कोड की गुणवत्ता और सटीकता का बीमा करने के लिए परीक्षण किया जाता है। यदि कोड सभी परीक्षणों को पास करने में विफल रहता है, तो हमारा मॉडल एक अलग प्रोग्रामिंग भाषा में नया कोड जनरेट करता है। फिर नए कोड को यूज़र रिक्वेस्ट प्रोग्रामिंग भाषा में वापस ट्रांसलेट किया जाता है। यह वैकल्पिक संस्करण मूल संस्करण से अलग है क्योंकि यह वैकल्पिक भाषा की खूबियों का लाभ उठाता है, संभावित रूप से उन त्रुटियों को समाप्त करता है जिनके कारण परीक्षण विफल हो गया था।
- इटरेटिव रिफाइनमेंट: परिशोधित कोड संस्करण का परीक्षण मामलों के विरुद्ध फिर से परीक्षण किया जाता है। यदि यह सभी परीक्षणों को पास करने में विफल रहता है, तो यह प्रक्रिया अलग-अलग कोडिंग भाषाओं के माध्यम से पुनरावृत्त होकर तब तक जारी रहती है जब तक कि कोई संस्करण सफलतापूर्वक सभी परीक्षणों को पास नहीं कर लेता। जब प्रक्रिया पूरी हो जाती है, तो उपयोगकर्ता को एक प्रतिक्रिया (यानी कोड का अंतिम संस्करण) वापस किया जाता है।
- एन्सेम्बल इंटीग्रेशन: पुनरावृत्तियों के दौरान, एन्सेम्बल फ्रेमवर्क कार्यक्रम को उत्तरोत्तर परिशोधित करने के लिए कई भाषाओं की ताकत को एकीकृत करता है। प्रत्येक भाषा-विशिष्ट कोड जनरेशन को एक व्यक्तिगत “कमज़ोर विशेषज्ञ” मानकर, फ़्रेमवर्क भाषा-विशिष्ट त्रुटियों और पूर्वाग्रहों को कम करने के लिए उनके आउटपुट को जोड़ता है।

यह ध्यान रखना महत्वपूर्ण है कि यह दृष्टिकोण एक नया मॉडल नहीं है, न ही इसके लिए किसी मॉडल को फिर से प्रशिक्षित करने की आवश्यकता है। यह एक ऐसा सिस्टम है जो मल्टी-शॉट दृष्टिकोण का उपयोग करके सर्वोत्तम संभव उत्तर बनाने के लिए आपके मौजूदा एलएलएम के साथ कई इंटरैक्शन को ऑर्केस्ट्रेट करता है। हमारा मानना है कि, जैसे-जैसे अनुमान लागत में कमी आती जाएगी, एआई-संचालित परिणामों का भविष्य - जो आर्थिक रूप से व्यवहार्य हैं - का नेतृत्व एजेंटिक वर्कफ़्लोज़ द्वारा किया जाएगा, जो अनुमान लगाने वाली भारी तकनीकों का लाभ उठाते हैं - जहां जटिल सवालों के जवाब देने के लिए बहुत सारे टोकन जेनरेट किए जाते हैं।
परीक्षण के माध्यम से MPLE को मान्य करना
हमने दो व्यापक रूप से मान्यता प्राप्त कोड जनरेशन बेंचमार्क पर MPLE फ्रेमवर्क का परीक्षण किया: ह्यूमन इवल और मानव ईवीएएल-प्लस। ये बेंचमार्क उपयोगकर्ता प्रॉम्प्ट के आधार पर कार्यात्मक कोड जेनरेट करने के लिए एलएलएम की क्षमता को मापते हैं।
HumanEval को टेक्स्ट-टू-कोड जनरेशन कार्यों के लिए डिज़ाइन किया गया है जहां इनपुट एक उपयोगकर्ता प्रॉम्प्ट है जो प्रोग्राम की इच्छित कार्यक्षमता का वर्णन करता है। इसके बाद एलएलएम आउटपुट का मूल्यांकन निर्दिष्ट आवश्यकताओं के साथ यूनिट टेस्ट पास करने की क्षमता के आधार पर किया जाता है। HumanEval-plus कोड की मजबूती और शुद्धता का कड़ाई से मूल्यांकन करने के लिए बड़ी संख्या में अतिरिक्त परीक्षण मामलों को शामिल करके HumanEval का विस्तार करता है।
हमने Pass @1 का उपयोग करके MPLE की प्रभावशीलता को मापा। कोड मूल्यांकन की यह विधि उन कार्यों के प्रतिशत को मापती है जो पहले प्रयास में जेनरेट किए गए कोड द्वारा सफलतापूर्वक पूरे किए जाते हैं।
हमने अपने मालिकाना LLM और GPT-4o, Claude-Sonnet-3.5, और LLAMa3.1-405b जैसे अन्य प्रसिद्ध मॉडल दोनों का उपयोग करके प्रयोग किए।
हमारे परीक्षण से पता चला है कि प्रस्तावित MPLE फ्रेमवर्क बेसलाइन की तुलना में सभी परीक्षण किए गए LLM में Pass @1 सटीकता में लगातार सुधार करता है। उदाहरण के लिए, GPT3.5-टर्बो की सटीकता बेसलाइन में 65.83% से बढ़कर MPLE के साथ 74.17% हो गई, भाषा-विशिष्ट पूर्वाग्रहों और त्रुटियों को कम करने के लिए कई प्रोग्रामिंग भाषाओं का लाभ उठाने की प्रभावशीलता पर प्रकाश डालना (तालिका 1 देखें)।

MPLE को रिफ्लेक्शन और मोंटे कार्लो के साथ एकीकृत करने से बेहतर परिणाम मिलते हैं
हमने MPLE को और आगे बढ़ाया और एक ऐसी प्रणाली तैयार की जो MPLE को परावर्तन और MCTS जैसी उन्नत अनुमान तकनीकों के साथ एकीकृत करती है। इन तकनीकों का उपयोग एलएलएम की समस्या-समाधान और तर्क क्षमताओं को बढ़ाने के लिए किया जाता है, खासकर जब उन कार्यों की बात आती है जिनके लिए रणनीतिक या बहु-चरणीय निर्णय लेने की आवश्यकता होती है। हमारी परिकल्पना यह थी कि इन प्रणालियों के संयोजन से अकेले MPLE का उपयोग करने की तुलना में और भी अधिक परिणाम मिलेंगे। परीक्षणों की एक श्रृंखला के माध्यम से हम इस परिकल्पना को सच साबित करने में सफल रहे।
हमने HumanEval-plus बेंचमार्क का उपयोग करके MPLE का परीक्षण भी किया और परिणाम हमारे बहु-भाषा समूह दृष्टिकोण के लाभों को और अधिक प्रमाणित करते हैं। विशेष रूप से, llama3.1-8binstruct का प्रदर्शन बेसलाइन में 60.00% से बढ़कर Mple+रिफ्लेक्शन के साथ 71.88% हो गया (तालिका 2 देखें)।

इसके अतिरिक्त, MPLE+रिफ्लेक्शन और MPLE+MCTS प्रतिस्पर्धी परिणाम देते हैं, जिसमें कई मॉडल (GPT-4Omini, GPT-4o, Claude-Sonnet-3.5, और llama3.1-405b-instruct) 87.50% प्राप्त करते हैं (तालिका 3 देखें)।

हमारे परिणाम स्पष्ट रूप से प्रदर्शित करते हैं कि MPLE फ्रेमवर्क, खासकर जब अतिरिक्त अनुमान एल्गोरिदम के साथ संयोजन में उपयोग किया जाता है, तो कई एलएलएम में कोड जनरेशन को बढ़ाने के लिए एक शक्तिशाली और लचीला दृष्टिकोण प्रदान करता है। MPLE के लगातार प्रदर्शन में सुधार AI-संचालित सॉफ़्टवेयर विकास में व्यावहारिक अनुप्रयोगों के लिए इसकी क्षमता को रेखांकित करता है।
लामा 3.1-405b ने MPLE और MCTS के साथ अत्याधुनिक परिणाम प्राप्त किए: 96.25% सटीकता!
हमारे विश्लेषण के दौरान हम MPLE के प्रदर्शन से विशेष रूप से प्रभावित थे जब MPLE+MCTS के संयोजन पर लागू किया गया था, ने कई मॉडलों के लिए उच्चतम सटीकता हासिल की, जैसे कि llama3.1-405b-instruct, जो 96.25% की SOTA पास @1 सटीकता तक पहुंच गया (तालिका 4 देखें)।

द रोड अहेड
चूंकि हम MPLE के साथ जो संभव है उसकी सीमाओं को आगे बढ़ाना जारी रखते हैं, हम अनुसंधान और विकास के नए क्षेत्रों का पता लगाने के लिए उत्साहित हैं। फोकस के संभावित क्षेत्रों में शामिल हैं:
- अधिक मजबूत मूल्यांकन मेट्रिक्स विकसित करना: MPLE के प्रदर्शन को सटीक रूप से मापने के लिए प्रभावी मूल्यांकन मेट्रिक्स बनाना महत्वपूर्ण है। अधिक व्यापक मैट्रिक्स पर ध्यान केंद्रित करके, हम विभिन्न डोमेन में फ्रेमवर्क की सटीकता, विश्वसनीयता और व्यावहारिक प्रयोज्यता सुनिश्चित कर सकते हैं।
- वास्तविक दुनिया की समस्याओं के लिए MPLE को लागू करना: MPLE में वास्तविक दुनिया की जटिल चुनौतियों का समाधान करने की क्षमता है, जैसे कि व्यावसायिक प्रक्रियाओं को स्वचालित करना, सॉफ़्टवेयर विकास पाइपलाइनों को अनुकूलित करना और साइबर सुरक्षा उपायों में सुधार करना। डेटासेट और वास्तविक दुनिया के अनुप्रयोगों की एक विस्तृत श्रृंखला में MPLE का मूल्यांकन करना इसकी सामान्यता और प्रभाव का आकलन करने में महत्वपूर्ण होगा।
- कोडिंग कार्यों के लिए NinJallM को बढ़ाना: हमारा NinJallM 3.0 (llama3.1-405b का एक ठीक-ठाक और मात्रात्मक संस्करण), यहां उपलब्ध है MyNinja.ai ने HumanEval (93.85%) और HumanEval-plus (86.67%) पर आशाजनक स्कोर हासिल किए हैं, और हम इसके प्रदर्शन को और बेहतर बनाने की राह पर हैं। हम एक महीने में MPLE आधारित निंजा कोडर लॉन्च करेंगे।
हम MPLE पर अपने शोध को दुनिया के साथ साझा करने के लिए उत्साहित हैं। हमारा मानना है कि इस दृष्टिकोण में एलएलएम कोड जनरेशन पर महत्वपूर्ण प्रभाव डालने की क्षमता है। MPLE भाषा-विशिष्ट त्रुटियों और पूर्वाग्रहों को कम करता है, जिसके परिणामस्वरूप अधिक सटीक और मजबूत कोड जनरेशन होता है - जिसका अर्थ है कि डेवलपर्स के लिए बड़ी समस्याओं से निपटने के लिए अधिक समय लगता है। हम इस क्षेत्र में अपने शोध और विकास को जारी रखने के लिए प्रतिबद्ध हैं, और हम भविष्य में MPLE के नवीन अनुप्रयोगों को देखने के लिए उत्सुक हैं।
पुनश्च भविष्य बहुत कम बग्गी है :-)
P.P.S. हमने इस ब्लॉग पोस्ट के निर्माण में सहायता के लिए MyNinja.ai का उपयोग किया।



