第 19 课:大模型评测

前一课我们把模型"发出去"服务了,也就能拿到一串跑分。这一课反过来问一件更要命的事:这些数字到底能不能信?一个分数背后藏着四层滤镜——它测的是不是你说的那个能力(构念效度)、答案有没有被背过(数据污染)、答案由谁打分(精确匹配还是 LLM 判官)、分数稳不稳(评测方差)。把四层看穿,你才能回答那个真正的问题:榜上的高分,为什么和我的真实体验对不上。这一课把评测的四个坑算清,最后给一套自建可信评测的流程。

🎯 学完这 6 步你将能够:
① 说清一个跑分数字里混进了哪四层"滤镜"(构念 / 污染 / 打分器 / 方差)
② 用数字算出一分虚高里有多少来自污染、多少来自选项数、多少只是噪声
③ 给自己模型搭一套可信评测:定构念、防污染、校准判官、报置信区间、设发布门禁
🗺 本节推理链(6 步:一个分数要过的四道关——构念 / 污染 / 判官 / 方差——再收到自建评测)
1要回答"这个模型能不能上生产",必须先有一个数字;这就要求先确认这个数字测的到底是不是你以为的那个能力——换掉选项顺序、改掉选项个数、换掉提示模板,同一个模型输出的 logits(模型对每个候选答案打出的原始分数)会不会跟着漂移?先问数字测的是什么。
↓
2即便「先问数字测的是什么」、确认了测量对象,这就要求继续排除最粗暴的一种"测错东西"——测试题早已混进训练的 token 流里,模型靠记忆作答、分数虚高;核心是能检测数据污染,并分清精确污染与改写过的语义污染。题目得干净、没被背过。
↓
3即便「题目得干净、没被背过」,这就要求再盯住下一个变量"谁来判对错"——开放生成没有唯一答案,精确匹配会冤枉语义正确的回答,而语义相似度要靠 embedding、大模型当判官又带着位置、长度、自我偏好的系统性偏差。打分器本身要可信。
↓
4即便「打分器本身要可信」,这就要求再问一层:同一个模型重跑一遍,分数还一样吗?因为题数是有限的,抽样本身就带噪声——差几个点可能只是噪声,不是真差异;若开了 temperature 采样,还会再叠一层生成随机性。分数要稳过噪声。
↓
5既然「分数要稳过噪声」,所以就能解释排行榜与真实体验为什么对不上——榜单是单一聚合分、单一提示,还叠着污染与对齐税,而你的流量分布、你喂给模型的 context、你的场景都不同。榜单不能替代你的场景。
↓
6既然「榜单不能替代你的场景」,这就要求自己建一套:定清构念、用私有/动态集把评测题与训练 token 流隔离、人工金标校准打分器、按需规划样本量、报告置信区间、把"超过基线且区间不重叠"写成发布门禁。自建贴场景的可信评测。
构念效度数据污染LLM-as-judge评测方差置信区间发布门禁
1
榜单上那些分数是怎么来的?——MMLU、GSM8K、HumanEval、Arena 各自在测什么,又凭什么代表能力?
提示:先别盯着谁分高,先问每个榜三个问题——它喂给模型的是什么题?答案由谁来判?换一批题、换一批人来判,名次还会一样吗?把这三问问过一遍,四个榜的差别自己就出来了。
▾
知识背景
跑分的源头是一张张基准(benchmark,就是一份「标准考卷」:一套固定的题加一套固定的判分规则,让不同模型在同样条件下比)。业界最常被引用的四张考卷:MMLU(Hendrycks 等,2020,arXiv:2009.03300)——57 个学科的四选一,考「知识面」;GSM8K(Cobbe 等,2021,arXiv:2110.14168)——约 8.5K 道小学数学应用题,考「多步推理」;HumanEval(Chen 等,2021,arXiv:2107.03374)——164 道手写 Python 题,用 pass@k(指让模型生成 k 次、只要有一次通过测试就算过)判分;Chatbot Arena / LMArena(LMSYS 平台 2023 上线、论文 arXiv:2403.04132 为 2024)——真人两两盲投,用 Bradley-Terry(BT)模型估计实力并排名——Elo 只是同类积分制的直观类比(赢强者涨分多、输弱者掉分多),Arena 实际用的是 BT 估计。四张考卷的题、判法、数据来源完全不同——所以看到一个分数,先问:这是哪张考卷?

