vLLM 约束解码将 Kimi 和 DeepSeek 的工具调用准确率修复至 100%
要点
启用 vLLM 0.31 中引入的约束解码标志,可确保 Kimi K2.6 和 DeepSeek V4 Flash 的工具调用模式 100% 符合规范,消除了此前将准确率降至 92% 的错误调用。
为什么工具调用模式准确性很重要
- 工具调用必须遵循向模型公布的 JSON 模式;任何偏差都会导致调用失败并污染上下文窗口。
- 在多轮智能体工作负载中,一次错误的调用会迫使重试,增加延迟,并降低整体模型质量。
- Moonshot AI 的 K2VV ToolCall 基准测试衡量两个关键指标:
- 触发相似度 – 服务决定调用工具的频率与参考实现的对比。
- 模式准确率 – 生成的调用中符合声明模式的比例。50% 的模式准确率意味着一半的调用不可用。
- 当 Ubicloud 使用 vLLM 0.28 服务 Kimi K2.6 时,模式准确率仅为 92%(每 25 次调用中有 2 次失败),这对于生产环境中的智能体来说是不可接受的。
约束解码:工作原理
- 标准解码 允许模型根据概率采样任何 token,这可能会产生语法无效的 JSON。
- 约束解码 在每一步生成时,将 token 集合限制为仅那些能保持输出符合工具 JSON 模式的 token。
- vLLM 使用 XGrammar 结构标签 实现这一点。语法定义了一个确定性序列:
<|tool_call_begin|>{function.name}:{index}<|tool_call_argument_begin|>- JSONSchemaFormat – 生成符合所提供模式的 JSON。
<|tool_call_end|>
- 无效 token 会被即时屏蔽,并且每个阶段的掩码都是预先计算的,因此 GPU 可以以极小的开销应用它。
“这将模式准确率从尽力而为的方法转变为运行时保证。模型仍然决定生成哪个 token,但现在 token 是从一个受限且语法正确的集合中选择的。” – Ubicloud 博客
vLLM 0.31 中的变化
- 约束解码在 vLLM 0.31 中作为 服务端标志(
--tool-strict-level)添加。 - 在 0.31 之前,该功能存在于早期版本(例如 0.25)中,但 默认禁用,以避免对不遵循预期工具调用格式的模型造成回归。
- 为 Kimi 和 DeepSeek 启用该标志,强制引擎应用 XGrammar 掩码,使 K2VV 基准测试中的模式准确率提升至 100%。
为什么默认禁用
- vLLM 服务多种模型;一些模型(例如 gpt-oss-20b、Qwen 3.6、GLM 5.1)生成的工具调用偏离预期格式,导致约束解码 拒绝过多 token 并降低性能。
- 识别出三类问题:
- 一般模型问题 – 模型在无约束时偏离预期模式。
- 语法转换错误 – 将模型的工具模式转换为 XGrammar 标签时出错。
- 功能交互错误 – 例如,约束解码与推测解码之间的冲突导致有效 token 被错误屏蔽。
- 由于这些回归,vLLM 维护者选择了 模型无关的默认禁用 约束解码,并为需要严格执行的用户引入了显式的
--tool-strict-level标志。
社区见解
“约束解码在 vLLM 中已经存在很长时间了,约束工具调用解码在 vLLM 中也有一段时间了。这篇博客文章相当令人困惑,因为在理解整个情况之前,它似乎暗示他们修复了 vLLM(标题所暗示的),但实际上他们只需要正确配置它。” – @Aurornis(HN 评论)
- 讨论强调,真正的修复是配置,而不是代码更改,并称赞 Ubicloud 维护了一个捕获回归的基准测试。
- 其他评论者指出,约束解码现在在其他运行时(例如
llama.cpp、HuggingFace transformers.js)中很常见,100% 的工具调用准确率是生产智能体的基本期望。
部署实用指南
- 启用标志 当服务具有稳定工具调用格式的模型时(例如 Kimi K2.6、DeepSeek V4 Flash):
vllm serve model_path --tool-strict-level=2 # 或根据 vLLM 文档选择适当的级别 - 使用基准测试验证 例如 Moonshot AI 的 K2VV ToolCall,以确保任何引擎升级后模式准确率保持在 100%。
- 监控特定模型的回归;如果某个模型在约束解码下性能下降,请考虑仅对该模型禁用该标志。
- 保持 XGrammar 定义最新 当添加或重命名工具时;语法必须反映模型使用的确切 JSON 模式。
结论
工具调用模式准确性是智能体 LLM 质量的关键决定因素。通过启用 vLLM 0.31 的约束解码,Ubicloud 消除了错误的工具调用,将 Kimi 和 DeepSeek 模型的基准准确率从 92% 提升至 100%。这表明,对于提供可靠、高质量的 AI 服务,推理引擎配置与模型选择同样重要。