Accelerating Constrained Decoding with Token Space Compression
本文介绍了 CFGzip,这是一种离线令牌空间压缩技术,可显著降低约束解码的计算开销,在复杂上下文无关文法的全生成时间上实现高达 7.5 倍的加速。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象你有一位才华横溢但略显混乱的厨师(即大语言模型,LLM),他几乎能烹饪任何菜肴。然而,你需要他按照一份非常严格且复杂的食谱(即上下文无关文法,CFG)来准备一道菜,比如某种特定的编程语言或精确的数据格式。
如果厨师猜错了食材,整道菜就毁了。为了防止这种情况,你雇佣了一位严格的文法引擎(就像主厨或食品安全检查员),他站在厨师身旁。在厨师添加任何食材之前,检查员会检查整个储藏室,确认该特定食材是否允许在当前食谱步骤中使用。
问题:“储藏室”太大了
问题在于,厨师的储藏室(即词元词汇表)极其庞大,包含数十万种不同的食材(单词、符号、代码片段)。
每当厨师想要添加一种食材时,检查员都必须遍历整个储藏室,以确认该特定物品在此时是否有效。对于简单的食谱(如 JSON 数据),这很快。但对于复杂的食谱(如 C++ 代码或一种名为"Bython"的虚构语言),检查员会不堪重负。他们必须检查如此多的可能性,导致烹饪过程大幅减慢——有时比正常情况慢2 到 10 倍。论文将这种情况称为“难以处理的高开销”。
解决方案:CFGZIP(“分组”技巧)
作者介绍了一种名为CFGZIP的新工具。CFGZIP 不是在厨师开始烹饪后让检查员逐一检查储藏室里的每一种食材,而是在烹饪开始前重新整理储藏室。
以下是类比:
- 分组食材:CFGZIP 查看储藏室,发现许多食材在食谱目的上是可互换的。例如,在代码食谱的特定部分,单词
if、else和while在语法上可能表现相同。或者,在不同的上下文中,数字1、2和3可能都是有效的占位符。 - 创建“代表”桶:CFGZIP 将这些可互换的食材分组到桶中。它从每个桶中挑选一个“代表”食材(通常是较短的那个)来代表整个组。
- 新工作流程:
- 烹饪前(离线):系统执行将储藏室分类到这些桶中的繁重工作。这一步只需执行一次并保存。
- 烹饪中(推理):当厨师挑选一种食材时,系统会迅速将其替换为桶中的“代表”。检查员只需将代表与食谱进行核对,而无需检查整个储藏室。
- 结果:由于检查员现在只需检查一个微小的代表列表,而不是庞大的原始储藏室,过程变得极其迅速。
为什么这很重要
论文声称,将 CFGZIP 与顶级文法引擎(XGrammar2)结合使用,能带来巨大的加速:
- 延迟降低:规则检查所需的时间减少了10 到 100 倍(两个数量级)。
- 总体加速:对于复杂任务,生成文本的整个过程速度提高了7.5 倍。
- 无质量损失:这是一种“无损”压缩。最终输出与不使用加速时得到的结果逐字节完全相同。厨师仍然能做出完全相同的完美菜肴;只是他们到达终点快得多了。
论文中的实际结果
研究人员在三种不同的 AI 模型(Llama、Qwen 和 GPT)和四项不同的任务上测试了此方法:
- JSON 和 XML:标准数据格式。
- C++:一种复杂的编程语言。
- Bython:一种虚构的、人造的编程语言(类似于 Python,但使用大括号和分号代替空格)。
发现:
- 对于标准格式(JSON),加速效果良好但并非革命性,因为这些规则本身已经很简单。
- 对于复杂且不熟悉的语言(如 C++ 和 Bython),差异巨大。如果没有 CFGZIP,文法引擎慢到使 AI 在这些任务上几乎无法使用。有了 CFGZIP,AI 能够快速且正确地生成复杂代码。
- 有趣的是,对于 AI 从未见过的"Bython"任务,使用这种约束方法将 AI 编写可运行代码的能力从2.3% 提高到了 46.9%(针对某一款模型),证明当任务困难时,严格的规则有助于 AI。
注意事项(局限性)
论文指出了一个主要局限性:准备时间。
将储藏室分类到桶中(即“离线预计算”)需要时间。
- 如果你需要为一个一次性、快速的任务生成 JSON 文件,那么整理储藏室所花费的时间可能比直接正常完成任务还要长。
- 然而,如果你正在进行大规模代码生成,或者反复使用相同的复杂规则,那么初始设置时间是值得的,因为烹饪(生成)过程变得快得多。
总结
CFGZIP就像一位聪明的图书管理员,在你到达之前将庞大的图书馆重新组织成“主题桶”。你不再需要搜索每一本书来找到正确的那一本,图书管理员只需指向“主题桶”的代表。这使得找到正确信息(或在本案中,生成正确代码)的速度 dramatically 加快,而不会丢失任何一本书或改变故事内容。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。