上一课我们把模型「发出去」服务了,服务端会吐出一串跑分。这一张先回到跑分的源头:这些数字各自是从哪张考卷里来的、由谁来判。

因为「榜单上的分数」其实不是同一种东西——它是四张完全不同的考卷。就像学校里「语文 90 分、数学 60 分」,你不会直接说「语文比数学强」——两张卷子的题和判分方式都不一样。看榜要连问三件事:① 这张考卷喂给模型的是什么题(四选一 / 要写完整步骤 / 要跑代码 / 开放对话)?② 答案由谁来判(对选项 / 对数值 / 跑单元测试 / 真人投票)?③ 那它凭什么代表「能力」——换个问法还算数吗?这正是本课的主题构念效度。所以下面先把四张考卷摆在一起,再各算一笔账。

最常见的误读,是把「一次跑出的最高分」当成能力:同一个模型换个随机种子重跑,分数就会抖;而像 HumanEval 这种允许「生成 k 次、过一次算过」的指标,k 一大分数几乎必然逼近满分(单次通过率 p=0.3 时,pass@100 已 ≈ 100%)。所以看分必须先问:这是跑了几次的读数?

🧮 第一笔账:四张考卷各测什么、各含多少「非能力」成分
Step 1:四个最有名的榜,各自在测什么
榜(基准)喂给模型的题谁来判测的是什么一手来源
MMLU57 个学科的四选一(约 1.4 万题)对选项字母知识面arXiv:2009.03300
GSM8K约 8.5K 道小学数学应用题对最终数值多步推理arXiv:2110.14168
HumanEval164 道手写 Python 题跑隐藏单元测试(pass@k)代码功能正确性arXiv:2107.03374
Chatbot Arena真实用户随便问的题真人两两盲投(BT 估计)人更喜欢哪个arXiv:2403.04132
读法:四张考卷的数字根本不在一个坐标系里——MMLU 是正确率百分比、GSM8K 是正确率百分比、HumanEval 是 pass@k(生成 k 次里过一次就算过)、Arena 是无量纲的 BT 积分。所以第一步永远是先认出这是哪张考卷,再谈分数高低。
Step 2:MMLU 的随机猜测基线,能白送多少分
项数值
选项个数4
纯随机猜的期望正确率 1 ÷ 425%
设某模型 5-shot 得分(示例值)70%
高出随机基线70 − 25 = 45 个百分点
相对基线倍数45 ÷ 25 = 1.8 倍
算术:MMLU 判分时,模型在 A/B/C/D 四个选项上各打一个分(logits,模型给每个候选答案打出的原始分数),再取最高的那个作答。四选一时,模型一题不会、纯靠猜,期望也有 25% 正确率。若某模型 5-shot 拿 70%,减去 25% 的猜测基线,真正「超过瞎猜」的只有 45 个百分点。也就是说 MMLU 分数里天然含一段「蒙对分」——选项越多蒙对分越少(这正是后来 MMLU-Pro 把选项扩到 10 个的理由,下一张卡片展开)。这里 70% 是示例数字,仅示范算法,不指代任何具体模型。
Step 3:HumanEval 的 pass@k,到底按哪个公式报
项数值 / 定义
每题生成样本数 n(Codex 论文)200
论文用的无偏估计式pass@k = 1 − C(n−c, k) / C(n, k)(c = 通过的样本数)
单题 c = 0(一次都没做对)任意 k 都 = 0
Codex 的 pass@128.8%
Codex 的 pass@10070.2%
算术:HumanEval 论文(arXiv:2107.03374)对每道题生成 n = 200 个样本、数出其中通过单元测试的 c 个,用无偏估计 pass@k = 1 − C(n−c, k) / C(n, k) 算该题的通过率,再对所有题求平均。它不是把全部题混在一起、用单次通过率 p 套 1 − (1−p)^k——那样算 p = 0.288 时 pass@100 会趋近 100%,与论文的 70.2% 对不上。差别在于论文是逐题算再平均:有些题模型一次都没做对(c = 0),k 再大贡献也是 0。论文里 Codex 报告 pass@1 = 28.8%、pass@100 = 70.2%——同一模型两种 k 的读数差一倍多,但都远未到满分。所以报 HumanEval 分数必须带上 k,也要说清用的是哪个公式。
🎯 关键认知

