Constrained Decoding
LLM推理时通过logits掩码强制模型只能输出符合特定语法或schema的token序列的技术,代表工具有Outlines、XGrammar、Guidance等,仍由生成式模型逐token输出,只限制合法token集合
核心事实
时间轴 (近 90 天)
Constrained Decoding在主流LLM工程语境中,指在推理时通过logits掩码强制模型只能输出符合特定语法或schema的token序列,代表工具有Outlines、XGrammar、Guidance等。
ScaleDown将自己的产品命名为Constrained Decoding Models,容易与通用的约束解码技术混淆,但前者是特定厂商的任务专用小模型,后者是可用于任意LLM的解码时约束方法。
当输出被 max_tokens 截断时,约束解码层会随之中止,留下结构残缺的响应
约束解码只能约束 token 序列合法性,无法约束语义,模型仍可输出错误的枚举值或越界数字
约束校验的计算量与词表大小成正比,且每生成一个 token 都要重复一次,因此性能优化关键
约束解码依赖有限状态机(FSM)或下推自动机来表达合法输出的全集,将 schema 预编译为状态转移图
约束解码通过在每个解码步骤将不合法 token 的 logits 设为负无穷来仅允许符合语法规则的 token 被采样,FSM 适用于正则语言,CFG 可处理 JSON、XML 等嵌套结构
Constrained Decoding通过在每步采样前根据已生成内容和目标Schema约束将不合法token概率置为零来确保合法语法路径
OpenAI 的 Structured Outputs 模式通过受限解码(Constrained Decoding)技术在 token 采样层面强制输出符合 JSON Schema,可完全消除格式错误,而普通 Function Calling 不具备这种硬约束
全部知识事实 (11)
结构化输出通过JSON Schema或函数调用机制在解码阶段对token生成施加约束,与在提示词中要求输出JSON格式有本质区别
80%待验证Function Calling使用受约束解码(Constrained Decoding)技术在token生成过程中实时校验语法合法性
75%待验证ScaleDown将自己的产品命名为Constrained Decoding Models,容易与通用的约束解码技术混淆,但前者是特定厂商的任务专用小模型,后者是可用于任意LLM的解码时约束方法。
50%待验证Constrained Decoding在主流LLM工程语境中,指在推理时通过logits掩码强制模型只能输出符合特定语法或schema的token序列,代表工具有Outlines、XGrammar、Guidance等。
50%待验证约束解码只能约束 token 序列合法性,无法约束语义,模型仍可输出错误的枚举值或越界数字
50%待验证当输出被 max_tokens 截断时,约束解码层会随之中止,留下结构残缺的响应
50%待验证约束校验的计算量与词表大小成正比,且每生成一个 token 都要重复一次,因此性能优化关键
50%待验证约束解码依赖有限状态机(FSM)或下推自动机来表达合法输出的全集,将 schema 预编译为状态转移图
50%待验证约束解码通过在每个解码步骤将不合法 token 的 logits 设为负无穷来仅允许符合语法规则的 token 被采样,FSM 适用于正则语言,CFG 可处理 JSON、XML 等嵌套结构
50%待验证Constrained Decoding通过在每步采样前根据已生成内容和目标Schema约束将不合法token概率置为零来确保合法语法路径
50%待验证OpenAI 的 Structured Outputs 模式通过受限解码(Constrained Decoding)技术在 token 采样层面强制输出符合 JSON Schema,可完全消除格式错误,而普通 Function Calling 不具备这种硬约束
50%