论文

XGrammar-2:面向 Agentic LLM 的动态高效结构化生成引擎

XGrammar 2: Dynamic and Efficient Structured Generation Engine for Agentic LLMs

模型推理解码与生成控制

摘要

现代LLM代理需要处理日益复杂的结构化生成任务,例如工具调用和条件结构化生成。这些任务比预定义的结构更加动态,对当前的结构化生成引擎提出了新的挑战。在本文中,我们提出了 XGrammar 2,一种用于代理大语言模型的高度优化的结构化生成引擎。 XGrammar 2 通过新的动态调度语义:TagDispatch 加速了这些动态结构化生成任务的掩码生成。我们进一步引入了一种即时(JIT)编译方法来减少编译时间,以及一种跨语法缓存机制来利用不同语法之间的公共子结构。此外,我们将之前基于 PDA 的掩码生成算法扩展到基于 Earley 解析器的算法,并设计了一种重复压缩算法来处理语法中的重复结构。评估结果表明,XGrammar 2 比现有结构化生成引擎可实现 6 倍以上的加速。 XGrammar 2 与 LLM 推理引擎集成,可以以接近零的开销处理动态结构化生成任务。

XGrammar-2:面向 Agentic LLM 的动态高效结构化生成引擎 配图
图 2:我们的方法概览。我们设计了新的动态调度语义 TagDispatch(§3.1),以高效支持动态结构化生成任务。我们设计了 JIT 编译方法(§3.2)以减少预处理时间。为利用不同文法间的子结构,我们设计了基于 Earley 解析器(§3.4)的跨文法缓存算法(§3.3)。此外,我们还引入重复压缩算法(§3.5)来处理文法的一些长尾情况。