每张考卷都自带一个可被刷爆点,而它们都指向本课主题构念效度(这个测量,真的在测它声称的那件事吗?):
① MMLU:四选一有 25% 的猜测基线,分数里含「蒙对分」,考的是知识面,却掺了点排除法与运气。
② GSM8K / HumanEval:题目公开且发布于多年前,很可能已进训练语料——一旦靠记忆作答,分数就系统性虚高(数据污染,第 2 张卡片展开)。
③ Arena:分数来自真人投票,测的是「人更喜欢哪个」,会受投票人群(偏英语、技术用户)与「更长、排版更花哨」的风格偏好影响——它测的不是「谁更会做」(判官偏差在第 3 张卡片展开)。
所以看榜的顺序永远是:先认出是哪张考卷 → 再问它可能被什么刷高 → 最后才看分数。

AI 助教
👋 对「榜单分数是怎么来的」有疑问?比如「MMLU 和 GSM8K 到底各测什么」「pass@k 为什么 k 越大分数越高」?

报出基准名,我帮你拆它的题型、判分方式和可能被刷高的点。
2
如果测试题早就混进了训练语料,为什么这个分数会系统性虚高?
提示:把测试集里的题分成"模型训练时见过"和"没见过"两组,分别估一下正确率,再看合起来的总分。
▾
知识背景
大模型在网络规模的语料上训练,而基准题集也来自公开网络——于是测试题可能早在训练时就被读过,这叫数据污染(data contamination)。系统综述《Are LLM Benchmarks Already Contaminated?》(Nourbakhsh 等,GEM 2026,ACL)把污染分四层(精确 / 句法 / 语义 / 任务级),梳理了五类检测方法,并给出污染导致的分数虚高区间约 6%–40%(随基准与设定而异)。NVIDIA 的 CoDeC(Zawalski 等,arXiv:2510.27055,ICLR 2026)提供了一种黑盒检测:给模型加同分布的上下文的例子,被记忆过的数据置信度反而下降。

上一张卡片拆开了分数里的"格式附加分"。这一张拆更隐蔽的一层:答案可能不是推出来的,是背出来的。

因为如果某道测试题(或它的改写版)出现在训练语料里,模型见到它时走的是"回忆"而不是"推理"——就像考前泄题:分数高不代表会,只代表见过。这类污染会系统性地把分数往上抬:那些看过的 token 序列已在训练里固化,模型不再需要现推;且不同模型被抬的幅度不同,于是"榜上谁高"就失去了可比性。所以下面先算"污染能让总分虚高多少",再看"怎么把它揪出来"。

更自然的做法是拿公开基准直接测、直接信总分——但题目公开且发布多年,很可能早已进了训练语料:靠记忆答对,卷面看着涨了几分,能力却一点没变(下一段的算例里,仅 20% 的题被见过就能白涨 5 分)。

🧮 第二笔账:污染能把分数抬高多少(占比与正确率为示意值)
Step 1:20% 的题被见过,总分虚高多少
组占比正确率贡献
训练时见过(靠记忆)20%95%0.2 × 95 = 19.0
没见过(真实推理)80%70%0.8 × 70 = 56.0
卷面总分100%—75.0
算术:0.2 × 95 + 0.8 × 70 = 19 + 56 = 75.0。但模型的真实能力只有 70%(没见过的那部分的正确率)——中间 5 分全是"背过"带来的虚高。
Step 2:污染比例更高时,虚高被放大多倍
污染的题占比卷面总分虚高(绝对分)
20%0.2×95 + 0.8×70 = 75.0+5.0
40%0.4×95 + 0.6×70 = 80.0+10.0
算术:污染比例从 20% 升到 40%,虚高从 5 分翻到 10 分。这还只是"精确污染";如果算上改写过的语义污染,综述给出的虚高区间可以到 40%——足以让"能力相当"的两个模型在榜上拉开一个身位。
Step 3:怎么把污染揪出来
污染层级典型检测能不能抓到
精确(题目原文照抄)n-gram(连续 n 个词的片段)重合 / 字符串匹配能
句法 / 语义(改写过)字符串匹配失效抓不到
黑盒检测(如 CoDeC)加同分布上下文看置信度可,论文自报 99.9% 数据集级 AUC(判别能力指标,1 为完美区分)
算术直觉:字符串匹配只能抓"原样照抄"的精确污染;一旦题目被改写,重合就抓不到。CoDeC 换了个思路——给模型喂同分布的例子,若它本来就背过,这些例子只会干扰记忆、让置信度下降;靠这个信号做数据集级判别,论文自报 AUC 达 99.9%。
🎯 关键认知

