裁判模型 · 准确率优化清单

从 88% 到 90% 的提升方法

面向「视频模型做 caption 质检」的裁判环节。前提锁定:不训练模型、纯推理期优化(System Prompt + 工程链路)、内部提效工具。以下方法按投入产出比从高到低排序 —— 先做前四条,多半在触碰模型能力之前就能拿到大部分收益。

发布于 2026-07-24
734全量测试集
~88当前判错样本(12%)
+15达到90%需修好的条数
0/1对齐标准答案算准确率
一句话原则贯穿全篇:控制单一变量。每次只改一处,跑完立刻能判断这一改动是有效、无效、还是有害。同时改多处,结果好坏都无从归因,方向就会乱。

第一梯队 · 分钟到小时级,先做

1

把 temperature 降到 0

成本 · 分钟级 收益 · 可能白送 1–2 点

先确认裁判模型的采样温度。若 > 0,降到 0 再跑。

温度 > 0 时同一条样本每次判定可能不同,本身就在贡献随机错误;降到 0 后结果可复现,后续所有实验才有干净的对照基准。这是所有其他优化的前提,不做这一步,后面每一轮都在跟噪声较劲。

动作:查配置里的 temperature / top_p,能降 0 就降,重跑一次全量,记下新基线。若已是 0 却仍每轮波动,说明是模型固有非确定性 —— 那第 2 条的多轮分析才真正有意义。
2

建「稳定错误集 + 保护集」双集评测,替代全量跑

成本 · 半天(一次性) 收益 · 迭代提速一个量级

用同一套 prompt 把 12% 错误样本连跑 5 轮,切成两部分:每轮都错的稳定错误集(约 5%、35–40 条),和时错时对的波动集。再从做对的 88% 里分层抽样 150–200 条作为保护集。

此后每轮迭代只跑这约 200 条,2–4 分钟出结果,而非全量 20 分钟。指标也换成更灵敏的两个:开发集修好几条(基线 0%,改好 8 条就是实打实 8 条,无噪声)、保护集掉了几条(基线近 100%,掉 3 条立刻可见)。只有开发集真涨、保护集没掉,才跑一次 734 全量做最终确认。

⚠ 别用「随机抽 70 条估准确率」:要测的是 2 个百分点(≈15 条),70 条样本的 95% 置信区间约 ±7.6% —— 真值 88% 能测出 92%,真值 90% 能测出 84%,根本分不清「生效」还是「运气好」。加速要靠换灵敏指标(数条数),不是靠缩小样本估百分比。
3

对稳定错误集做错误归因分类

成本 · 半天 收益 · 决定后续方向

把稳定错误的每一条按两个维度归类:方向(假阳=该判不可用却判可用 / 假阴=反之)+ 根因。根因通常落在这三类:

① 判定标准理解不一致(漏个次要细节算不算错、数量说错算不算、语义等价但措辞不同算不算)—— prompt 问题;
② 视觉没看清 / 被被测 caption 带偏(锚定偏差) —— 链路问题;
③ 逻辑对齐失误(看清了、标准也懂,但比对时判断出错)—— prompt / 拆链路都能治。

为什么排在改 prompt 之前:根因决定药方。若大头是①,拆链路纯浪费;若大头是②,才该拆链路。先定位病因,再动手,别在没归因时闷头改。这一步的产出同时是后面 few-shot 和 AI 改写的原料来源。
4

版本管理 + 实验记录机制

成本 · 几分钟 收益 · 保住每一分提升不丢失

每个 prompt 版本存独立文件,配一行记录:版本号 | 改了哪一条 | 开发集分 | 保护集分 | 全量分。

「改完反而下降、想退回上一版」是常态。光复制粘贴能退回文件,却退不回「当时那版跑了多少分」—— 于是你永远说不清到底哪一改动带来了那 1.2 个点。有了这份记录,任何时候都能精准回滚到最优版本。

动作:建个 prompt_v1 / v2 … 目录 + 一张 CSV/表格,每跑一版补一行。成本几分钟,是整个迭代的安全绳。

第二梯队 · 有了前四条的产出后再做

5

