新一代提示词工程 · 知识全景图面向有工程基础、提示词工程尚未系统化的工程师
显示设置

三档严格度

Three Tiers of Strictness

PE-S-02内容已写满G01确定性输出第 7 层

确定性输出严格度格式约束

一句话结论

三档严格度的用法是先看下游能不能容错、再决定约束强度,并让档位与失败处理成对定义。

本页结构(可跳转)

T1 第一档:自然语言要求 「只输出 JSON」 可靠性最差 · 成本最低 T2 第二档:结构契约 把 schema 放进提示 可靠性中等 · 必须有重试兜底 T1->T2 强度递增 L 松 ⇒ 必须配人工或后置校验 中 ⇒ 必须配重试 紧 ⇒ 才可把结构失败视为已消除 T1->L T3 第三档:约束解码 解码期按 schema 屏蔽候选 结构必然合法 T2->T3 强度递增 X 同一轴上的另一档位差 强度递增 ⇒ 成本与可移植性同向递减 (可移植性:换模型换供应商是否还成立) T3->X
分档图:自然语言要求 / 结构契约 / 约束解码三档的强度递增,与成本、可移植性的同向递减。 (本站自制)

01为什么需要它

模型不会因为你在提示里写了一句「只输出 JSON」就真的只输出 JSON:自然语言格式要求只是倾向,不是保证。

适用边界

档位要按后果定、不是按偏好定:约束越强,生成空间越窄,在需要多步自由推理的任务上会压低推理表现,此时最高档往往不是最优解而是两阶段拆分;反过来,在无人值守的下游,最松的一档等于没有约束,必须自己补上校验与重试。

02机制说明

三档的机制差别在于约束发生在哪一层。

03何时该用 / 何时不该用

按场景对照:先看条件,再看该怎么做。
类别场景 / 条件(总结)具体做法(细节)
该用无人值守的生产流水线用第三档,并把结构失败从监控项里移除。
该用一次性脚本、人工查看的输出可用第一档,但必须有人工或后置校验兜底。
不该用一刀切选最高档推理密集型任务上强约束会压低推理表现,该拆成两阶段。
不该用只升档不配失败处理档位与重试策略必须成对定义、一起评审。

04实验台

  1. promptmarkdown

    查看代码
    【第一档:自然语言格式要求】
    把下面这句话的情感标为正向或负向,只输出 JSON:{"sentiment": "..."}
    句子:{q}
    
    【第二档:结构契约】
    按给定的 JSON Schema 输出(sentiment 为必填 string 字段),不要输出任何解释文字。
    句子:{q}
    
    【第三档:约束解码或严格模式】
    同一请求改用严格结构化输出参数(如 strict: true 与 additionalProperties: false),schema 同上。
    句子:{q}

    预期观察:同一批输入上结构失败率应呈阶梯下降:第一档明显大于零、第二档接近零但仍有字段级偏差、第三档为 0。若第三档仍出现非法 JSON,说明该 provider 的严格模式并未在解码期生效,须换实现,或降档并补上重试。

  2. filemarkdown

    查看代码
    记录表:档位 / provider 与模型 / 结构失败率 / 语义正确率 / 输出 token 与延迟 / 是否配了重试兜底
    判据:结构失败率只应随档位上升而下降,语义正确率则可能在最高档下降,两列必须同表记录,不得只看结构通过率。
    迁移检查:把同一 schema 换到另一家 provider 重跑,失败率回升即说明该档位在那里只是提示而非约束。

    预期观察:读者得到一张按档位与 provider 分格的对照表,能看出结构与语义两条曲线的方向相反,并据此为下游选出够用而不浪费的档位。

05证据

主张第三档的现行形态是 API 侧严格模式:schema 内显式声明 strict: true 与 additionalProperties: false,把结构合法性从提示层移到解码层。

分级official

来源S-0014 https://developers.openai.com/api/docs/guides/structured-outputs

原文

展开原文关键句
response_format: { type: "json_schema", json_schema: { name: "math_reasoning", strict: true, schema: { ... "additionalProperties": false } } }

主张严格档有代价且不是越严越好:格式限制本身会降低推理表现,且格式约束越严格退化越大。

分级paper

来源S-0053 https://arxiv.org/abs/2408.02442

原文

展开原文关键句
we observe a significant decline in LLMs reasoning abilities under format restrictions. ... stricter format constraints generally lead to greater performance degradation in reasoning tasks.

主张第三档在实现上落在推理引擎或约束解码库一侧,靠屏蔽非法 token 保证结构正确,因此同一档位的可用性随 provider 而异。

分级official

来源S-0093 https://pypi.org/pypi/xgrammar/0.1.33/json

原文

展开原文关键句
It leverages constrained decoding to ensure 100% structural correctness ... It is the default structured generation backend for most LLM inference engines

06术语

术语三档严格度 Three Tiers of Strictness

界定按约束强度区分的三档做法:自然语言格式要求、模式提示(仅提示结构)、约束解码或 API 级 schema 保证;档位越高结构越可靠,代价与迁移难度也越大。

相关节点—

术语约束解码 Constrained Decoding

界定在采样阶段按文法或 schema 屏蔽不合法的 token 路径,使输出在结构上必然合法;可由推理引擎或库实现,也可由 API 侧保证。

相关节点—

术语校验与修复回路 Validation and Repair Loop

界定对模型输出做结构或语义校验,失败则把校验错误回灌给模型重试,直至通过或达到重试上限;它是松档位必须配的兜底件。

相关节点—

07失效模式

08在本站知识结构中的位置

所属分组
G01确定性输出
依赖深度
第 7 层(同层节点彼此无先后约束)
前置PE-S-01→PE-S-02 本节点→后继PE-S-03

在 交互全景图 中定位本节点。