污染不是"作弊被抓",而是评测的前提被悄悄破坏:你以为在测推理,其实在测记忆。防污染最稳的办法不是事后检测,而是事前隔离——用私有题集、动态生成题、或按时间切分(训练截止之后才出现的题)。检测是补救,隔离才是设计。

AI 助教
👋 对数据污染有疑问?比如「怎么知道自己踩没踩污染」「改写过的题还能检出吗」?

说清你的评测集来源与模型训练时间,我帮你判断污染风险。
3
开放生成没有唯一标准答案,凭什么说某个回答"更好"?
提示:先问"谁来判"——是字符串比对、是语义相似度,还是请另一个大模型当裁判?再问这个裁判自己有没有偏心。
▾
知识背景
选择题可以对答案,但"写一段客服回复""总结这篇文章"没有唯一正确答案。常见打分器有:精确匹配(EM,答案必须逐字一致)、ROUGE / BLEU(看词重叠)、语义相似度(如 BERTScore,用词向量算两句在语义上像不像)、以及把强模型当裁判的 LLM-as-a-judge。MT-Bench(Zheng 等,arXiv:2306.05685,NeurIPS 2023)系统检验了 LLM 判官:强模型(GPT-4)与人类判断的一致率超过 80%(其中 pairwise 两两对比设定下 GPT-4↔人类达 85%,甚至高于人类之间 81% 的一致率),但同时暴露了位置偏差、冗长偏差、自我偏好三类系统性偏差。

上一张卡片保证了题目干净。这一张处理下一个变量:同样的回答,由谁来判分。

因为开放生成没有唯一答案,打分器就成了评测的一部分。精确匹配最省事,但它只认逐字相同——就像判作文只数"和范文重复了几个字",写得更好但用词不同的反而被判错。所以工业界转向 LLM-as-a-judge(请强模型当裁判)。可裁判会偏心:它偏爱排在前面的答案(位置偏差)、偏爱更长的答案(冗长偏差)、还偏爱自己模型家族写的答案(自我偏好)——而 Semantic 相似度这类指标靠 embedding 比对,也各自有盲区。于是下面把这三种偏差各自量化一次。

更自然的做法是把「答对」定义成「和参考答案逐字相同」(精确匹配)——但这只认逐字一致:100 条回答里若有 30 条意思对、说法不同,它们会被全部判错,分数上限凭空少 30 个点。开放任务上,「判对错」本身就比「算对错」难。

🧮 第三笔账:打分器的三种系统性偏差
Step 1:精确匹配会冤枉多少"对的回答"
项数值
总题数100
语义正确但表述不同的回答30 条
EM 只认逐字一致,判对的70 条
被低估30 个点(示意)
算术示意:100 题里若有 30 条回答"意思对、说法不同",EM 会把它们全判错 → 分数上限只剩 70,凭空低估 30 个点。所以开放任务上"判对错"比"算对错"难得多。
Step 2:位置偏差——把 A/B 换个位置,判决会翻转
项数值
MT-Bench 论文里 GPT-4 判官的换序一致性约 65%
即换序后判决改变的比例 1 − 0.65约 35%
每 100 对里会改判的约 35 对
算术:1 − 0.65 = 约 35%——每 100 对回答里约 35 对,只要把两个答案的左右位置对调,GPT-4 判官的胜者就变了。口径:这个"约 65% 换序一致性"来自 MT-Bench 论文(arXiv:2306.05685)对 GPT-4 判官的实测。解法是标准做法:每一对正反各判一次再平均,把翻转记为平局(MT-Bench 约定)。
Step 3:冗长偏差与自我偏好
偏差论文报告
冗长偏差(偏好更长的答案)判官与人类都偏好更长的回答(GPT-4 尤甚)
自我偏好(偏向自己家族的答案)GPT-4 约 10%、Claude-v1 约 25%
口径:冗长偏差与自我偏好均出自 MT-Bench 论文(arXiv:2306.05685)——判官倾向给更长的回答更高分;让不同家族的判官打分时,GPT-4 判官偏向自己家族答案的比例约 10%、Claude-v1 约 25%。所以不能让模型评自己家族;跨家族评测时也要做长度校正。
🎯 关键认知