用稳定错误集重做 few-shot(替换无效示例)

成本 · 小时级 收益 · 中高

「删掉现有 few-shot 后准确率没变」证明的是当前这批 few-shot 无效,不是 few-shot 手段无效。原因通常是:这些例子举的是模型本来就判得对的场景。

真正该进 few-shot 的,是模型稳定判错的那类(正好来自第 2 步的稳定错误集)—— 那才是它确实不会的东西。原则不变:few-shot 只放项目独有、非通识的内容,通识(「北京是中国首都」这类)模型预训练早就会,写进去等于噪声。

动作:从稳定错误集挑最典型的几条(每类根因 1–2 条)做成 few-shot,替换旧的。一次只加/换一条,跑保护集看有没有伤及原本做对的样本。
6

让 AI 反向优化 System Prompt

成本 · 小时级 收益 · 中

把稳定错误集打包(视频/标准答案 + 被测caption + 裁判判定 + 正确判定 + 人工归因)丢给一个强 LLM,让它诊断规律、提出 system prompt 修改建议。prompt 不必人肉逐字写。

AI 擅长从一批错例里归纳共性并转成规则表述,比人凭感觉改更系统。但它一次会给一堆建议 —— 必须约束。

铁律:要求它一次只提一条修改,你改一条、跑一次、记一次。否则单一变量原则当场破功,改完好坏都无从归因。
7

对齐「有错误就不可用」的判定边界

成本 · 需和标注方对齐 收益 · 可能是真正的天花板

若第 3 步归因发现大量错误集中在①「标准理解不一致」,那准确率上不去的根子不在模型能力,而在判定标准本身没有成文、粒度模糊。

漏一个次要细节算不算错?说「两个人」实际三个人算不算错?措辞不同但语义等价算不算错?只要这些边界没定义清楚,人和模型、甚至标注员之间都会不一致 —— 这种分歧无论怎么改 prompt 都消不掉。

动作:把判定细则写成明确条款(带正反例),先塞进 system prompt,再拿去和标注方核对标准答案本身是否自洽。这一步常常比改措辞更能拉分。

第三梯队 · 只在归因支持时才动

8

链路拆分:视频解析 与 LLM 判分 分离

成本 · 改代码 · 数天 收益 · 视错因而定,可能为零

把裁判的两件事拆开:视频模型只看视频出结构化描述(且不喂被测 caption,避免锚定偏差),再由一个纯文本 LLM 比对「独立描述 vs 标准答案 vs 被测 caption」做逻辑判定。

拆链路真正能治的是锚定偏差(裁判带着被测 caption 去看视频,注意力被牵着走)和不可归因(一步出 0/1,分不清错在看不清还是判不准)。但若第 3 步归因显示错误大头是「标准理解不一致」,拆链路一点用没有。

⚠ 两个前置条件缺一不可:① 第 3 步归因确认错因偏向②/③(视觉/逻辑),才值得投入。② 防新坑:裁判独立看视频可能漏掉某细节,下游 LLM 会误判成「被测说错了」,把假阴变假阳 —— 必须让视频侧输出结构化、高召回的细粒度描述而非自由文风一段话。先做数据筛选,再决定要不要拆 —— 顺序反了,拆完错误分布重洗,前面的分析全作废,要做两遍。

推荐执行顺序

先筛数据、再动 prompt、最后才考虑拆链路

  1. 确认并降 temperature 到 0,重设基线(分钟级)
  2. 12% 错误样本跑 5 轮,切出稳定错误集 / 波动集
  3. 稳定错误集做人工归因:假阳/假阴 + 三类根因,找 bad case 共性
  4. 建保护集(分层抽 150–200)+ 实验记录机制
  5. ──── 到这里才有依据决定下面走哪条 ────
  6. 错因偏「标准理解」→ 走 PE 迭代(重做 few-shot / AI 反向改写 / 对齐判定细则)
  7. 错因偏「视觉·锚定」→ 才考虑 链路拆分,并防「漏细节变假阳」的新坑
  8. 候选版本在开发集涨 + 保护集不掉,再跑一次 734 全量确认收官
chengbei.org · 2026-07-24