Agent 质量与生产化 · 模型选型
学习舱 / Agent 质量与生产化 / 模型选型

模型选型与对比实验:从排行榜到自己的任务集

整理中 深度 · 分析 更新 2026-09-22

前置 Prompt 工程

模型选型与对比实验:从排行榜到自己的任务集

把「哪个模型最好」改成「在我的任务与预算下,哪个候选更合适」。前置:提示词工程帮助固定输入契约;本文给出一次可复核的选型流程,不替代Agent 评估与回归对整个运行系统的持续验收。

先从一次选型会议说起

团队要给客服工单增加分类、字段提取与证据不足时的追问功能。候选模型很多,公开排行榜能帮助缩小范围,采购却需要一份贴近实际工作量的结论。

有人拿榜单第一名,有人拿昨天一条回答的截图。两人用的提示词不同,一个开了搜索,一个没有;报价只比输出单价,失败重试和等待时间都没入账。

怎样把这场争论变成一次公平、可重复,而且允许得出「暂时分不出胜负」的实验?

先冻结真实任务与判据,再固定候选版本和条件,重复运行后按任务配对比较,最后在质量门槛内看成本与延迟。排行榜负责找候选,自己的任务集负责做决定。

顺带把「公开排行榜」里最有名的一类说具体:人类盲测竞技场(代表是 LM Arena)——两个匿名模型的回答并排,真人投票选出更好的,按胜率折算 Elo 排名。它测的是「聊起来谁更讨喜」,与你的业务任务分布无关,也出过针对性刷榜的案例——当候选池入口很合适,当验收标准不行。

全景图:一份选型结论怎样产生

比较对象是候选配置,不是一个脱离条件的名字 ① 任务契约② 固定条件③ 配对比较④ 预算内决策 真实输入、分层预先写好成功判据版本、提示词、工具超时、重试与预算每题重复,不挑最好差值与不确定性先过安全质量门再看费用和尾延迟 →→→ 产物:任务快照 + 条件清单 + 原始记录 + 决策说明 同一份试卷只是起点;必须连计时、判卷和失败处理一起固定

图:先看②,它决定③的分数差能否归因于你想比较的变量。

渐进拆解:像试驾一样,把路线和载重固定

试驾不能让一辆车跑平路、另一辆车爬山,再比较油耗。模型实验也是这样:题目是路线,工具与上下文是载重,输出预算是行驶条件。这个类比到这里为止——模型输出还会随机波动,所以相同路线需要重复,而不是只开一次。

① 从业务任务抽样,不从模型擅长的题出发

先收集已经获得使用授权并脱敏的实际工单,保留输入长度、语言、类别与缺失信息这些影响难度的特征;按用户或事件分组拆出开发集与封存测试集,避免同一投诉的改写同时进入两边。两组的分工:

维度开发集封存测试集
用途调提示词只用于最后比较
看过结果能否再调参可以不能;再调参就需要新的封存题

每题写清成功条件:

  • 分类题必须输出允许的类别;
  • 提取题核对工单号和优先级;
  • 信息不足题应该追问,不能猜答案。

再列出关键失败,例如把待核实的扣款说成已经退款——普通分类的平均分不能抵消这种失败。

任务占比也须先定。假设真实流量中分类占六成、提取占三成、追问占一成,就报告按该权重计算的总体分,同时单列每类结果。这个比例只是设计示例,不是行业分布。刻意多采集罕见危险题是合理的,但不能把这个加密采样集的均分伪装成线上成功率。

② 冻结候选配置,先决定比较哪一种公平

固定条件至少逐项记录:

  • 模型完整版本标识;
  • 提供方与端点类型;
  • 实验日期;
  • 提示词和任务集哈希;
  • 输出结构;
  • 工具可用范围;
  • 上下文快照;
  • 采样参数;
  • 推理强度;
  • 输出上限;
  • 超时及重试规则。

服务只给滚动别名时,明确写「无法锁定后台权重」,保存响应中的版本信息;隔周复跑不能无条件视为同一模型。

