XGrammar-2: Efficient Dynamic Structured Generation Engine for Agentic LLMs
XGrammar-2 एक उच्च-दक्षता वाला स्ट्रक्चर्ड जनरेशन इंजन है जिसे डायनेमिक एजेंटिक LLM वर्कलोड के लिए डिज़ाइन किया गया है, जिसमें टैग-ट्रिगर संरचना स्विचिंग और क्रॉस-ग्रामर कैश पुन: उपयोग की सुविधा है ताकि पिछले सिस्टमों की तुलना में 6 गुना से अधिक तेज़ संकलन और लगभग शून्य एंड-टू-एंड ओवरहेड प्राप्त किया जा सके।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक शेफ (AI) हैं जो एक बहुत ही सख्त रेसिपी का पालन करने की कोशिश कर रहे हैं। कभी-कभी, रेसिपी सरल होती है: "एक सैंडविच बनाओ।" लेकिन AI एजेंटों की दुनिया में, रेसिपी अक्सर निर्देशों का एक जटिल, बदलता हुआ सेट होती है जैसे: "एक वाक्य लिखें, फिर एक मौसम टूल को कॉल करने के लिए JSON कोड ब्लॉक पर स्विच करें, फिर वापस वाक्य लिखने पर स्विच करें, फिर डेटाबेस क्वेरी के लिए एक विशिष्ट प्रारूप पर स्विच करें।"
समस्या यह है कि पारंपरिक "किचन" (AI इंजन) एक निश्चित रेसिपी का पालन करने में बहुत अच्छे हैं, लेकिन वे तब संघर्ष करते हैं जब रेसिपी चलते-फिरते बदल जाती है या जब शेफ को तुरंत दर्जनों अलग-अलग जटिल प्रारूपों के बीच स्विच करना पड़ता है। उन्हें अक्सर रुकना पड़ता है, और खाना शुरू करने से पहले पूरे रेसिपी बुक को फिर से लिखना पड़ता है, जिससे सब कुछ धीमा हो जाता है।
XGrammar-2 एक नया, सुपर-एफिशिएंट किचन इंजन है जिसे विशेष रूप से इन अराजक, गतिशील कुकिंग परिदृश्यों के लिए डिज़ाइन किया गया है। यह कैसे काम करता है, इसके लिए सरल उपमाओं का उपयोग किया गया है:
1. "जादुई स्विच" (TagDispatch)
समस्या: कल्पना कीजिए कि एक रेसिपी कहती है, "सामान्य रूप से लिखना जारी रखें जब तक कि आप 'STOP' शब्द न देख लें, फिर गणित मोड पर स्विच करें, फिर वापस स्विच करें।" पुराने तरीकों के साथ ऐसा करना एक विशाल, उलझे हुए निर्देश मैनुअल को लिखने जैसा है जहाँ हर शब्द आपको एक अलग पेज पर ले जाता है। यह बहुत अस्त-व्यस्त और बड़ा हो जाता है।
XGramm-2 का समाधान: उन्होंने TagDispatch नामक एक फीचर पेश किया है। इसे एक जादुई स्विच या ट्रैफिक लाइट के रूप में सोचें।
- AI सामान्य रूप से लिखता है (ग्रीन लाइट)।
- जैसे ही वह एक विशिष्ट ट्रिगर (जैसे कि टैग
<function=weather>) देखता है, लाइट तुरंत लाल हो जाती है, और इंजन जानता है कि किस "सब-रेसिपी" (मौसम के लिए JSON प्रारूप) पर स्विच करना है। - एक बार जब वह सब-रेसिपी पूरी हो जाती है, तो लाइट फिर से हरी हो जाती है, और AI सामान्य रूप से लिखना शुरू कर देता है।
- यह क्यों शानदार है: एक विशाल, भ्रमित करने वाला मैनुअल लिखने के बजाय, इंजन बस ट्रैफिक लाइट का पालन करता है। यह फ्री-फ्लोइंग टेक्स्ट और स्ट्रिक्ट कोड के बीच स्विच करना त्वरित और आसान बनाता है।
2. "साझा लाइब्रेरी" (Cross-Grammar Cache)
समस्या: कल्पना कीजिए कि आप 100 अलग-अलग व्यंजन बना रहे हैं। उनमें से 90 में बिल्कुल एक ही "प्याज काटने" वाला स्टेप होता है, लेकिन पुराना इंजन हर भोजन को एक बिल्कुल नया कार्य मानता है। वह हर नए भोजन के लिए प्याज काटने का तरीका शून्य से फिर से सीखता है। यह समय की बर्बादी है।
XGram-2 का समाधान: उन्होंने एक साझा लाइब्रेरी (Cross-Grammar Cache) बनाई है।
- भले ही अंतिम व्यंजन (फुल ग्रामर) अलग हों, लेकिन सामग्री और स्टेप्स (सब-स्ट्रक्चर) अक्सर समान होते हैं।
- XGrammar-2 उन स्टेप्स को देखता है। यदि वह देखता है, "ओह, मैंने पहले भी एक समान डिश के लिए प्याज काटना सीख लिया है," तो वह फिर से गणना नहीं करता। वह बस लाइब्रेरी से पहले से कटे हुए प्याज उठा लेता है।
- यह क्यों शानदार है: यह इंजन को बार-बार वही गणित करने से रोकता है। यह उस "काम" का पुन: उपयोग करता है जो उसने पहले ही कर लिया है, भले ही समग्र अनुरोध अलग हो।
3. "जस्ट-इन-टाइम" शेफ (JIT Compilation)
समस्या: पुराने दिनों में, खाना शुरू करने से पहले, इंजन को हर सिंगल रिक्वेस्ट के लिए पूरी रेसिपी बुक पढ़नी पड़ती थी। यदि रेसिपी बहुत बड़ी थी (जैसे कि 500 संभावित टूल्स के साथ टूल-कॉलिंग रिक्वेस्ट), तो इंजन खाना शुरू करने से पहले ही केवल किताब पढ़ने में कई सेकंड तक बैठा रहता था।
X-Grammar-2 का समाधान: वे Just-in-Time (JIT) दृष्टिकोण का उपयोग करते हैं।
- पूरी किताब पहले पढ़ने के बजाय, शेफ केवल वही पेज पढ़ता है जिसकी उसे अभी आवश्यकता है।
- जबकि AI अपने पहले कुछ शब्दों के बारे में सोच रहा होता है (प्रीफिल चरण), इंजन चुपचाप रेसिपी के अगले कुछ पन्नों की तैयारी कर रहा होता है।
- यह क्यों शानदार है: यह तैयारी के समय को छिपा देता है। जब तक AI अगला शब्द बोलने के लिए तैयार होता है, इंजन ने पहले ही अगला स्टेप तैयार कर लिया होता है। यह जटिल कार्यों के लिए भी "पहला शब्द" लगभग तुरंत प्रकट कर देता है।
4. "संकुचित मानचित्र" (Repetition State Compression)
समस्या: कुछ रेसिपी में दोहराव वाले स्टेप्स होते हैं, जैसे "इस क्रिया को 1,000 बार दोहराएं।" पुराने इंजन हर स्टेप के लिए 1,000 अलग-अलग डॉट्स के साथ एक नक्शा बनाने की कोशिश करेंगे। यह नक्शा बहुत बड़ा हो जाता है और सब कुछ धीमा कर देता है।
XGrammar-2 का समाधान: वे Repetition State Compression का उपयोग करते हैं।
- 1,000 डॉट्स बनाने के बजाय, वे एक बड़ा "लूप" तीर बनाते हैं और कहते हैं, "यहाँ 1,000 बार घूमें।"
- यह क्यों शानदार है: यह मानचित्र को छोटा और सरल रखता है, चाहे AI को कितनी भी बार एक स्टेप को दोहराना पड़े। यह इंजन को लंबी सूचियों या लूप्स के कारण फंसने से बचाता है।
परिणाम: उन्होंने क्या पाया?
पेपर ने इस नए इंजन का परीक्षण वर्तमान सर्वोत्तम तरीकों के विरुद्ध किया:
- गति: यह पिछले इंजनों की तुलना में "रेसिपी" (ग्रामर) को 6 गुना तेज़ी से कंपाइल करता है।
- दक्षता: यह AI के रिस्पॉन्स टाइम में लगभग शून्य देरी जोड़ता है। यह इतना तेज़ है कि AI को इसका पता भी नहीं चलता।
- संगतता: यह लोकप्रिय AI सिस्टम (जैसे SGLang और vLLM) के साथ सहजता से काम करता है और बिना किसी परेशानी के टूल्स को कॉल करने या स्ट्रिक्ट रिस्पॉन्स फॉर्मेट का पालन करने जैसे जटिल कार्यों को संभालता है।
संक्षेप में, XGrammar-2 एक AI के दिमाग को एक धीमे, कठोर लाइब्रेरियन से एक सुपर-फास्ट, फ्लेक्सिबल असिस्टेंट में अपग्रेड करने जैसा है, जो जानता है कि उत्तर कहाँ ढूँढना है, पिछले ज्ञान का पुन: उपयोग करता है, और बिना रुके तुरंत विषयों के बीच स्विच कर सकता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।