加载中...

结构化输出(Structured Output)指强制大语言模型按预定义格式(常见为 JSON Schema、正则表达式或上下文无关文法)生成内容的技术,保证输出可被程序直接解析。
主流实现是受约束解码(constrained decoding):把目标格式编译成有限状态机或文法自动机,解码每一步根据当前状态屏蔽(mask)所有不合法的 token,使模型只能在合法候选中采样。代表性开源实现有 Outlines、XGrammar、llguidance 与 llama.cpp 的 GBNF 文法,vLLM、SGLang 均已集成。
函数调用(function calling)、信息抽取、Agent 工具参数生成等场景高度依赖结构化输出;OpenAI 等商业 API 的 JSON mode 与 Structured Outputs 功能即此技术的产品化。
约束只保证语法合法,不保证语义正确;掩码计算与状态机匹配会带来一定解码开销,复杂 schema 下需要高效实现。

登录 后参与讨论
暂无讨论,来发表第一条评论吧