同条件比较用于回答「只替换模型会怎样」:同一输入、相同工具资料与判法,不给其中一个候选额外检索结果。参数不支持时不要偷偷换成默认值,记录差异并说明实验不再是严格单变量。相同温度也不保证两家供应商具有相同采样行为。

同预算比较用于回答「同样的钱和等待时间能买到什么质量」:允许不同推理强度或提示词,但每个候选的调优试次、费用上限和截止时间一致。调优只能用开发集。这是在比较部署方案,不是证明底座模型天生更强,两种结论不可混写。

③ 重复运行与任务抽样是两种不确定性

同一题运行三次,可以看到答案是否稳定;六道题各跑三次,仍然只有六种任务,不能宣称有十八个独立业务样本。温度为零也不是确定性的合同,后端实现、并发和服务更新都可能造成变化,机制可回看采样原理。

按题保存每轮成功标记,先求每题的平均成功率,再计算同题的候选差值。需要展示区间时,可以按任务编号有放回抽样,每次同时取两家对应的题,再重算差值,这叫配对 bootstrap。若多个题来自同一用户或同一文件,应按那个更高层的独立组抽样,不能假装它们互不相关。

区间跨过零,表示这批数据不足以稳定判断差异方向,不代表两者相等。区间没跨零也不能自动推广到新领域,更不能消除题集偏差。重复次数与任务数没有通用及格线:先做小试验估计差异和波动,再按业务可接受的最小改进决定追加多少独立任务。

同一题跑三次新增三种独立任务观察输出波动,不能扩充覆盖面扩大覆盖面,仍须注意来源相关性③ 重复维度先在题内汇总,再按任务或来源组配对重采样

图:左右两种投入解决不同问题,复制一道题不能变出新业务。

④ 先过门槛,再看代价

三项指标先统一口径:

指标口径注意
成功任务成本全部尝试的费用 ÷ 最终成功任务数,失败与重试照样入账没有成功任务时报告不可计算,不能写零成本
延迟至少区分首个可见内容时间与完整任务完成时间,工单分类通常更关心后者记录端到端计时,包含排队、工具、校验和重试
超时率单独报告超时不从样本里删掉

计费记录保留输入、输出、缓存和推理相关用量,按供应商当日口径折算,不能跨模型拿 token 数直接当价格。并发量、区域、冷暖缓存一致,交错或随机化候选执行顺序,避免早晚高峰只落到某一家。

p95 是排序后靠近最慢端的位置,不是均值加一个固定系数。小样本中它几乎等于最大值,不能当作稳定的容量保证。选型表最终写「关键失败零容忍、质量最低线、费用上限、尾延迟上限」,在满足这些约束的候选中选成本更低或运维更简单的;没有候选过门,就保留人工流程。

动手:用模拟记录先验证比较方法

小程序读者请在电脑浏览器打开下方链接下载,随后在电脑终端运行:

  1. 下载完整离线实验脚本。
  2. 保存为 model-selection.py。
  3. 使用 Python 3 运行(命令见下)。

脚本只用标准库,不读取密钥,不联网、不收费。六个工单式输入和两个候选的每题三次输出都在文件里,读者无需获得作者环境。

python3 model-selection.py

这里是人为构造的模拟 fixture,不是真实模型实测。每轮是独立的模拟请求,没有失败重试;脚本成本分母为成功请求数,不把三轮合成「至少成功一次」的任务。真实流程若一个请求内部重试,须先按请求聚合全部尝试费用再计算成功任务成本。候选名不对应任何产品,延迟与费用单位也是输入数据,不是本机执行耗时或市场报价。脚本实跑只证明聚合与校验方法可运行,不证明某个模型更强。

运行后,候选甲为十四次成功,候选乙为十七次成功,分母各十八。再看分类分项:甲在拒绝猜测的题上失败更多,乙有一次优先级提取错误。先看这些错误能否被业务接受,再看总分;不要在三次输出中只取最好一次,却把它叫单次成功率。