打分器不是中立的尺子,而是评测的一部分。用 LLM 当判官前,必须做三件事:①换序取平均(消位置偏差)、②长度校正(消冗长偏差)、③避开自我评测(消自我偏好),并用一批人工金标校准它到底准不准(下一张卡片讲样本量,最后一张讲校准)。

AI 助教
👋 对打分器有疑问?比如「EM 和 LLM 判官该用哪个」「位置偏差怎么修」?

说清你的任务类型(分类/生成/对话),我帮你选打分器并列出要校正的偏差。
4
跑三遍分数差了几个点,这算"真的更好"还是只是运气?
提示:分数是"有限道题里答对的比例",本质是一次抽样。抽样就有标准误——把题数 n 和正确率 p 代进去算。
▾
知识背景
一个基准分数,本质是"从"所有可能题目"里抽了 n 道、答对 p 比例"——它是一次抽样估计,带抽样误差。比例的标准误是 SE = √(p(1−p)/n),95% 置信区间约为 p ± 1.96×SE。这就是为什么论文里报基准分常附置信区间或多次运行的方差,而不是一个孤零零的数字。

上一张卡片解决了"判官偏心"。这一张处理最后一层随机性:就算判官完全公正,分数本身也不稳。

因为你不可能把所有可能的题都考一遍,只能抽一部分——抽到的题偏容易还是偏难,直接决定分数。就像只随机抽查 20 个客户的满意度去代表全公司:抽到谁,结果就差一截。所以"模型 A 比 B 高 2 分"很可能只是抽样运气。所以下面用标准误公式,把"差几个点才算真差异"算出来。

🧮 第四笔账:差几个点才算真实差异
Step 1:1000 道题时,噪声有多大
项数值
题数 n1000
正确率 p(取最坏情况)0.5
标准误 SE = √(0.5×0.5/1000)1.58%
95% 区间半宽 = 1.96 × 1.58%±3.1%
算术:√(0.25/1000) = 1.58%,95% 置信区间 ≈ ±3.1%。两个模型各 1000 题比较时,差值要大于约 6.2 个点才谈得上"真实差异"——小于它,两个区间还重叠着。(这里假设用贪心解码;若开了 temperature 采样,还会叠一层生成随机性,噪声更大。)
Step 2:题数缩到 100,噪声翻数倍
题数 nSE = √(0.25/n)95% 区间半宽差 < 多少不可区分
10001.58%±3.1%约 6.2 点
1005.0%±9.8%约 19.6 点
算术:n=100 时 SE = √(0.25/100) = 5.0%,95% 区间 ±9.8% → 差不到约 19.6 点都是噪声。这解释了小基准(几百题)为什么"榜位天天变":不是模型在变,是抽样在抖。
Step 3:想分辨特定差异,需要多少题
要分辨的差异 Δ所需题数 n ≈ 4×(1.96/Δ)²×p(1−p),p=0.5 → n ≈ (1.96/Δ)²
5 个点(1.96/0.05)² ≈ 1,537 题
3 个点(1.96/0.03)² ≈ 4,268 题
算术:口径与 Step 1/2 完全一致——要求两条 95% 区间不重叠(即 2×1.96×SE ≤ Δ),把 SE=√(p(1−p)/n) 代进去就得到 n ≈ 4×(1.96/Δ)²×p(1−p);p=0.5 最坏时 (1.96/Δ)²。想分辨 5 个点要 1,537 题、3 个点要 4,268 题(自检:n=1000 时 (1.96/√1000) ≈ 6.2%,与 Step 1 对上)。所以"题数"不是随手定的,而是由你要检测的最小差异(和"两区间不重叠"这个判据)倒推出来的。
🎯 关键认知

"跑三遍差几个点"这个问题的答案不是一个数,而是一条公式:n 越小、p 越接近 0.5,噪声越大。凡是要下"谁更强"的结论,先问三件事——题数多少、区间多宽、两个区间有没有重叠。没有置信区间的排名,本质上是在比较两团噪声。

AI 助教
👋 对评测方差有疑问?比如「差 2 分算不算提升」「要多少题才够」?

报出题数与正确率,我帮你算标准误、置信区间与最小可分辨差异。
5
排行榜上 A 比 B 高,为什么我换成自己的数据一测就反过来了?
提示:榜单是一个"所有领域等权相加"的单分。先算一下:如果按你的真实流量分布给各领域加权,排序会不会变?
▾
知识背景
多数排行榜把 MMLU 这类基准的各子领域做等权平均,压成一个单分再排名。但真实业务里,各领域的流量占比差异极大——你 70% 的请求可能都在代码和客服上,而榜单给数学和通用知识同样的权重。MT-Bench(arXiv:2306.05685)还指出另一种失配:对齐(RLHF,即用人类偏好数据反过来调整模型)后的模型在人类偏好上大幅领先基座,但传统基准(MMLU 与 HELM,后者是多场景多指标的统一评测套件)几乎区分不出来,这被称为对齐税——榜单测的"知识",测不到你真正在意的"有用性"。

上一张卡片让"差几个点才算真差异"变得可算。这一张用它来解释那个最普遍的困惑:榜单选出来的模型,用起来却不如人意。

因为榜单做了一次"等权平均"的聚合,而你的业务从来不是等权的——就像按"全国平均气温"决定今天穿什么,你在哈尔滨就该棉袄、在三亚就该短袖。平均分掩盖了分布:你的流量分布、你喂给模型的 context、你的领域占比,恰恰是榜单看不见的那部分。所以下面用一个具体算例,演示"等权排序 A 更高、按你流量加权后 B 反超"。

更自然的做法是照榜单名次选模型——但榜单把各领域等权平均,你的流量却可能 70% 压在代码与客服上:等权下领先 5.5 分的模型,换一组权重后会以 0.8 分被反超。

🧮 第五笔账:等权榜单 vs 你的流量加权(各领域分数与流量为示意值)
Step 1:榜单的等权平均
领域模型 A模型 B
代码7082
客服7480
通用知识9072
数学9270
等权平均(70+74+90+92)/4 = 81.5(82+80+72+70)/4 = 76.0
算术:等权平均下 A = 81.5、B = 76.0 → 榜单把 A 排在 B 前面,领先 5.5 分。
Step 2:按你的真实流量加权,排序反过来
领域你的流量占比A 贡献B 贡献
代码40%0.4×70 = 28.00.4×82 = 32.8
客服30%0.3×74 = 22.20.3×80 = 24.0
通用知识20%0.2×90 = 18.00.2×72 = 14.4
数学10%0.1×92 = 9.20.1×70 = 7.0
加权总分100%77.478.2
算术:按你的流量加权后 A = 77.4、B = 78.2 → B 反超。同一个榜单、同一组分数,只是换了权重,"谁更强"就翻转了——因为你的场景 70% 的流量压在代码与客服上,而这两项 B 全面领先。
Step 3:而且这 0.8 分的差距还在噪声里
项数值
加权后 A / B 差78.2 − 77.4 = 0.8 分
1000 题时的可分辨阈值(承上卡)约 6.2 分
结论0.8 < 6.2 → 不可区分
算术:0.8 分远小于 1000 题时的阈值 6.2 分 → 这个"反超"本身也在噪声里。口径说明:6.2 分取自第 4 张卡片的单基准简算(n=1000、p≈0.5 时两区间不重叠的阈值);把四个领域加权合成后样本量更大、噪声会更小,但量级一致——因此 0.8 分仍不足以支撑"谁更强"的结论。正确做法不是换一个榜,而是在你自己的领域集上、用足够多的题、同一提示,独立评一次。
🎯 关键认知

