0
点赞
收藏
分享

微信扫一扫

XGrammar:陈天奇团队推出的LLM结构化生成引擎

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

🚀 快速阅读

主题:XGrammar是一个为LLM提供结构化生成能力的开源库。
功能:支持上下文无关语法,适用于生成JSON、SQL等格式数据。
优化:通过字节级下推自动机实现百倍加速,几乎无额外开销。

正文(附运行示例)

XGrammar 是什么

XGrammar:陈天奇团队推出的LLM结构化生成引擎_开源

XGrammar是由陈天奇团队推出的开源软件库,专为大型语言模型(LLM)设计,提供高效、灵活且可移植的结构化数据生成能力。它基于上下文无关语法(CFG)定义结构,支持递归组合以表示复杂结构,适合生成JSON、SQL等格式数据。

XGrammar通过字节级下推自动机优化解释CFG,减少每token延迟,实现百倍加速,几乎无额外开销。此外,XGrammar集成多种系统优化,如自适应token掩码缓存、上下文扩展等,提高掩码生成速度并减少预处理时间。XGrammar的C++后端设计易于集成,并支持在LLM推理中实现零开销的结构化生成。

XGrammar 的主要功能

  • 高效结构化生成:支持上下文无关语法(CFG),支持定义和生成遵循特定格式(如JSON、SQL)的结构化数据。
  • 灵活性:基于CFG的递归规则,能灵活地表示复杂的结构,适应多样的结构化数据需求。
  • 零开销集成:XGrammar与LLM推理引擎共同设计,能在LLM推理中实现零开销的结构化生成。
  • 快速执行:基于系统优化,显著提高结构化生成的执行速度,相比于SOTA方法,每token延迟减少多达100倍。
  • 跨平台部署:具有最小且可移植的C++后端,能轻松集成到多个环境和框架中。
  • 自适应token掩码缓存:在预处理阶段生成,加快运行时的掩码生成。

XGrammar 的技术原理

  • 字节级下推自动机(PDA):用字节级PDA解释CFG,支持每个字符边缘包含一个或多个字节,处理不规则的token边界,支持包含sub-UTF8字符的token。
  • 预处理和运行时优化:在预处理阶段,生成自适应token掩码缓存,基于预先计算与上下文无关的token加快运行时的掩码生成。
  • 上下文无关与相关token的区分:区分上下文无关token和上下文相关token,预先计算PDA中每个位置的上下文无关token的有效性,并将它们存储在自适应token掩码缓存中。
  • 语法编译:基于语法编译过程,预先计算掩码中相当一部分token,加快掩码生成速度。
  • 算法和系统优化:包括上下文扩展、持续性执行堆栈、下推自动机结构优化等,进一步提高掩码生成速度并减少预处理时间。
  • 掩码生成与LLM推理重叠:将CPU上的掩码生成过程与GPU上的LLM推理过程并行化,消除约束解码的开销。

资源

  • 项目官网:<https://xgrammar.mlc.ai>
  • GitHub 仓库:<https://github.com/mlc-ai/xgrammar>
  • arXiv 技术论文:<https://arxiv.org/abs/2411.15100>

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

举报

相关推荐

0 条评论