LLM-Assisted Repository-Level Generation with Structured Spec-Driven Engineering
यह शोधपत्र स्ट्रक्चर्ड स्पेक-ड्रिवन इंजीनियरिंग (SSDE) का प्रस्ताव करता है, जो एक ऐसा प्रतिमान (पैराडाइम) है जो प्राकृतिक भाषा के प्रॉम्प्ट्स की अस्पष्टता और गुणवत्ता संबंधी सीमाओं को दूर करने के लिए संरचित विनिर्देशों (स्ट्रक्चर्ड स्पेसिफिकेशन्स) का उपयोग करता है, जिससे रिपॉजिटरी स्तर पर उच्च-गुणवत्ता वाले, सत्यापन योग्य कोड जनरेशन को सक्षम बनाया जा सके।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने नहीं लिखा है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक बहुत ही प्रतिभाशाली, लेकिन थोड़े भुलक्कड़ प्रशिक्षु (apprentice) शेफ को एक पूरे शहर के लिए एक विशाल, जटिल दावत पकाने के लिए सिखाने की कोशिश कर रहे हैं।
समस्या: "अस्पष्ट आदेश"
अभी, यदि आप किसी शीर्ष-स्तरीय AI (प्रशिक्षु) को एक पूरे सॉफ़्टवेयर सिस्टम के लिए कोड लिखने के लिए कहते हैं, तो आप आमतौर पर उसे केवल एक लंबा, प्राकृतिक भाषा का विवरण देते हैं जैसे, "एक वेबसाइट बनाओ जहाँ लोग मीटिंग बुक कर सकें।" यह शेफ को कहने जैसा है, "एक स्वादिष्ट भोजन बनाओ।"
यह शोध पत्र बताता है कि जबकि AI एक अकेला प्याज काटने (एक छोटा फंक्शन लिखने) में बहुत अच्छा है, लेकिन जब उससे पूरी दावत पकाने (एक पूर्ण सॉफ़्टवेयर रिपॉजिटरी) के लिए कहा जाता है, तो वह खो जाता है। प्राकृतिक भाषा बहुत अस्पष्ट होती है। AI गलत अनुमान लगा सकता है, कोई चरण भूल सकता है, या ऐसा व्यंजन बना सकता है जो दिखने में तो अच्छा हो लेकिन स्वाद में सही न हो। इससे भी बदतर यह है कि क्योंकि निर्देश अस्पष्ट थे, इसलिए यह साबित करना कठिन है कि भोजन क्यों विफल हुआ।
समाधान: "संरचित रेसिपी बुक"
लेखक काम करने का एक नया तरीका प्रस्तावित करते हैं जिसे स्ट्रक्चर्ड स्पेक-ड्रिवन इंजीनियरिंग (SSDE) कहा जाता है। एक अस्पष्ट बातचीत के बजाय, वे सुझाव देते हैं कि AI को एक सख्त, संरचित "रेसिपी बुक" दी जाए।
इस पेपर में, वे दो प्रकार की संरचित रेसिपी का उपयोग करते हैं:
- घेरकिन स्पेसिफिकेशन (Gherkin Specifications): इन्हें "यदि-तो" (If-Then) परीक्षण मामलों के रूप में समझें। "इसे काम करने दो" कहने के बजाय, आप लिखते हैं: "यदि (IF) एक उपयोगकर्ता 'बुक' पर क्लिक करता है, तो (THEN) कमरे को 'ऑक्यूपाइड' के रूप में चिह्नित किया जाना चाहिए।" यह सटीक व्यवहारों की एक चेकलिस्ट है।
- डोमेन मॉडल (Domain Models): ये वास्तुशिल्प ब्लूप्रिंट या सामग्रियों के मानचित्र की तरह हैं। ये दिखाते हैं कि सिस्टम के विभिन्न हिस्से (जैसे "उपयोगकर्ता", "कमरे" और "तिथियाँ") एक-दूसरे से कैसे जुड़ते हैं।
प्रयोग: स्वाद परीक्षण
शोधकर्ताओं ने एक पायलट अध्ययन आयोजित किया। उन्होंने खुद को मुख्य शेफ के रूप में स्थापित किया और पाँच अलग-अलग AI मॉडलों (प्रशिक्षुओं) को तीन अलग-अलग सॉफ़्टवेयर सिस्टम के लिए "बिजनेस लॉजिक" (खाना पकाने के नियम) बनाने का कार्य दिया।
उन्होंने विभिन्न संयोजनों का परीक्षण किया:
- कंट्रोल ग्रुप: केवल एक अस्पष्ट प्राकृतिक भाषा का विवरण।
- टेस्ट ग्रुप: अस्पष्ट विवरण प्लस संरचित "रेसिपी बुक" (ब्लूप्रिंट और "यदि-तो" चेकलिस्ट)।
परिणाम: संरचना की जीत
निष्कर्ष स्पष्ट थे:
- बेहतर सटीकता: जब AI के पास संरचित "रेसिपी बुक" (ब्लूप्रिंट और चेकलिस्ट) थी, तो इसने अस्पष्ट विवरण की तुलना में बहुत कम गलतियाँ कीं।
- "ब्लूप्रिंट" का बढ़ावा: ब्लूप्रिंट के साथ विशिष्ट कोड सिग्नेचर (सामग्री और उपकरणों की सटीक सूची) देने से AI को सबसे अधिक मदद मिली। यह ऐसा था जैसे शेफ को केवल रेसिपी ही नहीं, बल्कि आटे का सटीक ब्रांड और उपयोग करने के लिए विशेष आकार का पैन भी दे दिया गया हो।
- सुधार की गुंजाइश अभी भी है: हालांकि संरचित दृष्टिकोण बहुत बेहतर था, फिर भी AI ने कुछ गलतियाँ कीं। हालांकि, शोधकर्ताओं ने पाया कि इनमें से 70% से अधिक सरल, पता लगाने योग्य गलतियाँ थीं—जैसे कि ऐसे वेरिएबल का संदर्भ देना जो मौजूद नहीं है, या पायथन सिंटैक्स एरर। इनके लिए टेस्ट ऑरेकल (यानी यह देखने के लिए कि आउटपुट क्या आता है, कोड को उदाहरण इनपुट के साथ चलाना) की भी आवश्यकता नहीं है: एक मानक कंपाइलर या लिंटर इन्हें पकड़ लेगा।
भविष्य का रोडमैप
पेपर सुझाव देता है कि इसे पूरी तरह से सफल बनाने के लिए, हमें निम्नलिखित की आवश्यकता है:
- एक फीडबैक लूप जोड़ना: केवल AI से एक बार पूछने के बजाय, हमें इसे कोड लिखने, "रेसिपी बुक" के विरुद्ध जांच करने और अपनी गलतियों को स्वचालित रूप से ठीक करने देना चाहिए।
- बेहतर डेटासेट बनाना: हमें इन संरचित रेसिपी बुक्स के अधिक उदाहरणों की आवश्यकता है ताकि AI को बेहतर प्रशिक्षित किया जा सके।
- परिवर्तनों को संभालना: वास्तविक सॉफ़्टवेयर हमेशा बदलता रहता है। हमें AI को पूरे भोजन को खराब किए बिना दावत के केवल एक हिस्से (जैसे मिठाई बदलना) को अपडेट करना सिखाना होगा।
मुख्य निष्कर्ष
पेपर निष्कर्ष निकालता है कि यदि हम AI को एक जादुई छड़ी के रूप में मानना बंद कर दें जो अस्पष्ट इच्छाओं पर काम करती है, और इसे एक सख्त, संरचित ब्लूप्रिंट का पालन करने वाले कुशल कार्यकर्ता के रूप में देखना शुरू करें, तो हम पूरे सॉफ़्टवेयर सिस्टम को विश्वसनीय रूप से बनाने में सक्षम हो सकते हैं। यह AI को एक "रचनात्मक अनुमान लगाने वाले" से बदलकर एक "सटीक निर्माता" बना देता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।