脚本同时打印清单哈希、模拟尾延迟、每成功一次的模拟成本,以及按题配对重采样的差值区间。六道构造题上的区间只是计算演示,不具备真实用户总体推断资格。把甲的一条正确答案改错,再运行,检查分项分数、总体差值和哈希都变化,这是本节的可复现变体。

接入真实模型前,先建立逐调用记录,每条至少含:

  • 任务编号;
  • 轮次;
  • 候选配置哈希;
  • 原始输出;
  • 错误类型;
  • 用量与计时。

接口调用失败必须留在分母中,只有预先约定的基础设施故障排除规则才能剔除,并单独披露数量。保留盲化的人审样本,尤其检查否定句、条件遗漏和格式正确但业务错误的回答。

常见叫法可以这样对齐,避免报告各说各话。

本文叫法其他叫法具体用途
任务契约测试用例、场景定义工单号必须精确相等
固定条件标准化评测、配置快照两家都不许联网搜索
配对比较同题对照同一缺失订单号问题分别作答
预算内决策约束优化、性价比选型先满足超时率上限再比成本

边界与取舍:别把选型写成永久冠军榜

本文的主任务是一次采购或替换决策。Agent 评估与回归解决的是整个 Agent 在提示词、工具、上下文和流程变化后是否退化;它的判法可以复用,但总成绩不能直接归因于模型。若本次同时换了检索器与模型,请称为系统方案对比。

公开榜单并非无用。它提供候选覆盖与外部参照,但题型、提示词、工具条件和数据污染风险可能不同。HELM 在论文中采用标准化场景和多维指标,而不是只给一个准确率;这里复用的是方法思想,不引用旧论文的名次来代表今天的产品。

小团队也不必先建豪华平台。先把真实任务、固定配置、原始记录和复跑脚本保存好,价值通常高于多画一张总榜。上线后继续监测分布漂移,模型滚动更新或业务新增类别时重新选型;预算紧张时,宁可缩小候选数,也不要删掉关键失败题和失败账单。

自测

排行榜领先为什么不能直接决定业务模型选型?

排行榜的任务分布与条件可能不同。先用它筛候选,再从授权脱敏的实际业务中分层抽样,封存测试集、固定判据和关键失败门槛;模型只能在这份任务与条件范围内被比较,不能把工单分类成绩推广为所有领域的冠军。

同条件与同预算比较分别固定什么,怎样记录版本和失败?

同条件尽量只换模型,固定提示词、资料、工具、判法与运行限制;同预算允许候选配置不同,但调优资源与最终费用、时间约束相同。保存版本标识、配置哈希、原始输出、用量、计时及错误;无法锁定后台版本须披露,失败和重试不能从分母与成本中消失。

六道题各跑三次为什么不是十八个独立任务,差值区间怎样解释?

重复只揭示同题输出波动,没有增加任务覆盖。先在题内汇总,再按独立任务或来源组对两家一起重采样;区间跨零说明证据不足,不是证明相等。构造的六题只能演示算法,不能用于真实业务总体推断。

质量更高但更贵更慢时怎样决策,与 Agent 回归有什么区别?

先检查关键失败与最低质量门槛,再比较全部尝试费用除以成功任务数、端到端尾延迟与超时率;预算内无合格候选就不自动上线。选型比较指定条件下的候选配置,Agent 回归则验收整个运行系统的持续变化,不能把后者分数全算到模型头上。

参考与延伸

本节点大纲与自测题(4 个子点 · 4 问)

大纲

  • 业务任务分层、封存测试集与关键失败判据,区别排行榜和 Agent 系统回归
  • 固定模型版本、提示词、工具、条件与预算,记录失败和重试
  • 重复运行与按任务配对重采样,解释统计不确定性
  • 成本、端到端延迟和质量门槛下的选型决策;模拟 fixture 可复现

自测——答不上来就是缺口

  • 排行榜领先为什么不能直接决定业务模型选型?
  • 同条件与同预算比较分别固定什么,怎样记录版本和失败?
  • 六道题各跑三次为什么不是十八个独立任务,差值区间怎样解释?
  • 质量更高但更贵更慢时怎样决策,与 Agent 回归有什么区别?