Conventional Commit Classification using Large Language Models and Prompt Engineering
यह शोध पत्र प्रदर्शित करता है कि प्रशिक्षण-मुक्त लार्ज लैंग्वेज मॉडल्स, विशेष रूप से फ्यू-शॉट प्रॉम्प्टिंग का उपयोग करते हुए DeepSeek-R1-32B, कोड डिफ्स (code diffs) से पारंपरिक कमिट्स को प्रभावी ढंग से वर्गीकृत कर सकते हैं, जो पारंपरिक सुपरवाइज्ड मशीन लर्निंग दृष्टिकोणों के लिए एक व्यावहारिक विकल्प प्रदान करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने नहीं लिखा है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक विशाल, अराजक पुस्तकालय के प्रबंधक हैं जहाँ हर दिन हजारों किताबें जोड़ी जा रही हैं। चीजों को व्यवस्थित रखने के लिए, पुस्तकालय का एक सख्त नियम है: प्रत्येक नई पुस्तक की रीढ़ (spine) पर एक विशिष्ट लेबल होना चाहिए (जैसे "New Feature," "Bug Fix," या "Documentation") ताकि रोबोट स्वचालित रूप से उन्हें छाँट सकें, कैटलॉग अपडेट कर सकें और आगंतुकों को बता सकें कि नया क्या है।
हालाँकि, वास्तव में, किताबें जोड़ने वाले लोग अक्सर नियमों की अनदेखी करते हैं। वे "fixed the thing" या "changed some code" जैसे बिखरे हुए नोट्स लिख देते हैं, जिससे यह समझना असंभव हो जाता है कि रोबized को किस श्रेणी में रखना है।
यह शोध पत्र एक सुपर-स्मार्ट रोबोट (AI) को उन बिखरे हुए नोट्स को पढ़ने और सही लेबल का पता लगाने के लिए सिखाने के बारे में है, बिना इसके कि उसे पहले हजारों उदाहरणों का अध्ययन करने में वर्षों बिताने पड़ें।
समस्या: बिखरे हुए नोट्स बनाम सख्त नियम
सॉफ्टवेयर विकास में, प्रोग्रामर हर बार अपने कोड में बदलाव सहेजते समय "कमिट मैसेज" (नोट्स) लिखते हैं। उद्योग में एक मानक प्रारूप है जिसे कन्वेंशनल कमिट्स (Conventional Commits) कहा जाता है जो एक सख्त फाइलिंग सिस्टम की तरह काम करता है। यह आवश्यक बनाता है कि नोट्स एक विशिष्ट टैग (जैसे feat:, fix:) के साथ शुरू हों।
लेकिन इंसान अव्यवस्थित होते हैं। वे अक्सर टैग लगाना भूल जाते हैं। पारंपरिक रूप से, इसे ठीक करने के लिए, शोधकर्ता एक कस्टम रोबोट बनाते थे जिसे हजारों लेबल किए गए उदाहरण खिलाए जाते थे (जैसे एक छात्र जो पाठ्यपुस्तक को रटता है)। इसमें बहुत समय और डेटा लगता है।
नया दृष्टिकोण: "प्रॉम्प्ट" रणनीति
एक नया रोबोट शुरू से प्रशिक्षित करने के बजाय, लेखकों ने पूछा: क्या हम पहले से मौजूद एक बहुत ही स्मार्ट AI को कुछ निर्देश (एक "प्रॉम्प्ट") देकर काम करवा सकते हैं?
उन्होंने AI के साथ एक बहुत ही बुद्धिमान इंटर्न (प्रशिक्षु) की तरह व्यवहार किया, जो भाषा के बारे में बहुत कुछ जानता है लेकिन उसे यह जानने की आवश्यकता है कि वास्तव में क्या कार्य करना है। उन्होंने निर्देश देने के तीन अलग-अलग तरीकों का परीक्षण किया:
ज़ीरो-शॉट (Zero-Shot - "बस मुझे बता दो" दृष्टिकोण):
- उपमा: आप इंटर्न के पास जाते हैं और कहते हैं, "यहाँ एक बिखरा हुआ नोट है। कृपया मुझे बताएं कि यह किस श्रेणी में आता है।" आप कोई उदाहरण नहीं देते।
- परिणाम: इंटर्न अनुमान लगाता है, लेकिन अक्सर गलत हो जाता है क्योंकि उसे ठीक से पता नहीं होता कि आप वास्तव में क्या चाहते हैं।
फ्यू-शॉट (Few-Shot - "मुझे उदाहरण दिखाओ" दृष्टिकोण):
- उपमा: आप कहते हैं, "यहाँ एक बिखरा हुआ नोट है जिसका अर्थ 'New Feature' है। यहाँ एक और है जिसका अर्थ 'Bug Fix' है। अब, इस नए बिखरे हुए नोट को देखो और बताओ कि यह क्या है।" आप इंटर्न को पहले कुछ स्पष्ट उदाहरण दिखाते हैं।
- परिणाम: यह सबसे अच्छा रहा। इंटर्न ने पैटर्न को जल्दी समझ लिया और किताबों को सटीक रूप से छाँटा।
चेन-ऑफ-थॉट (Chain-of-Thought - "ज़ोर से सोचने" का दृष्टिकोण):
- उपमा: आप कहते हैं, "अपना उत्तर देने से पहले, कृपया अपना चरण-दर-चरण तर्क लिखें: 'मैं शब्द 'fix' देख रहा हूँ, इसलिए मुझे लगता है कि यह एक बग है...'"
- परिणाम: आश्चर्यजनक रूप से, इससे कोई मदद नहीं मिली। लेबल छाँटने के इस विशिष्ट कार्य के लिए, इंटर्न को "ज़ोर से सोचने" के लिए कहना केवल अतिरिक्त चरण जोड़ देता था बिना अंतिम उत्तर को बेहतर बनाए। यह एक लाइब्रेरियन से किताब रखने से पहले निबंध लिखने के लिए कहने जैसा था; इसने उन्हें बेहतर बनाने के बजाय केवल धीमा कर दिया।
दावेदार: मस्तिष्क कितना बड़ा होना चाहिए?
शोधकर्ताओं ने अलग-अलग आकार के तीन "इंटर्न" (AI मॉडल) का परीक्षण किया:
- Mistral-7B: एक मध्यम आकार का मस्तिष्क (7 बिलियन पैरामीटर्स)।
- LLaMA-3-8B: एक थोड़ा बड़ा मस्तिष्क (8 बिलियन पैरामीटर्स)।
- DeepSeek-R1-32B: एक विशाल मस्तिष्क (32 बिलियन पैरामीटर्स)।
निष्कर्ष: बड़ा मस्तिष्क जीत गया। DeepSeek-R1-32B बिखरे हुए नोट्स को पढ़ने और सही लेबल खोजने में सबसे सटीक था। यह सुझाव देता है कि इस प्रकार के कार्य के लिए, एक बड़ा, अधिक शक्तिशाली AI मॉडल होना वास्तविक अंतर पैदा करता है।
मुख्य निष्कर्ष
शोध पत्र यह निष्कर्ष निकालता है कि बिखरे हुए सॉफ्टवेयर नोट्स को व्यवस्थित करने के लिए आपको शुरू से एक कस्टम मशीन लर्निंग मॉडल बनाने की आवश्यकता नहीं है। इसके बजाय, आप एक शक्तिशाली, पहले से मौजूद AI का उपयोग कर सकते हैं और बस उसे कुछ अच्छे उदाहरण (Few-Shot prompting) दे सकते हैं ताकि काम पूरा हो सके।
- सर्वश्रेष्ठ रणनीति: AI को पहले कुछ उदाहरण दिखाएं।
- सर्वश्रेष्ठ AI: उपलब्ध सबसे बड़ा, सबसे शक्तिशाली मॉडल।
- समय की बर्बादी: AI को उत्तर देने से पहले एक लंबी तर्क प्रक्रिया लिखने के लिए कहना।
यह दृष्टिकोण समय और प्रयास बचाता है क्योंकि यह हजारों प्रशिक्षण उदाहरणों को एकत्र करने और लेबल करने की आवश्यकता को छोड़ देता है, जिससे डेवलपर्स अपनी फ़ाइल व्यवस्था को तुरंत स्वचालित कर सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।