如何用决策模型做 LLM Evals:从阈值调优到概率校准的完整实践
来自 @HamelHusain & @doesdatmaksense 的观察:当 Jev、Decider、Decisions API 等一批新的 “决策模型” 被当作廉价 LLM Judge 用于自动评估时,大多数从业者直接沿用 0.50 的默认阈值从不校验;这篇文章用真实生产数据证明:只要把经典的分类器评估方法论(阈值调优、精确率/召回率权衡、概率校准、成本-性能 Pareto 分析)搬过来,就能免费榨出显著且可量化的性能提升。
https://hamel.dev/blog/posts/decision-model-evals/
背景:一个问题正在悄悄发生
近期涌现了一批决策模型产品,包括 TypeSafe 的 Jev、Perplexity 的 Decider、Liquid 的 d1、Cloudflare 的 Clef、OpenAI 的 Decisions API 等等,它们承诺“快速、廉价的分类”,被视为 LLM Judge 的低成本替代。与 LLM Judge 输出二元的 pass/fail 判断不同,决策模型对每条 trace 输出一个 0–1 的失败概率分数。
问题在于:这些模型的输出分数分布差异很大,而很多人把 0.50 当成天然的分界线。作者用一个极端例子说明这为什么危险:假设某模型给所有失败样本打 0.40、所有通过样本打 0.10;这个模型其实是完美分类器,但在 0.50 阈值下一个失败都抓不到。现实中两个类别的分数分布会重叠,阈值的选择本质上就是精确率与召回率之间的权衡,而正确的权衡点取决于业务场景(报警系统要求两者都 ≥80%;癌症筛查偏重召回;刑事定罪偏重精确率)。
实验设计
· 数据:98 条公寓租赁 AI Agent 的真实生产 trace(61 条已知失败 + 37 条无失败),任务是对宽泛的“是否存在实质性问题”打分。
· 对比对象:五家决策模型,使用等价的评估标准提示词。
· 方法论亮点:分层五折交叉验证,所有模型使用相同的数据切分;阈值在训练折上选择、在留出折上测量;所有调优和校准都复用已保存的分数,零额外模型调用;这意味着整个分析框架的边际成本几乎为零。
· 刻意保留宽泛任务:“任何问题都算”是为了放大模型间差异;实际生产中他们建议每种失败模式一个独立 judge。
四个关键发现
1. 阈值调优:免费且必要的收益。 达标的模型(Perplexity、Liquid d1-ultra、OpenAI)从调优中获益有限,但原本不达标的 Liquid d1 和 Clef Flash 获益明显;说明不调阈值就直接淘汰一个模型,可能会错杀它。
2. 成本-性能的 Pareto 权衡。 Perplexity 最便宜(每 100 次评估 0.82 美分,F1 = 0.79),OpenAI Decisions 最好(F1 = 0.87)但贵约 4.5 倍(3.72 美分)。作者坦承三个点的 Pareto 图只是框架演示,但结论有普适性:更难的评估任务值得为 LLM 付费,这呼应了 Randy Olson 的对比研究(决策模型在分类/路由任务上以低成本打平 LLM,但在知识与推理任务上 LLM 明显领先)。
3. 概率分数未必可信,需要校准。 一个 0.80 的分数应该意味着“类似 trace 中约 80% 确实失败”,但可靠性图(reliability chart)显示部分模型严重失准,Clef Flash 有一组预测失败概率仅 ~8% 的样本,实际失败率高达 60%。Platt scaling(对 log-odds 拟合 sigmoid)修复了三个模型,但 OpenAI 反而变差(Brier 0.159 → 0.164),换成直接对概率拟合才改善到 0.154,这本身是个重要教训:校准方法的选择也会影响结果,必须实测。
4. 提示词仍有提升空间。 一个小型手工实验(把 Jev 的简单提示词换成失败类型清单)就把 F1 从 0.78 提升到 0.80,可见在动用复杂方法论之前,先把评估标准写清楚仍是性价比最高的投入。
作者的实践建议(浓缩版)
1. 先为你的场景设定精确率/召回率的最低门槛,先淘汰达不到的模型;
2. 对比模型之前先调阈值,并选择符合业务目标的权衡;别因为这篇文章用了 F1 就跟着用 F1;
3. 如果要把分数当置信度用,验证校准并测量校准是否真的改善;
4. 综合权衡性能、成本与延迟;
5. 整个过程是迭代的,提示词一改,阈值和校准都可能要重做。
