主题
结构化输出链路的成功率、延迟和 Token 成本怎样调优?
题型:调优 · 先看首轮质量和错误分布,再优化 repair/retry 放大。
建议回答
我会先建立按任务、Prompt、Schema 和模型版本分组的错误漏斗,区分解析失败、字段校验、跨字段冲突和业务语义失败。优化顺序通常是先修数据契约和 Prompt:删除无用字段,给关键枚举与边界提供清晰说明和少量高质量示例;供应商支持时使用结构化生成;复杂对象拆成“抽取稳定实体—补充关系—整体校验”多个阶段,避免一次输出巨大嵌套 JSON。
之后优化恢复策略:机械错误本地修复,低风险字段定向补全,只有语义整体失败才重新生成;按节点风险选择模型,批量任务控制并发和退避,避免失败风暴。对完全相同的输入、Prompt、Schema 和模型版本可以复用已验证结果,但缓存不能跨版本误用。
关键指标
- 首轮解析率、Schema 通过率、业务校验通过率和关键字段准确率。
- repair 成功率、平均尝试次数、相同错误复发率和最终人工介入率。
- 单个有效对象的 P50/P95 延迟、输入输出 Token 与模型成本。
- 因结构化失败导致的下游阻塞时长和整链重跑放大系数。
关键权衡
- 拆分任务能提高局部可控性,但增加模型调用次数和跨阶段一致性处理。
- 更强模型可能提高首轮通过率,是否更省钱要看每个最终有效结果的总成本。
- 自动容错提高可用性,但过度宽松的类型转换可能掩盖真实数据质量问题。
易错点
- 不要只统计“最终成功率”,它会隐藏多次重试带来的延迟和成本。
- 不要为了提高通过率删除关键业务约束,低质量合法对象比显式失败更危险。