mlc-ai/xgrammar

Fast, Flexible and Portable Structured Generation

XGrammar – LLM の構造化生成エンジン

何であるか – XGrammar は、大規模言語モデル(LLM)が指定された構造(JSON、正規表現、カスタム文脈自由文法など)に厳密に従った出力を生成できるようにするオープンソースライブラリです。これは 制約付きデコード を用いて、ほぼ遅延を追加せずに 100% の構造的正しさを保証します。

なぜ重要か – 許容可能な機械可読出力(例:JSON を返す API、計画テンプレートに従うエージェント、コードスニペットを生成するツールなど)が必要な多くの AI アプリケーションがあります。従来の LLM デコードでは、不正なテキストが出力されることがあり、後処理や再試行が必要です。XGrammar は正しさの保証を生成ステップに移すことで、時間の節約とバグの削減を実現します。

主な特徴

  • ゼロオーバーヘッドの JSON 生成 – 通常のテキスト生成と比較して「ほぼゼロ」の追加コストでベンチマーク済み。
  • 汎用 CFG 対応 – 任意の文脈自由文法を指定可能。カスタムフォーマット、正規表現ベースの制約、ドメイン固有言語の実装が可能。
  • クロスプラットフォーム・クロスハードウェア – Linux、macOS、Windows で動作。CPU、NVIDIA/AMD GPU、Apple Silicon、TPU などに対応。
  • マルチ言語 API – Python(主に)、C++、JavaScript、Swift 用の公式バインディングを提供。
  • 広範なモデル互換性 – Qwen、Llama、DeepSeek、Phi、Gemma など多数のモデルでテスト済み。
  • 主要な推論エンジンとの即時統合 – vLLM、SGLang、TensorRT-LLM、MLC-LLM など、多くの推論ランタイムのデフォルト構造化生成バックエンド。

一般的な利用例

シナリオ XGrammar の役割
JSON を返す API サービス 別のバリデーターなしで、応答が有効な JSON であることを保証。
計画やスクリプトに従うエージェント型 LLM 計画を CFG としてエンコード。モデルは構文的に正しい計画のみを出力可能。
自由形式テキストからのデータ抽出/変換 目的のフィールド用に正規表現や文法を定義。抽出が決定論的になる。
言語固有の構文ルールを持つコード生成 言語の文法を供給することで、括弧の不一致やキーワードの欠落をモデルが一切生成しない。

クイックスタート(Python)

pip install xgrammar            # 基本インストール
pip install "xgrammar[metal]"   # Apple Silicon 用のオプション Metal サポート
import xgrammar as xgr
# 例:固定スキーマを持つ JSON オブジェクトを生成
grammar = xgr.JSONGrammar({"name": "string", "age": "int"})
result = xgr.generate(model, grammar, prompt="ユーザーのプロフィールを教えてください")
print(result)  # 常に有効な JSON

詳細ドキュメント、インストールガイド、コード例は https://xgrammar.mlc.ai/docs/ で確認できます。

エコシステム統合

  • vLLM、SGLang、TensorRT-LLM、MLC-LLM – これらの推論ランタイムのデフォルト構造化生成バックエンドとして XGrammar が採用されています。
  • Rust バインディング – コミュニティメンテナンスの xgrammar-rs で Rust プロジェクトに対応。
  • 業界採用 – NVIDIA、Meta、Google、DeepSeek、Databricks、Modular、Perplexity など、多数の企業製品に統合されています。

リリースとガバナンス

  • リリースは GitHub でバージョン管理され、PyPI にも公開(例:xgrammar==0.2.7)。
  • CODE_OF_CONDUCT、CONTRIBUTING チュートリアル、GOVERNANCE.md を含むオープンガバナンスモデルを採用。メンテナーや意思決定プロセスを明示。

ライセンス

  • Apache License 2.0 – 拡張性が高く、商業利用に適したオープンソースライセンス。

コミュニティと引用

  • コミュニティ – GitHub での議論、DeepWiki バッジ、増加する共同作業者リスト。
  • 引用 – 研究で使用する場合、2024 年 ML Systems 論文と 2026 年 ACM コンファレンス論文を引用してください(BibTeX は README を参照)。

XGrammar は、速度を犠牲にせずに信頼性の高い構造化出力が必要な、LLM ベースのシステムを構築するすべての人にとって実用的なツールです。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト