Demo 里很好,接进流水线就开始崩——通常是输出稳定性的问题。这节给三个手段。
可复现前提: 同一输入重复 50 次,统计格式合规率与内容一致性。脚本 bench/stability。
手段一:结构化输出,不要解析自由文本
能用结构化输出就别用正则解析。我们把一个"输出 JSON"的 prompt 换成工具调用形式的结构化输出后,解析失败率从 6% 降到 0。
正则解析 Markdown 是一切痛苦的来源,我们维护过一个 40 行的解析函数,现在已经删掉了。
手段二:把长度约束写成可检验的形式
差: 简明扼要地总结。 好: 用 2~3 句话总结,总长不超过 120 字。
前者的输出长度在 40600 字之间跳,后者稳定在 90130 字。
手段三:降低温度 + 固定随机种子(如果需要完全幂等)
需要完全可复现的场景(比如评测),温度设 0。但要注意:温度 0 也不保证 100% 幂等,浮点计算顺序会带来微小差异。我们测了 50 次同输入,有 2 次输出有细微差别。
如果你的流程要求严格幂等,唯一可靠的办法是缓存结果,而不是指望模型每次都一样。
实测汇总
| 改动 | 格式合规率 |
|---|---|
| 基线(自由文本 + 正则) | 82% |
| + 明确长度约束 | 88% |
| + 结构化输出 | 99.4% |
| + 温度 0 | 99.4%(无变化) |
温度对格式合规没有帮助——格式问题要用结构约束解决,不是用温度。这是个常见误解。
评论与复现反馈 0
还没有人评论。复现之后回来说一声,对作者很有价值。