AI・機械学習
上級

XGrammar(エックスグラマー)

MLC AI Teamが開発した高速文法制約デコーディングライブラリ。コンパイル済みオートマトンとGPU並列処理により、ほぼゼロオーバーヘッドで構造化LLM出力を生成する。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
構造化出力
GPU最適化
LLM推論
文法制約
vLLM

XGrammarとは

MLC AI Teamが開発した高速Grammar-Constrained DecodingエンジンでCPython・Rust・C++バインディングを提供。JSON Schema/EBNFからコンパイル済みオートマトンを生成しGPU上で並列トークンマスキングを実行する。

他ライブラリとの性能比較(2024年計測)

ライブラリLlama-3-8Bでのオーバーヘッドアーキテクチャ
XGrammar< 1%コンパイル済みオートマトン + GPU並列
Outlines(FSM)2〜5%Python FSM + CPU
llama.cpp GBNF3〜10%C++ シングルスレッド
lm-format-enforcer5〜20%トークンごと再評価

出典: XGrammar技術レポート(arxiv:2411.15100)

インストール

pip install xgrammar
# vLLM経由(0.6.2以降デフォルトで内包)
pip install vllm

基本使用法

import xgrammar as xgr
import torch
from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3-8B-Instruct")
tokenizer_info = xgr.TokenizerInfo.from_huggingface(tokenizer)
compiler = xgr.GrammarCompiler(tokenizer_info)

# JSON Schemaから文法をコンパイル
schema = '{"type":"object","properties":{"name":{"type":"string"},"age":{"type":"integer"}},"required":["name","age"]}'
compiled_grammar = compiler.compile_json_schema(schema)

# マッチャーを取得してトークンマスクを生成
matcher = xgr.GrammarMatcher(compiled_grammar)
bitmask = xgr.allocate_token_bitmask(1, tokenizer_info.vocab_size)

# 推論ループ内でlogitsをマスク
matcher.fill_next_token_bitmask(bitmask)
xgr.apply_token_bitmask_inplace(logits, bitmask)

vLLM統合(0.6.2以降)

from vllm import LLM, SamplingParams

llm = LLM(model="meta-llama/Llama-3-8B-Instruct",
          guided_decoding_backend="xgrammar")  # デフォルト

output = llm.generate(
    "ユーザー情報を返して",
    SamplingParams(
        guided_decoding={"json": {"type":"object","properties":{}}}
    )
)

設計上の特徴

  • アダプティブトークンマスク: マスクの大部分が変化しない部分はキャッシュして再利用
  • GPUバッチ並列: バッチ内の複数シーケンスのマスクを一括GPU演算
  • コンテキスト依存文法: 文法の一部がコンテキスト(先行出力)に依存する場合も対応
  • 近似モード: 超高速な近似マスキングで品質とスループットをトレードオフ可能

よくある質問(FAQ)

Q1: OutlinesからXGrammarへの移行は難しい? A: vLLMを使っている場合は0.6.2以降で自動的にXGrammarが使われる。スタンドアロン利用はAPIが異なるが概念は共通。

Q2: XGrammarはどのモデルサイズまで有効? A: 語彙サイズ100K〜200K(Llama 3・GPT-4相当)でも1%未満のオーバーヘッドを実証済み。

Q3: CPUのみ環境でも動く? A: CPUフォールバックあり。ただしパフォーマンス優位性はGPU環境で顕著。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/6