mlc-ai/xgrammar

Fast, Flexible and Portable Structured Generation

XGrammar – LLM 的结构化生成引擎

是什么 – XGrammar 是一个开源库,使大型语言模型(LLMs)能够严格遵循给定结构(JSON、正则表达式、自定义上下文无关文法等)生成输出。它通过 约束解码 实现,几乎不增加延迟的情况下保证 100% 的结构正确性。

为何重要 – 许多 AI 应用需要可靠、机器可读的输出(例如返回 JSON 的 API、必须遵循计划模板的代理,或生成代码片段的工具)。传统 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;模型只能输出保持计划语法正确的 token。
从自由文本中提取/转换数据 定义所需字段的正则表达式或文法;提取过程变为确定性。
具有语言特定语法规则的代码生成 提供语言文法,模型绝不会生成括号不匹配或缺少关键字的情况。

快速入门(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 系统构建者的实用工具。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目