Skip to content

模型输出的约束与验证

第一部 · 模型能力与边界 · 第3章

撰写日期:2026-08-31

结论

Prompt 可以提高模型做对的概率,但不能承担“绝不能出错”的承诺。凡是涉及结构、权限、身份、数字或外部副作用的输出,都需要模型之外的验证。

模型负责理解和生成候选,确定性机制负责决定候选能不能出门。

1. 先按错误后果分级

错误类型例子处理
可见、可纠正文案风格不合适允许生成,给编辑入口
隐蔽但可恢复摘要漏掉一项引用原文、抽样复核
会污染下游把负面评价识别成投票枚举、置信度、人工确认
有外部副作用发消息、写文件、删除资源权限门禁、预览、显式确认

验证强度应由错误后果决定,而不是由模型看起来多聪明决定。

2. 结构化输出只是第一道门

JSON Schema、固定字段和枚举值能减少解析错误,但不能证明语义正确。一个结果至少需要经过三类检查:

  1. 形状检查:字段、类型、枚举和长度符合契约;
  2. 语义检查:作者不能被推送给自己,负面表达不能被当作偏好;
  3. 权限检查:请求者和目标资源是否允许执行这项动作。

“Prompt 里写了绝不”属于软约束;真正的红线必须在代码或平台权限中再次判断。

3. 给不确定性一个合法出口

强迫模型每次都给答案,会把不确定性伪装成确定。更可靠的契约允许:

  • 空数组:没有够格的候选就不输出;
  • unknown:材料不足,不能判断;
  • 低置信度转人工:不自动进入下游;
  • 引用缺失报错:不能用合理默认值伪装采集失败;
  • 生成失败留队:不静默降级成次品。

4. 用代表性样本做回归

验证 Prompt 或模型时,保留一组真实成功、失败和边界样本。模型、提示或数据源变化后重跑同一组样本,观察:

  • 是否漏掉应该命中的内容;
  • 是否新增不该命中的内容;
  • 失败是否显式暴露;
  • 人工修正成本是否下降。

没有固定样本的“感觉更好了”,无法成为长期产品判断。

相关

MIT License