Decode-Time Grammars: Constrained LLM Generation over a Refinement Order of Grammar Fragments
यह शोध पत्र "डिकोड-टाइम ग्रामर्स" (decode-time grammars) प्रस्तुत करता है, जो एक ऐसी विधि है जो विविध प्रोग्रामिंग सतहों (programming surfaces) पर बड़े भाषा मॉडलों द्वारा अर्थपूर्ण रूप से सही और अपरिभाषित संदर्भों से मुक्त कोड उत्पन्न करने को सुनिश्चित करने के लिए जनरेशन के दौरान रनटाइम वातावरण से व्याकरण के अंशों को गतिशील रूप से इंस्टेंटिएट करती है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
तकनीकी सारांश: डिकोड-टाइम ग्रामर्स (Decode-Time Grammars)
1. समस्या विवरण (Problem Statement)
लार्ज लैंग्वेज मॉडल्स (LLMs) का उपयोग एजेंटों और सर्विंग सिस्टम्स के लिए कोड जेनरेट करने के लिए तेजी से किया जा रहा है, जहाँ जनरेट किया गया आउटपुट बिना मानवीय समीक्षा के कंपाइल या निष्पादित (execute) किया जाता है। हालाँकि यह मुख्यधारा की भाषाओं के लिए काम करता है, लेकिन लो-रिसोर्स प्रोग्रामिंग सर्फेसेस जैसे कि डोमेन-विशिष्ट भाषाएँ (DSLs), कस्टम लाइब्रेरी APIs, या कमांड-लाइन टूल्स के लिए यह अत्यंत नाजुक (brittle) बना रहता है।
इन वातावरणों में एक आवर्ती विफलता मोड (recurring failure mode) घोस्ट रेफरेंस (ghost reference) है: एक सिंटैक्टिक रूप से वैध टोकन (जैसे कि एक वेरिएबल नाम, कॉलम, API फंक्शन, या CLI ऑप्शन) जो वर्तमान रनटाइम एनवायरनमेंट में मौजूद नहीं है।
- उदाहरण: एक ऐसा बफर को रेफर करना जो TileLang कर्नेल में कभी घोषित (declare) नहीं किया गया, एक ऐसा कॉलम चुनना जो SQL स्कीमा में अनुपस्थित है, या एक ऐसा इंट्रिन्सिक (intrinsic) कॉल करना जो किसी विशिष्ट लाइब्रेरी वर्जन में उपलब्ध नहीं है।
- मूल कारण (Root Cause): ये त्रुटियाँ अक्सर नेगेटिव ट्रांसफर (negative transfer) से उत्पन्न होती हैं, जहाँ मॉडल किसी पड़ोसी डायलेक्ट, पुराने API वर्जन, या किसी अन्य टूल इंटरफेस के ज्ञान को लक्षित वातावरण पर लागू करता है।
- मौजूदा उपचारों की सीमाएँ:
- फिक्स्ड ग्रामर्स (Fixed Grammars): मानक ग्रामर-कंस्ट्रेंड डिकोडिंग (जैसे CFGs) सिंटैक्टिक वैधता सुनिश्चित करती है लेकिन रेफरेंस पोजीशन्स को 'ओपन क्लासेस' (जैसे
identifier) के रूप में मानती है, जो वैध और अमान्य दोनों नामों को स्वीकार करती है। - मॉडल-साइड उपचार (Model-Side Remedies): प्रॉम्प्टिंग, फाइन-ट्यूनिंग, या रिट्राय मैकेनिज्म्स त्रुटियों की संभावना को कम कर सकते हैं, लेकिन वे मॉडल के सपोर्ट सेट से अमान्य निरंतरता (continuations) को हटा नहीं सकते। वे इस बात पर निर्भर करते हैं कि मॉडल सही पथ को "पसंद" करे, जो अपर्याप्त है जब गलत पथ सुगम (fluent) और उच्च-संभावना वाला हो।
- फिक्स्ड ग्रामर्स (Fixed Grammars): मानक ग्रामर-कंस्ट्रेंड डिकोडिंग (जैसे CFGs) सिंटैक्टिक वैधता सुनिश्चित करती है लेकिन रेफरेंस पोजीशन्स को 'ओपन क्लासेस' (जैसे
2. कार्यप्रणाली: डिकोड-टाइम ग्रामर्स (Methodology: Decode-Time Grammars)
यह पेपर डिकोड-टाइम ग्रामर्स पेश करता है, एक ऐसा फ्रेमवर्क जहाँ ग्रामर फ्रेगमेंट्स को जनरेशन के दौरान रनटाइम एनवायरनमेंट के आधार पर गतिशील रूप से इंस्टैंशिएट किया जाता है।
मुख्य तंत्र (Core Mechanism)
- रनटाइम एनवायरनमेंट (): वर्तमान स्थिति का एक स्नैपशॉट, जिसमें इन-स्कोप नाम, सॉर्ट्स (sorts), शेप्स, स्कीमा एंट्रीज, API मेंबर्स, या टूल स्टेट शामिल हैं। जैसे-जैसे घोषणाएं (declarations) जनरेट होती हैं, विकसित होता है।
- ग्रामर फ्रेगमेंट्स और रिफाइनमेंट ऑर्डर (Grammar Fragments & Refinement Order): एक एकल फिक्स्ड ग्रामर के बजाय, सिस्टम ग्रामर फ्रेगमेंट्स के एक पुस्तकालय का उपयोग करता है जो रिफाइनमेंट () द्वारा क्रमबद्ध होते हैं।
- फ्रेगमेंट्स कोर्स (जैसे, किसी भी आइडेंटिफायर को स्वीकार करना) से लेकर टाइट (जैसे, केवल में घोषित नामों को स्वीकार करना) तक होते हैं।
- एक प्रति-क्षेत्र नीति (per-region policy) अपेक्षित सॉर्ट और वर्तमान एनवायरनमेंट के आधार पर एक विशिष्ट "होल" (जनरेशन में एक टाइप्ड पोजीशन) के लिए उपयुक्त फ्रेगमेंट का चयन करती है।
- ऑपरेटर (Tightening): यह महत्वपूर्ण तंत्र है। यह एक ओपन रेफरेंस पोजीशन को एक -टाइप्ड स्लॉट में बदल देता है।
- स्लॉट का कैंडिडेट सेट ठीक वही नाम हैं जो में उपलब्ध हैं (जैसे,
Gamma.names(sort=Buffer))। - इन कैंडिडेट्स को एक एस्केप्ड अल्टरनेशन (जैसे,
"A" | "B" | "C") में कंपाइल किया जाता है और उस क्षेत्र को डिकोड करने से पहले टोकन-लेवल रिकग्नाइज़र में इंजेक्ट किया जाता है।
- स्लॉट का कैंडिडेट सेट ठीक वही नाम हैं जो में उपलब्ध हैं (जैसे,
- सेल्फ-एक्सटेंडिंग जनरेशन (Self-Extending Generation): जैसे ही मॉडल घोषणाएं जनरेट करता है, उन्हें निकाला जाता है और बाद के रेफरेंस होल्स को डिकोड करने से पहले में जोड़ा जाता है। यह सुनिश्चित करता है कि रेफरेंस पहले से जनरेट किए गए प्रीफिक्स द्वारा बाधित (constrained) हों।
सिस्टम आर्किटेक्चर
इसका कार्यान्वयन, gproj, दो घटकों से बना है:
- TemplateInductor (ऑफलाइन): छोटे कॉर्पस पर एंटी-यूनिफिकेशन (anti-unification) का उपयोग करके ग्रामर फ्रेगमेंट्स और पॉलिसियों को इंड्यूस करता है। यह फ्रेगमेंट्स को कॉर्पस पॉजिटिव्स और ऑटो-जेनरेटेड नेगेटिव्स (जिसमें माइन्ड घोस्ट रेफरेंसेस भी शामिल हैं) का उपयोग करके एक "हार्ड गेट" के विरुद्ध वैलिडेट करता है ताकि निष्पादन क्षमता और शुद्धता सुनिश्चित हो सके।
- gproj Executor (ऑनलाइन): एक ऑनलाइन मास्कड एक्सेक्यूटर जो को बनाए रखता है, नीति को क्वेरी करता है, के माध्यम से फ्रेगमेंट्स को इंस्टैंशिएट करता है, और परिणामी ग्रामर को LLM डिकोडर (जैसे, XGrammar) के लिए टोकन मास्क में कंपाइल करता है।
3. मुख्य योगदान और औपचारिक परिणाम (Key Contributions & Formal Results)
सैद्धांतिक योगदान (Theoretical Contributions)
- नो-घोस्ट साउंडनेस (No-Ghost Soundness): पेपर यह सिद्ध करता है कि किसी भी फ्रेगमेंट के लिए जहाँ रेफरेंस पोजीशन्स को -टाइप्ड स्लॉट्स के रूप में साकार किया जाता है, जनरेट की गई स्ट्रिंग्स बनावट के आधार पर स्कोप-सेफ (scope-safe by construction) होती हैं। प्रत्येक उत्सर्जित (emitted) रेफरेंस में होने की गारंटी है।
- रिफाइनमेंट प्रिजर्वेशन (Refinement Preservation): यह सिद्ध किया गया है कि यदि एक लूज़ (looser) फ्रेगमेंट साउंड है, तो कोई भी टाइटर रिफाइनमेंट (via ) इस साउंडनेस को बनाए रखता है। यह सिस्टम को त्रुटियों को पुन: पेश किए बिना गतिशील रूप से फ्रेगमेंट स्ट्रेंथ के बीच स्विच करने की अनुमति देता है।
- डायनेमिक सपोर्ट की आवश्यकता (Proposition 3): पेपर सिद्ध करता है कि फिक्स्ड रेफरेंस सपोर्ट के साथ फिक्स्ड फैमिली ऑफ प्रीकंपाइल्ड ग्रामर्स का कोई भी समूह दोनों (साउंड और नॉन-ब्लॉकिंग) नहीं हो सकता है, यदि आइडेंटिफायर स्पेस अनबाउंडेड है।
- निहितार्थ: सटीक रेफरेंस सपोर्ट को प्रीफिक्स के आधार पर डिकोडिंग के दौरान ही सिंथेसाइज़ किया जाना चाहिए। स्टैटिक प्री-कंपाइलेशन डिक्लेरेशन-कंसिस्टेंट भाषाओं के लिए सैद्धांतिक रूप से अपर्याप्त है।
व्यावहारिक योगदान (Practical Contributions)
- श्रम का विभाजन (Division of Labor): यह दृष्टिकोण एनवायरनमेंट-बाउंड करेक्टनेस (मास्क द्वारा संभाला गया) को ओपन-एंडेड प्रोग्राम निर्णयों (मॉडल द्वारा संभाला गया) से अलग करता है। मास्क यह गारंटी देता है कि रेफरेंस वैध हैं; मॉडल एल्गोरिदम, रणनीति या इरादे (intent) को चुनता है।
- इंडक्शन पाइपलाइन: एक छोटा कॉर्पस से आवश्यक ग्रामर फ्रेगमेंट्स और पॉलिसियों को स्वचालित रूप से उत्पन्न करने की विधि, जो इस दृष्टिकोण को बिना मैन्युअल ग्रामर इंजीनियरिंग के नए DSLs के लिए भी लागू करने योग्य बनाती है।
4. मूल्यांकन परिणाम (Evaluation Results)
सिस्टम का मूल्यांकन TileLang (टेन्सर-कर्नेल DSL), SQL (Spider dataset), P4 (डेटा-प्लेन लैंग्वेज), और CLI टूल्स (git, FFmpeg) पर 0.6B से 236B पैरामीटर्स वाले मॉडल्स का उपयोग करके किया गया।
- घोस्ट रेफरेंसेस का उन्मूलन (Elimination of Ghost References):
- सभी सर्फेसेज पर, -टाइप्ड आर्म (जो का उपयोग करता है) ने निर्माण के आधार पर 0% घोस्ट रेफरेंसेस प्राप्त किए।
- इसके विपरीत, ओपन आइडेंटिफायर आर्म्स (फ्री डिकोडिंग) ने TileLang, SQL, और P4 के लिए 100% मामलों में घोस्ट रेफरेंसेस के कारण विफलता दर्ज की, चाहे मॉडल का आकार कुछ भी हो (0.6B से 236B)।
- उदाहरण: SQL पर, ओपन आइडेंटिफायर के परिणामस्वरूप 0% निष्पादन मिलान (execution match) हुआ; -कंस्ट्रेंड डिकोडिंग ने 100% मिलान प्राप्त किया।
- मॉडल इंडिपेंडेंस (Model Independence): यह गारंटी मॉडल के आकार के पार भी काम करती है। यहाँ तक कि 236B फ्रंटियर मॉडल (DeepSeek-V4-Flash) भी मास्क के बिना वैध रेफरेंस उत्पन्न करने में विफल रहा, जबकि 0.6B मॉडल मास्क के साथ सफल रहा।
- विकल्पों के साथ तुलना:
- प्रॉम्प्टिंग/रिट्राय: SQL पर, स्कीमा के साथ प्रॉम्प्टिंग और 4 बार तक रिट्राय करने से 90% निष्पादन मिलान प्राप्त हुआ, लेकिन फिर भी इसने 5 घोस्ट कॉलम उत्पन्न किए। मास्क ने एक ही पास में 100% मिलान और 0 घोस्ट्स के साथ सफलता प्राप्त की।
- लागत: यह दृष्टिकोण मध्यम ओवरहेड डालता है। अनकन्स्ट्रेंड डिकोडिंग की तुलना में एंड-टू-एंड थ्रूपुट में औसत कमी 17.3% थी। स्टैंडर्ड कंस्ट्रेंड डिकोडिंग (XGrammar) की तुलना में, gproj ने थ्रूपुट को 10.6–17.8% कम किया।
- ऑफलाइन इंडक्शन: TemplateInductor ने जटिल सर्फेसेज (जैसे, AscendC ऑपरेटर्स, FFmpeg फिल्टर्स) के लिए वैध फ्रेगमेंट्स को सफलतापूर्वक इंड्यूस किया जो हाथ से लिखे नहीं गए थे, जिससे "इंडक्शन + हार्ड गेट" वर्कफ़्लो की वैधता सिद्ध हुई।
5. महत्व और दावे (Significance and Claims)
पेपर का दावा है कि डिकोड-टाइम ग्रामर्स शुद्धता का एक सटीक, स्थिर हिस्सा प्रदान करते हैं जो मॉडल की क्षमता के समानांतर (orthogonal) है।
- मैकेनिकल गारंटी: यह रेफरेंस सुरक्षा को एक संभावabilistic परिणाम (मॉडल की गुणवत्ता पर निर्भर) से बदलकर एक कंस्ट्रक्शन-लेवल गारंटी में बदल देता है।
- स्केलेबिलिटी: "सेमेंटिक स्केच" (मॉडल का काम) को "एनवायरनमेंट-बाउंड रेफरेंसेस" (मास्क का काम) से अलग करके, यह सिस्टम कमजोर मॉडल्स को उन लो-रिसोर्स वातावरणों में वैध कोड जेनरेट करने की अनुमति देता है जहाँ वे अन्यथा मतिभ्रम (hallucinate) करेंगे।
- सैद्धांतिक आवश्यकता: यह प्रमाण कि स्टैटिक ग्रामर्स डिक्लेरेशन-कंसिस्टेंट भाषाओं के लिए एक साथ साउंड और नॉन-ब्लॉकिंग नहीं हो सकते, प्रस्तावित रनटाइम इंस्टैंशिएशन दृष्टिकोण की आवश्यकता को स्थापित करता है।
लेखक इस कार्य को पूरे-प्रोग्राम की सेमेंटिक शुद्धता (जैसे, एल्गोरिथमिक लॉजिक या टर्मिनेशन) के समाधान के रूप में नहीं, बल्कि विशेष रूप से मैकेनिकल रूप से गणना योग्य त्रुटियों (अपरिभाषित सिम्बल्स) को समाप्त करने के एक मजबूत तंत्र के रूप में प्रस्तुत करते हैं, जो बाधित वातावरणों में कोड जनरेशन को प्रभावित करती हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।