← 最新の論文
🤖 AI

XGrammar-2: Efficient Dynamic Structured Generation Engine for Agentic LLMs

XGrammar-2 は、動的なエージェント型 LLM ワークロード向けに設計された高効率な構造化生成エンジンであり、タグトリガー型の構造切り替えとクロスグラマキャッシュの再利用を備え、先行システムと比較して 6 倍以上高速なコンパイルとほぼゼロのエンドツーエンドオーバーヘッドを実現します。

原著者: Linzhang Li, Yixin Dong, Guanjie Wang, Ziyi Xu, Alexander Jiang, Tianqi Chen

公開日 2026-05-27
📖 1 分で読めます☕ さくっと読める

原著者: Linzhang Li, Yixin Dong, Guanjie Wang, Ziyi Xu, Alexander Jiang, Tianqi Chen

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたは料理人(AI)であり、非常に厳格なレシピに従おうとしていると想像してください。時々、レシピは単純です。「サンドイッチを作れ。」しかし、AI エージェントの世界では、レシピはしばしば複雑で流動的な指示のセットになります。「文を書き、次に天気ツールの呼び出しのために JSON コードブロックに切り替え、再び文を書くことに戻り、次にデータベースクエリ用の特定フォーマットに切り替えろ。」

問題は、従来の「キッチン」(AI エンジン)は一つの固定されたレシピに従うのは得意ですが、レシピがその場で変化したり、料理人が瞬時に数十の異なる複雑なフォーマット間を切り替えたりする際には苦労するということです。それらはしばしば、料理を始める前にレシピブック全体を最初から書き直すために停止しなければならず、それがすべてを遅くしてしまいます。

XGrammar-2 は、これらの混沌とした動的な調理シナリオのために特別に設計された、超効率的なキッチンエンジンです。これがどのように機能するかを、簡単な比喩を使って説明します。

1. 「魔法のスイッチ」(TagDispatch)

問題点: 「『STOP』という単語が表示されるまで通常通り書き続け、次に数学モードに切り替え、その後戻れ」というレシピがあると想像してください。古い方法でこれを行うことは、あらゆる可能な単語が異なるページにつながる、巨大で絡み合った指示書を書こうとするようなものです。それはごちゃごちゃして巨大になります。

XGrammar-2 の解決策: 彼らは TagDispatch という機能を紹介しました。これは 魔法のスイッチ または 信号機 のようなものです。

  • AI は通常通り書き進めます(緑信号)。
  • 特定のトリガー(例えば <function=weather> というタグ)が表示された瞬間、信号は即座に赤に変わり、エンジンがどの「サブレシピ」(天気の JSON フォーマット)に切り替えるべきかを正確に知ります。
  • そのサブレシピが完了すると、信号は再び緑に変わり、AI は通常通りの書き方に戻ります。
  • なぜ素晴らしいか: 巨大で混乱したマニュアルを書く代わりに、エンジンは信号機に従うだけです。自由な流れのテキストと厳格なコードの間を瞬時かつ容易に切り替えることを可能にします。

2. 「共有ライブラリ」(Cross-Grammar Cache)

問題点: 100 種類の異なる料理を作っていると想像してください。その 90 品は全く同じ「玉ねぎを切る」工程を使用しますが、古いエンジンは各料理を全く新しいタスクとして扱います。それは、各料理ごとに玉ねぎの切り方を最初から再学習することを意味します。これは時間の無駄です。

XGrammar-2 の解決策: 彼らは 共有ライブラリ(Cross-Grammar Cache)を構築しました。

  • 最終的な料理(完全な文法)が異なっても、材料や工程(部分構造)はしばしば同じです。
  • XGrammar-2 は工程を見ます。「ああ、似たような料理のために玉ねぎを切る方法をすでに解明している」と気づけば、再計算しません。ライブラリから事前に切られた玉ねぎをそのまま取り出します。
  • なぜ素晴らしいか: エンジンが同じ計算を繰り返して行うのを防ぎます。全体の要求が異なっても、すでに完了した「作業」を再利用します。

3. 「ジャストインタイム」の料理人(JIT コンパイル)

問題点: 昔は、一口も調理する前に、エンジンが各リクエストに対してレシピブック全体を読み上げなければなりませんでした。レシピが巨大な場合(500 種類の可能なツールを含むツール呼び出しリクエストなど)、調理が始まる前にエンジンが本を読むだけで数秒間そこに座り込むことになります。

XGrammar-2 の解決策: 彼らは ジャストインタイム(JIT) アプローチを使用します。

  • 最初に全体を読む代わりに、料理人は今必要なページだけを読みます。
  • AI が最初の数語について考えている間(「プリフィル」フェーズ)、エンジンは静かにレシピの次の数ページを準備しています。
  • なぜ素晴らしいか: 準備時間を隠します。AI が次の言葉を発する準備ができている頃には、エンジンがすでに次のステップを準備しています。これにより、複雑なタスクであっても「最初の言葉」がほぼ瞬時に表示されます。

4. 「圧縮された地図」(反復状態圧縮)

問題点: 一部のレシピには「この動作を 1,000 回繰り返せ」といった反復的な工程があります。古いエンジンは、各工程に対して 1,000 個の別々の点を描いた地図を作ろうとします。この地図は巨大になり、すべてを遅くします。

XGrammar-2 の解決策: 彼らは 反復状態圧縮 を使用します。

  • 1,000 個の点を描く代わりに、大きな「ループ」の矢印を一つ描き、「ここで 1,000 回回りなさい」と言います。
  • なぜ素晴らしいか: AI が工程を何回繰り返す必要があるとしても、地図は小さくシンプルに保たれます。これにより、長いリストやループによってエンジンが立ち往生することを防ぎます。

結果:彼らは何を見つけたか

この新しいエンジンを現在の最良の方法と比較してテストしました:

  • 速度: 以前のエンジンよりも「レシピ」(文法)のコンパイルが 6 倍速い です。
  • 効率: AI の応答時間にほぼ ゼロの遅延 を追加します。それはあまりに速く、AI はそれが存在することさえ気づきません。
  • 互換性: 人気のある AI システム(SGLang や vLLM など)とシームレスに連携し、ツールの呼び出しや厳格な応答フォーマットの遵守といった複雑なタスクを、息を切らすことなく処理します。

要するに、XGrammar-2 は、質問に答える前にすべての本を棚に戻さなければならない遅く硬直した司書から、答えの場所を正確に知り、以前の知識を再利用し、一瞬たりとも間を置かずにトピックを即座に切り替える超高速で柔軟なアシスタントへと、AI の脳をアップグレードするようなものです。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →