LLMの生成時に出力を制約し、指定した型、正規表現、JSON Schema、文法に適合させるPythonライブラリ。
mlc-ai/xgrammar
LLMの出力をJSON、正規表現、カスタムの文脈自由文法に制約できる、高速で柔軟な構造化生成ライブラリ。
- スター
- 1,967
- フォーク
- 241
- 未解決の Issue
- 130
- 最終コミット
- 3 日前
これは何?
XGrammarは、大規模言語モデルによる構造化生成のためのオープンソースライブラリです。制約付きデコーディングを使って、生成結果がJSON、正規表現、一般的な文脈自由文法など、指定された構造に従うようにします。これにより、LLMの出力をパースできない、あるいは想定したスキーマに一致しないというよくある問題に対処します。
制約付きデコーディングのオーバーヘッドを抑えることに重点を置いており、JSON生成ではオーバーヘッドがほぼゼロになるとしています。Linux、macOS、Windowsに加え、CPU、NVIDIAおよびAMDのGPU、Apple Silicon、TPUで動作するよう設計されています。Python、C++、JavaScript、Swift向けのバインディングも提供されています。
XGrammarは推論エンジンへの組み込みを想定しています。vLLM、SGLang、TensorRT-LLM、MLC-LLMなどのプロジェクトに統合されており、pipでインストールできます。
主な機能
- 01出力をJSON、正規表現、カスタムの文脈自由文法に制約できます。
- 02JSON生成時のオーバーヘッドをほぼゼロに抑えることを目指しています。
- 03CPU、NVIDIAおよびAMDのGPU、Apple Silicon、TPUで、Linux、macOS、Windows上で動作します。
- 04Python、C++、JavaScript、Swift向けのAPIを提供します。
- 05pipでインストールでき、Apple Silicon向けのMetal extraも任意で利用できます。
ユースケース
- LLMのサービングエンジンに有効なJSONを返させ、後続処理でパースできるようにする。
- ツール呼び出しや関数引数向けに、モデルの出力を正規表現または文法に従わせる。
- 独自のLLM推論スタックに構造化出力機能を追加する。
クイックスタート
- 1
PyPIからXGrammarをインストールする
pip install xgrammar - 2
Apple Silicon向けのMetalサポートを有効にしてインストールする(任意)
pip install "xgrammar[metal]" - 3
PythonコードでXGrammarをインポートする
import xgrammar as xgr
使う前に知っておきたいこと
- READMEの使い方に関する詳細のほとんどは、README自体ではなく外部ドキュメントに記載されています。
トピック
よくある質問
- xgrammar とは?
- LLMの出力をJSON、正規表現、カスタムの文脈自由文法に制約できる、高速で柔軟な構造化生成ライブラリ。 XGrammarは、大規模言語モデルによる構造化生成のためのオープンソースライブラリです。制約付きデコーディングを使って、生成結果がJSON、正規表現、一般的な文脈自由文法など、指定された構造に従うようにします。これにより、LLMの出力をパースできない、あるいは想定したスキーマに一致しないというよくある問題に対処します。
- xgrammar は無料で使えますか?ライセンスは?
- xgrammar は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- xgrammar は今もメンテナンスされていますか?
- 活発にメンテナンス中。xgrammar の最終コミットは 2026年10月18日 です。
- xgrammar は何に使えますか?
- LLMのサービングエンジンに有効なJSONを返させ、後続処理でパースできるようにする。 ツール呼び出しや関数引数向けに、モデルの出力を正規表現または文法に従わせる。 独自のLLM推論スタックに構造化出力機能を追加する。
- xgrammar のインストール方法は?
- PyPIからXGrammarをインストールする: pip install xgrammar Apple Silicon向けのMetalサポートを有効にしてインストールする(任意): pip install "xgrammar[metal]" PythonコードでXGrammarをインポートする: import xgrammar as xgr
- xgrammar はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/mlc-ai/xgrammar
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Rayは、分散ランタイムとAIライブラリを備え、PythonやAIアプリケーションをノートPCからクラスターまでスケールさせる統合フレームワークです。
LLMのプロンプトに構造化データを渡す際のトークン使用量を抑える、コンパクトで読みやすいJSONデータ向けエンコーディング。
多次元並列処理で大規模Transformerモデルを学習するための、GPU向け最適化ライブラリと学習用リファレンススクリプト。
Intel CPU、GPU、NPUで推論するディープラーニングモデルを最適化・デプロイするオープンソースツールキット。
学習と推論に向けた、FP8 dispatchとNVLink/RDMAに対応するexpert-parallel MoE向けGPU通信ライブラリ。