Repolode
mlc-ai

mlc-ai/xgrammar

一个快速灵活的结构化生成库,可将大模型输出约束为 JSON、正则或自定义上下文无关文法。

Star
1,967
Fork
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 生成的额外开销接近于零。
  • 03支持 Linux、macOS 和 Windows,兼容 CPU、NVIDIA、AMD、Apple Silicon 与 TPU。
  • 04提供 Python、C++、JavaScript 和 Swift 接口。
  • 05可通过 pip 安装,并提供面向 Apple Silicon 的 Metal 可选依赖。

适用场景

  • 让大模型推理服务返回可直接解析的合法 JSON。
  • 将模型输出约束为正则或文法,用于工具调用或函数参数生成。
  • 为自研的 LLM 推理系统添加结构化输出能力。

快速上手

  1. 1

    从 PyPI 安装 XGrammar

    pip install xgrammar
  2. 2

    在 Apple Silicon 上安装 Metal 支持(可选)

    pip install "xgrammar[metal]"
  3. 3

    在 Python 代码中导入 XGrammar

    import xgrammar as xgr

使用前须知

  • README 中的大部分使用细节位于外部文档中,而非 README 本身。

标签

常见问题

xgrammar 是什么?
一个快速灵活的结构化生成库,可将大模型输出约束为 JSON、正则或自定义上下文无关文法。 XGrammar 是一个用于大语言模型结构化生成的开源库。它通过约束解码,让模型输出严格符合指定结构,例如 JSON、正则表达式或通用的上下文无关文法,从而解决 LLM 输出无法解析或不符合预期格式的常见问题。
xgrammar 可以免费使用吗?用的什么许可证?
xgrammar 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
xgrammar 还在维护吗?
活跃维护中。xgrammar 最近一次提交是在 2026年10月18日。
xgrammar 适合用来做什么?
让大模型推理服务返回可直接解析的合法 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目