XGrammar-2: Efficient Dynamic Structured Generation Engine for Agentic LLMs
يُعد XGrammar-2 محرك توليد مهيكل عالي الكفاءة مصمم لأعباء عمل النماذج اللغوية الكبيرة الوكيلة الديناميكية، حيث يتميز بالتبديل الهيكلي المحفز بالوسوم وإعادة استخدام ذاكرة التخزين المؤقت عبر القواعد المختلفة لتحقيق سرعة تجميع تزيد عن 6 أضعاف وتقليل زمن التأخير النهائي إلى ما يقرب من الصفر مقارنة بالأنظمة السابقة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك طاهٍ (الذكاء الاصطناعي) تحاول اتباع وصفة دقيقة للغاية. أحيانًا تكون الوصفة بسيطة: "اصنع شطيرة". ولكن في عالم وكلاء الذكاء الاصطناعي، غالبًا ما تكون الوصفة عبارة عن مجموعة معقدة ومتغيرة من التعليمات مثل: "اكتب جملة، ثم انتقل إلى كتلة كود JSON لاستدعاء أداة الطقس، ثم عد إلى كتابة جملة، ثم انتقل إلى تنسيق محدد لاستعلام قاعدة البيانات."
المشكلة هي أن "المطابخ" التقليدية (محركات الذكاء الاصطناعي) بارعة في اتباع وصفة واحدة ثابتة، لكنها تعاني عندما تتغير الوصفة أثناء العمل، أو عندما يضطر الطاهي للتبديل بين عشرات التنسيقات المعقدة المختلفة في لحظة واحدة. وغالبًا ما تضطر هذه المحركات إلى التوقف وإعادة كتابة كتاب الوصفات بالكامل من الصفر قبل أن تتمكن من بدء الطهي، مما يجعل كل شيء بطيئًا.
XGrammar-2 هو محرك مطبخ جديد فائق الكفاءة، مصمم خصيصًا لسيناريوهات الطهي الفوضوية والديناميكية هذه. إليك كيف يعمل، باستخدام تشبيهات بسيطة:
1. "المفتاح السحري" (TagDispatch)
المشكلة: تخيل وصفة تقول: "استمر في الكتابة بشكل طبيعي حتى ترى كلمة 'STOP'، ثم انتقل إلى وضع الرياضيات، ثم عد مرة أخرى". القيام بذلك بالطرق القديمة يشبه محاولة كتابة دليل تعليمات ضخم ومتشابك حيث تؤدي كل كلمة ممكنة إلى صفحة مختلفة. يصبح الأمر فوضويًا وضخمًا للغاية.
حل XGrammar-2: قدموا ميزة تسمى TagDispatch. فكر في هذا كـ مفتاح سحري أو إشارة مرور.
- يكتب الذكاء الاصطناعي بشكل طبيعي (الضوء الأخضر).
- في اللحظة التي يرى فيها محفزًا معينًا (مثل الوسم
<function=weather>)، يتحول الضوء فورًا إلى اللون الأحمر، ويعرف المحرك بالضبط أي "وصفة فرعية" (تنسيق JSON الخاص بالطقس) يجب أن ينتقل إليها. - بمجرد انتهاء هذه الوصفة الفرعية، يتحول الضوء إلى اللون الأخضر مرة أخرى، ويعود الذكاء الاصطناعي للكتابة بشكل طبيعي.
- لماذا هو رائع: بدلًا من كتابة دليل ضخم ومربك، يتبع المحرك ببساطة إشارات المرور. هذا يجعل الانتقال بين النص الحر والأكواد الصارمة أمرًا فوريًا وسهلاً.
2. "المكتبة المشتركة" (Cross-Grammar Cache)
المشكلة: تخيل أنك تطهو 100 وجبة مختلفة. 90 منها تستخدم نفس خطوة "تقطيع البصل" تمامًا، لكن المحرك القديم يعامل كل وجبة كأنها مهمة جديدة كليًا. إنه يعيد تعلم كيفية تقطيع البصل من الصفر لكل وجبة. وهذا هدر للوقت.
حل XGrammar-2: قاموا ببناء مكتبة مشتركة (Cross-Grammar Cache).
- حتى لو كانت الأطباء النهائية (القواعد الكاملة) مختلفة، فإن المكونات والخطوات (الهياكل الفرعية) غالبًا ما تكون متشابهة.
- ينظر XGrammar-2 إلى الخطوات؛ فإذا رأى: "أوه، لقد عرفت بالفعل كيفية تقطيع البصل لطبق مشابه"، فإنه لا يعيد الحساب. بل يأخذ البصل المقطع مسبقًا من المكتبة.
- لماذا هو رائع: إنه يمنع المحرك من إجراء نفس العمليات الحسابية مرارًا وتكرارًا. إنه يعيد استخدام "العمل" الذي أنجزه بالفعل، حتى لو كان الطلب الإجمالي مختلفًا.
3. "الطاهي في الوقت المناسب" (JIT Compilation)
المشكلة: في الأيام الخوالي، وقبل أن تتمكن من طهي لقمة واحدة، كان على المحرك قراءة كتاب الوصفات بأكمـله لكل طلب. إذا كانت الوصفة ضخمة (مثل طلب استدعاء أداة يحتوي على 500 أداة محتملة)، فسيظل المحرك جالسًا لثوانٍ لمجرد قراءة الكتاب قبل بدء الطهي.
حل XGrammar-2: يستخدمون نهج الترجمة الفورية (JIT).
- بدلاً من قراءة الكتاب بأكمله أولاً، يقرأ الطاهي الصفحة التي يحتاجها الآن فقط.
- بينما يفكر الذكاء الاصطناعي في الكلمات الأولى (مرحلة الـ prefill)، يقوم المحرك بهدوء بتحضير الصفحات القليلة التالية من الوصفة.
- لماذا هو رائع: هذا يخفي وقت التحضير. بحلول الوقت الذي يكون فيه الذكاء الاصطناعي مستعدًا لنطق الكلمة التالية، يكون المحرك قد جهز بالفعل الخطوة التالية. هذا يجعل "الكلمة الأولى" تظهر بشكل فوري تقريبًا، حتى للمهام المعقدة.
4. "الخريطة المضغوطة" (Repetition State Compression)
المشكلة: بعض الوصفات تحتوي على خطوات متكررة، مثل "كرر هذا الإجراء 1,000 مرة". المحركات القديمة ستحاول رسم خريطة بـ 1,000 نقطة منفصلة لكل خطوة. تصبح هذه الخريطة ضخمة وتؤدي إلى إبطاء كل شيء.
حل XGrammar-2: يستخدمون ضغط حالة التكرار.
- بدلاً من رسم 1,000 نقطة، يرسمون "حلقة" كبيرة واحدة ويقولون: "دور حول هنا 1,000 مرة".
- لماذا هو رائع: هذا يبقي الخريطة صغيرة وبسيطة، بغض النظر عن عدد المرات التي يتعين فيها على الذكاء الاصطناعي تكرار خطوة ما. هذا يمنع المحرك من الغرق في القوائم الطويلة أو الحلقات التكرارية.
النتائج: ماذا وجدوا؟
اختبرت الورقة البحثية هذا المحرك الجديد مقابل أفضل الطرق الحالية:
- السرعة: يقوم بتجهيز "الوصفة" (القاعدة/Grammar) أسرع بـ 6 مرات من المحركات السابقة.
- الكفاءة: لا يضيف تقريبًا أي تأخير إلى وقت استجابة الذكاء الاصطناعي. إنه سريع جدًا لدرجة أن الذكاء الاصطناعي لا يلاحظ وجوده حتى.
- التوافق: يعمل بسلاسة مع أنظمة الذكاء الاصطناعي الشهيرة (مثل SGLang و vLLM) ويتعامل مع المهام المعقدة مثل استدعاء الأدوات أو اتباع تنسيقات الاستجابة الصارمة دون أي عناء.
باختًا، XGrammer-2 يشبه ترقية عقل الذكاء الاصطناعي من أمين مكتبة بطيء وجامد يضطر لإعادة ترتيب كل كتاب قبل الإجابة على سؤال، إلى مساعد فائق السرعة ومرن يعرف بالضبط أين يجد الإجابة، ويعيد استخدام المعرفة السابقة، وينتقل بين المواضيع فورًا دون أن يفقد إيقاعه.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.