榜单失配有三重原因:①等权聚合掩盖了分布(你的流量不是等权的)、②对齐税(榜测知识、不测有用性)、③污染与噪声叠加。结论:榜单只能当"初筛",不能当选型依据。选型的最后一步永远是你自己领域上的评测——这正是下一张卡片要给的流程。

AI 助教
👋 对榜单失配有疑问?比如「为什么榜单和我体验不符」「怎么把自己的场景折进评测」?

说说你的领域分布与候选模型,我帮你算加权后的排序。
6
怎样给自己模型建一套不被公开榜单牵着走的可信评测?
提示:把前面五张卡片各当成一道"检查关",逐关问自己"这一关不通过会怎样";再想清楚两个数字——多少题才够、什么样才算通过。
▾
知识背景
一套可信的自建评测是一条流水线:定义构念 → 建贴场景的题集 → 防污染(私有集 / 动态生成 / 时间切分)→ 选并校准打分器(用人工金标抽样比对)→ 规划样本量、报告置信区间 → 把"提升多少才放行"写成发布门禁。这套流程的每一环都对应前五张卡片拆过的一个坑。

上一张卡片说明榜单不能替代你的场景。这一张把前面所有结论收成一套你能立刻搭起来的流程。

因为可信评测的每一步都是在堵一个具体的坑:堵"测错东西"就写清构念、堵"背过答案"就用私有集(把评测题与训练 token 流彻底隔开)、堵"判官偏心"就人工金标校准、堵"噪声当提升"就报置信区间。就像上飞机前的检查清单——单看每一项都很小,但漏掉任何一项都可能让结论失效。所以下面把最关键的三步——样本量、判官校准、发布门禁——各算一个数。

🧮 第六笔账:自建评测的三个关键数
Step 1:按"要分辨的最小差异"定题数
要分辨的差异所需题数适用
5 个点≈ 1,537 题粗筛
3 个点≈ 4,268 题上线决策
算术:承第 4 张卡片的公式 n ≈ 4×(1.96/Δ)²×p(1−p)(两区间不重叠口径;p=0.5 → n ≈ (1.96/Δ)²)。先定"我要能看出几个点的差异",再倒推题数——想看出 3 个点就得 4,000 题量级;题数不足,结论永远泡在噪声里。
Step 2:用人工金标校准打分器(判官准不准)
项数值
抽检比对条数200 条
判官与人工一致条数156 条
一致率156 ÷ 200 = 78%(示意)
算术示意:抽 200 条人工金标,若判官只一致 156 条 = 78%,说明这个判官还不足以直接下决策,要先修(换序取平均、长度校正、换更强判官或集成多个判官)再上线。校准这一步,是把"判官可信"从口号变成读数。
Step 3:把结论写成发布门禁
门禁条款要求
同一条件下比同一私有集、同一提示模板、同一解码参数
提升要过噪声相对基线 ≥3 个点 且 95% 区间不重叠(3 点阈值对应约 4,268 题,题数不足就改用 5 点门槛)
报告口径分数 ± 95%CI + 题数 + 提示版本 + 日期
算术化:把"看起来更好"翻译成可执行条件——提升 ≥3 个点且两个 95% 区间不重叠才算通过。门槛要与题数匹配:这条 3 点门槛按两区间不重叠口径需要约 4,268 题;若你的私有集只有几百题,就把门槛放宽到 5 点(约 1,537 题)或改用配对比较,否则门禁永远通不过。这样每次上线都有可复现的判据,而不是靠感觉。
🎯 关键认知

到此,"训练与推理工程"这条线收口——从怎么训、怎么省、怎么调、怎么发,到怎么证明它真的变好了。评测不是训练结束后的一个动作,而是贯穿始终的一条门禁。下一部分我们进入 Agent 工程:从"一次问答"到"一次循环",那会带来全新的评测对象——不再是一个答案,而是一条轨迹(归第 25 课)。

AI 助教
👋 对自建评测有疑问?比如「私有集怎么建」「判官怎么校准」「门禁阈值怎么定」?

说清你的任务与决策场景,我帮你把评测流水线列出来。