一个模型在公开榜单上得分更高,并不意味着接入你的程序后一定能减少错误。你的候选项可能有歧义,你的流量可能包含长上下文,业务也可能对一种错误特别敏感。评估决策模型 API,应该从要执行的动作倒推测试。
什么是决策模型 API?
决策模型 API 把上下文和一个明确的问题转成程序可用的判断。例如,在“账单、技术支持、其他”之间选一个类别,判断材料是否满足某项条件,或按有序标准打分。自由文本回答适合解释与创作,固定输出适合路由、筛选和规则组合。两种方式也可以在同一个应用中协作。
在设计测试前,先确认每个问题只表达一个判断。把“是否重要而且紧急并且应该升级处理”拆成几项判断,通常更容易诊断错误;最终是否升级仍由明确的业务规则决定。
第一张表:固定任务和错误代价
以工单分流为例,选项可设为 billing、technical、other。每个类别需要一句包含边界条件的描述。多主题工单到底按主要诉求、最高风险还是多个标签处理,应先确定规则。
| 需要固定的内容 | 建议记录 |
|---|---|
| 数据 | 来源、去重方式、时间范围、中文与英文比例 |
| 参考答案 | 标注规则、歧义处理、人工复核情况 |
| 输入 | 相同上下文、问题描述、候选内容与顺序 |
| 配置 | 模型 ID、测试时间、服务默认设置、是否有图片 |
| 错误成本 | 哪些误判可恢复,哪些必须进入人工复核 |
把调阈值的数据和最终报告成绩的数据分开。先在验证集选择规则,再在保留测试集报告结果;用同一批题反复调到最好,会高估实际效果。
准确率之外:计算混淆矩阵和自动处理覆盖率
假设参考类别为 allow、review、block,仅看总体准确率会掩盖错误方向。将 block 判成 allow 与将 allow 判成 block,可能分别对应危险放行和无害误拦。它们应该单独统计。
如果低置信度请求转人工,应同时报告“有多少请求自动处理”和“自动处理部分有多少出错”。一个只自动处理极少数简单请求的系统,可以有很低的错误率,却不一定节约多少人工。
建议同时保留三组结果:所有请求的任务指标、自动处理覆盖率、自动处理部分的错误率。再按语言、输入长度、候选数量和任务类别分组,寻找平均值掩盖的问题。
概率校准:0.9 不应只看起来很自信
假设一个模型对很多选中的答案都给出约 0.9 的概率,检查这组答案实际是否大约有九成正确,可以帮助判断概率是否适合决策。单个答案的概率本身并不能验证自身是否正确。
ECE 汇总不同概率区间内的预测与观察差距,数值依赖分箱、样本和计算方式。比较两个模型时,应固定这些条件。较低 ECE 也不能单独替代准确率或业务风险指标。
此外,API 的 confidence 可能是由概率分布计算出的统计量,并非选中项概率。以 TypeSafe 的 Choice 定义为例,三个候选中最大概率为 0.6 时,confidence 为 0.4。迁移时应先确认字段含义,再重新选择阈值。TypeSafe confidence 定义
延迟测试:不要把批量摊销写成单题响应
假设一个请求处理 64 个问题,共用时 8 秒,那么摊销是 125 毫秒每题。但是用户仍然等了 8 秒才收到这一批结果。125 毫秒是摊销值,不是单次 HTTP 请求延迟。 此处只是计算示例,不是任何模型的实测。
| 指标 | 回答什么问题 |
|---|---|
| 客户端 P50 / P95 | 用户通常等多久,慢请求会等多久 |
| 成功请求吞吐 | 每秒实际完成多少有效问题 |
| 429、超时与失败率 | 当前负载是否超出可用容量 |
| inference_ms | 服务端提供的推理时长,按接口定义解释 |
| 实际计费用量 | 每个有效完成任务花费多少 |
先测一个问题,再测代表性批量;每种情况分别测试单用户和预期并发。固定完整渲染后的输入规模,记录公共上下文与问题、候选的长度。不要把长输入大批量与短输入单题的数字放在一列直接排名。
Simplex CD 的 inference_ms 记录推理服务端的决策时长,不等同于客户端总耗时。没有该字段时应记录“未知”,不能填零。详细语义以 API 文档 为准。
如何把这套方法用于 Jev、Flash 与 Pro?
先用 Jev 与 Simplex CD 对比 的公开成绩缩小候选范围,再在自己的输入上评测。选择模型时固定显式型号,自动路由留到单独的线上策略测试。记录失败请求,而不是只保留成功样本。
如果 Pro 减少的错误能抵消增加的资源成本,就值得使用;如果 Flash 已达到你的目标,则没必要只因榜单名次选择更重的配置。真正需要比较的是达到同一业务要求的总成本。
常见问题
应该用多大的测试集?
取决于错误频率和你要区分的差异。先覆盖真实业务的重要类别和边界样例;要判断小幅提升或低频错误,需要更多样本和不确定性分析。不要把十几道精选问题当成稳定排名。
0.8 可以直接作为自动执行阈值吗?
不应该直接照搬。先确认它是概率还是 confidence,再在独立验证集上选择阈值。不同操作的后果不同,可以设置不同规则。
公共前缀一定能让批处理变快吗?
不能仅凭请求共享 state 得出结论。实际收益取决于服务如何复用计算、缓存命中和调度,应该比较同一工作量下的端到端耗时及有效吞吐。
准备好一个有参考答案的任务后,可以从 Simplex CD Playground 开始,再保存请求与响应作为可重复的评测输入。