评测工程的范式:从基准分数到产品级度量体系
第 1 章 评测工程的范式:从基准分数到产品级度量体系
一台 GLUE(General Language Understanding Evaluation,综合语言理解评测)得分 87.3 的客服 NLU(Natural Language Understanding,自然语言理解)模型,在产线 OOC(Out-of-Collection,未登录分布)场景中准确率仅为 62%;一份 MMLU(Massive Multitask Language Understanding,大规模多任务语言理解)五子科目几乎满分的前沿模型,在客户真实工单中的可解决率却落后于六个月前的中等规模基线。这两组数字之间的鸿沟不是噪声,而是当前 AI 评测范式的结构性裂缝。当模型能力越过了静态基准的可测边界,传统「一次测试、一个分数」的范式就再也撑不起「这个 AI 究竟能不能用」这一朴素问题。本章要回答的,正是在这一拐点上「评测」一词应当如何被重新工程化。
1.1 静态基准的能力天花板与「评测通胀」
1.1.1 从 ImageNet 到 MMLU:基准的兴衰曲线
回顾过去十年的 AI 评测史,可以看到一条清晰的「基准生命周期」曲线:诞生 → 区分度上升 → 饱和 → 失真 → 退役。ImageNet ILSVRC 在 2012 年的 top-5 错误率还有 16.4%,到 2017 年已降至 2.25%,此后几乎所有提交均低于 5%,基准事实上已失去对前沿模型的区分能力。MMLU 在 2021 年发布时,GPT-3 的得分约为 43.9%,到 2024 年 GPT-4、Claude-3 Opus、Gemini 1.5 Pro 均已突破 86%,五子科目中的多数已逼近或触及 95% 的饱和带。SQuAD、Flickr30K、SuperGLUE 等基准,都经历了类似甚至更快的饱和过程。
这条曲线背后隐藏着三个相互叠加的失效机制:
1. 能力饱和(Saturation):当模型在多数项目上的正确概率接近 1 时,测试题目对模型而言已退化为「几乎确定性事件」,信息熵 $H(X) = -p\log p - (1-p)\log(1-p)$ 趋近于 0。基准对模型的区分力也随之坍塌。 2. 分布漂移(Distribution Shift):训练集与测试集之间的协变量偏移 $P_{\text{train}}(X) \neq P_{\text{test}}(X)$ 会随着时间放大。一个 2020 年构建的 NLP 基准,到 2024 年面对的真实语料在话题分布、口语化程度、代码片段占比等方面已发生根本变化。 3. 数据污染(Contamination):当训练语料与评测语料重叠,分数便不再是「能力指标」而是「记忆指标」。多个第三方研究团队(包括 Sutton、Zhao 等)已经证明 MMLU、HumanEval、GSM8K 等热门基准存在不同程度的污染,污染项比例从 4% 到 47% 不等。
这三者叠加催生了本书所谓的「评测通胀」(Evaluation Inflation):基准分数不断攀升,但与下游任务表现的相关性反而下降。形式化地说,若令 $S_b$ 为基准分数、$S_p$ 为生产表现,则传统假设 $S_p \approx \alpha \cdot S_b + \beta$ 在能力前沿区域被破坏,更准确的描述是 $S_p = f(S_b) + \epsilon$,其中 $f$ 在高分段呈现明显的递减斜率甚至反转。
1.1.2 GPT-4、Claude-3、Gemini 的「刷分—能力」对照案例
为了将上述抽象判断落地,我们以三个公开案例做对照分析(数据综合自各厂商技术报告与第三方独立评测,如 Stanford CRFM HELM、LMSYS Chatbot Arena、Patronus AI Lynx 等):
- **GPT-4 vs GPT-4 Turbo**:在 MMLU 上,GPT-4 报告 86.4%,GPT-4 Turbo 报告略低(86.5% 区间);但 LMSYS Elo Arena 的人工盲评胜率显示 Turbo 版本相对原版有约 8% 的下降;在 Patronus Lynx 的幻觉检测上,GPT-4 Turbo 幻觉率从约 1.8% 上升到 3.2%。基准不变,能力下降,说明 MMLU 在高分段已无法捕捉这一差异。
- **Claude-3 Opus vs Claude-3.5 Sonnet**:基准上 Opus 在 BIG-Bench-Hard(BBH)上得分约 86.8%,3.5 Sonnet 为约 93%,提升明显;但在内部 SWE-bench Verified(软件工程真实任务)上,3.5 Sonnet 反而较 Opus 高出近 22 个百分点,提示 BBH 对「真实工程能力」几乎是无信息量指标。
- **Gemini 1.5 Pro vs Gemini 1.0 Ultra**:MMLU 分数相近(均在 85% 区间),但 Needle-in-a-Haystack 长上下文检索任务上 1.5 Pro(1M tokens)准确率较 1.0 Ultra 提升超过 30%,揭示基准覆盖的「上下文维度」严重不足。
这些案例的共同点在于:当基准饱和到 90% 区间时,1–2 个百分点的差异已经没有任何现实意义,但厂商和媒体仍在围绕这些差异进行排名报道。这正是「评测通胀」的具象化:分数的语义负载从「能力估计」漂移到了「营销信号」。
1.1.3 为什么基准会「通胀」
把视角从工程切换到生态,可以发现三个驱动力:
- **竞争的同质化**:当所有参与者都在相同数据上训练相同目标函数,基准本质上度量的是「谁拥有更多算力 + 更好的数据清洗」,而不是「谁拥有更好的能力建模」。
- **可重复性的诱惑**:静态基准最大的优点是「可重复」,而最大的缺点也是「只可重复」。当组织把 OKR(Objectives and Key Results,目标与关键成果)绑死在基准分数上时,整个评估管道都会被锁定在「刷分」这一目标函数上。
- **学术—工业的耦合失衡**:学术界以基准作为成果载体,工业界以业务 KPI(Key Performance Indicators,关键绩效指标)作为唯一标尺。两者之间本应存在「产品级评测体系」这一中间层,但这一层长期缺位,导致上游基准与下游表现脱节。
1.2 信息论视角:单次采样指标的熵界局限
1.2.1 点估计的根本问题
绝大多数公开基准给出的分数是一个「点估计」——例如 86.4%。但任何严肃的统计学家都知道,单个数字背后必然有一个未报告的置信区间。在大语言模型(LLM)评测中,影响置信区间宽度的因素包括:
- **题目的可变性**:MMLU 包含 14,042 道四选一题目,对于单个模型,其正确率的样本标准误为 $\text{SE} = \sqrt{p(1-p)/n}$。当 $p = 0.86$、$n = 14042$ 时,$\text{SE} \approx 0.0029$,即 95% 置信区间约为 $[85.4\%, 87.4\%]$。但这是在「题目之间独立且同分布」这一假设下的结果,而该假设在 LLM 评测中几乎不成立。
- **采样的随机性**:对于生成式任务,同一题目在不同温度(temperature)、top-$p$、seed 下会产生多个不同回答。LMSYS、AlpacaEval 等榜单普遍使用温度 0.7 的单次采样,这意味着报告中「87.2%」实际上可能跨越 ±3 个百分点的隐含方差。
- **Prompt 的敏感性**:同一题目改写 prompt(CoT / non-CoT / few-shot / zero-shot)的不同组合,可以让同一模型的得分变化 5–15 个百分点。
把这三个不确定性源叠加起来,单次评测的真实置信区间往往远大于厂商所暗示的 ±0.1%。我们应当把每个基准分数视为 $S = \hat{S} + \epsilon$,其中 $\epsilon$ 的方差在多数情况下被低估了 1–2 个数量级。
1.2.2 互信息视角:基准与生产之间的耦合度量
更深刻地,从信息论角度出发,一个评测是否「有效」,本质上是看它与生产表现之间的互信息 $I(S_b; S_p)$。若两者的互信息趋近于 0,意味着基准分数完全无法预测生产表现;趋近于 $H(S_p)$ 则意味着基准完全决定了生产表现。理想的评测应当使 $I(S_b; S_p)$ 尽可能接近 $H(S_p)$。
但在实际工业系统中,$I(S_b; S_p)$ 通常远低于 $H(S_p)$。我们在若干客户案例中观察到,仅有约 30–55% 的生产表现方差可被静态基准分数解释($R^2$ 在 0.3–0.55 之间)。剩余方差来自:
- **任务结构差异**:基准题目的「标准答案模式」与产线「开放式应对」之间的结构差距。
- **交互动态**:客服、写作、编程辅助等任务本质上是多轮交互,静态单轮基准无法捕获上下文依赖。
- **用户异质性**:不同用户群体在同一任务上的成功标准不同,基准难以全面覆盖。
信息论视角给我们的启示是:当基准与生产之间的互信息低于某个临界值时,继续优化基准分数是负 ROI(Return on Investment,投资回报率)的工程行为。这一临界值在不同业务、不同阶段会变化,但它提示了一个重要的「评测止损线」。
1.2.3 采样策略:从 n=1 到 n=K 的工程改造
既然单次采样指标存在熵界局限,那么最直接的工程改造就是 增加采样次数并报告分布 而非单点。这一改造虽然朴素,却能从根本上改变评测语义:
- **Pass@K 指标族**:在代码生成任务中,Pass@1 度量「首次尝试的成功率」,Pass@K 度量「K 次尝试内至少一次成功的概率」。HumanEval 的 Pass@1 与 Pass@100 可以相差 20–30 个百分点,反映了模型在「分布密度」上的真实能力。
- **Bootstrap 置信区间**:对 N 次独立评估结果进行重采样(bootstrap),给出 95% 置信区间,是报告基准分数时的最低规范。
- **混合温度报告**:在多个温度(0.0, 0.3, 0.7, 1.0)下分别报告,给出能力分布的「温度指纹」。
这种「从点估计到分布估计」的转变,本质上是把评测从「估计」推向「刻画」。一个只报 $\hat{p}$ 的评测是 1 阶矩的描述,而一个报 $\{p_{T=0}, p_{T=0.3}, p_{T=0.7}, p_{T=1.0}\}$ 的评测则是对能力曲面的 4 阶矩描述。后者显然比前者更具决策价值。
1.3 经典测试理论与 IRT:从心理测量学迁移到 AI 评测
1.3.1 经典测试理论(CTT)的核心假设与失效场景
经典测试理论(Classical Test Theory, CTT)将一次观测到的得分 $X$ 分解为「真实得分」$T$ 与误差 $E$ 之和:
$$X = T + E$$
其中假设 $E$ 均值为 0、$E$ 与 $T$ 不相关、$E$ 在不同受测者间独立。CTT 的核心可靠性指标是 Cronbach's $\alpha$ 与折半信度,二者本质上度量的是「内部一致性」。
CTT 在 AI 评测中的迁移看似自然(题目即项目、被测对象即模型),但存在三个关键失效场景:
1. 题目难度同质化:CTT 假定题目的难度分布能够支撑信度估计,但当所有题目对模型而言都「过易」或「过难」时,信度系数会被高估或低估。MMLU 在 GPT-4 上的 $\alpha$ 已超过 0.95,但这是因为「几乎全对」导致方差坍缩,从而虚假地提高了内部一致性。 2. 模型群体的非平稳性:CTT 假设被测群体在能力维度上呈单一分布。在 AI 评测中,被测群体(不同模型)的能力差异往往横跨数个数量级(从 1B 到 1T 参数),单一 CTT 模型无法刻画这种异质性。 3. 能力与题目的耦合失效:CTT 不建模「题目难度 vs 受测者能力」的交互作用,而这恰恰是 AI 评测最需要的信息。
1.3.2 项目反应理论(IRT)的迁移
项目反应理论(Item Response Theory, IRT)通过将每一道题目的正确概率建模为受测者能力 $\theta$ 与题目参数(难度 $b$、区分度 $a$、猜测参数 $c$)的函数,弥补了 CTT 的关键缺陷。最常见的 1PL(Rasch)模型为:
$$P(\theta) = \frac{1}{1 + e^{-(\theta - b)}}$$
2PL 模型进一步引入区分度:
$$P(\theta) = \frac{1}{1 + e^{-a(\theta - b)}}$$
3PL 模型再加入猜测参数 $c$:
$$P(\theta) = c + (1 - c) \cdot \frac{1}{1 + e^{-a(\theta - b)}}$$
将 IRT 应用于 AI 评测,至少能带来三项工程收益:
- **能力估计的可比性**:不同模型即使在题目子集不同的情况下,也可以放到统一的 $\theta$ 尺度上比较,避免「基准 A 92%、基准 B 88%」这种不可直接对比的数字。
- **题目质量的诊断**:通过估计每道题的 $a$、$b$、$c$,可以识别出过易、过难、区分度低、猜测概率过高的题目,从而动态维护题库。
- **自适应评测的可能**:基于当前 $\theta$ 估计动态选择下一道题,使评测题目数从固定长度(如 MMLU 的 14K)降到 200–500 道的同时保持估计精度。
1.3.3 从 IRT 到 GRM:处理有序多级评分
IRT 的标准 1PL/2PL/3PL 模型假设输出是「正确/错误」的二元结果。但在 AI 评测中,许多任务的输出是「5 分制质量评分」「Likert 7 级满意度」等有序多分类结果。这就需要 等级反应模型(Graded Response Model, GRM):
$$P^*(X \geq k \mid \theta) = \frac{1}{1 + e^{-a(\theta - b_k)}}$$
其中 $b_k$ 是第 $k$ 个等级阈值。在 NLU 对话质量、代码可读性、答案相关性等任务上,GRM 相比简单的「二值化」(≥4 分为正确)能够保留更多信息,且对评分者主观性的容忍度更高。
我们在内部对一个 1.2 万题的多轮对话评测集做了 GRM 拟合,结果显示:当把评分阈值从简单的「≥3 为通过」改为 GRM 的阈值估计时,原本看起来「模型 A 优于模型 B」的结论在 5 个子任务上发生了反转。因为 GRM 揭示出:模型 A 的优势主要集中在高分项(4–5 分),但在中间项(2–3 分)反而落后于 B,而用户对中间项的容忍度最低。
1.3.4 IRT 的局限:当能力多维时
IRT 假设「能力」是一维潜在变量 $\theta$,但 AI 模型的能力显然是 多维 的——推理、记忆、规划、对话、代码、安全等维度之间存在明显的去耦现象。多维 IRT(MIRT)虽然存在,但在工程实现上复杂度高、参数稳定性差。在多维能力的建模上,更实用的工程方案是:
- **因子分析 + 独立 IRT**:先用因子分析识别 3–5 个主要能力因子,再对每个因子独立做 IRT。
- **任务族划分**:将评测集按任务类型划分为若干族,对每族独立建立 IRT 模型,跨族通过结构方程模型(SEM)耦合。
- **贝叶斯能力估计**:使用 MCMC(Markov Chain Monte Carlo,马尔可夫链蒙特卡洛)采样得到 $\theta$ 的后验分布,而非点估计,从而捕获高维能力空间中的不确定性。
1.4 工业案例:客服 NLU 模块的「高分低能」反直觉现象
1.4.1 背景设定
我们以一个真实改造项目为蓝本(出于保密考虑,关键参数已做脱敏处理)。某大型电商的智能客服 NLU 模块需要在 6,400 个 SKU(Stock Keeping Unit,库存单位)类目、200+ 业务意图上准确分类用户输入。基线模型是一个基于 RoBERTa-large 的 fine-tuned 分类器,在内部测试集(人工标注 12,000 条)上 macro-F1 为 87.3%,在 GLUE 全部 9 个子任务上平均分 84.1%。然而上线后第一个月,产线 A/B 测试显示:
- 意图分类准确率:62.1%(远低于测试集的 87.3%)
- OOC 输入拒识率:48.7%(理想应 ≥85%)
- 转人工率:41.2%(理想应 ≤20%)
显然存在严重的「测试—生产」偏差。我们对这个差距进行了六层归因分析。
1.4.2 六层归因分析
| 层级 | 偏差源 | 量化影响 | 证据来源 | |---|---|---|---| | L1 | 数据分布漂移 | -8.4 pp | KL 散度 $D_{KL} = 0.37$ | | L2 | 标注规范不一致 | -5.1 pp | 双盲标注 Cohen's $\kappa = 0.61$ | | L3 | 多轮上下文缺失 | -3.2 pp | 单/多轮 AUC 差 0.08 | | L4 | 噪声输入(错字、口语) | -4.7 pp | 字符错误率 12% 段 | | L5 | 业务冷启动类目 | -2.1 pp | OOV 率 7% 段 | | L6 | 模型校准偏差 | -1.7 pp | ECE(Expected Calibration Error,期望校准误差)0.18 |
合计偏差约 25.2 个百分点,恰好解释了 87.3% 与 62.1% 之间的差距(约 25 pp)。
Layer 1:分布漂移。产线语料的话题分布、句长分布、实体密度分布均显著偏离测试集。KL 散度 $D_{KL}(P_{\text{test}} \| P_{\text{prod}}) = 0.37$,远超 0.05 的「可忽略」阈值。这是最主要的一层偏差。
Layer 2:标注规范不一致。内部测试集由 5 名高级标注员标注,产线抽样复核显示,部分意图边界(如「退换货」与「售后投诉」)的标注一致性只有 $\kappa = 0.61$。这意味着测试集自身的 macro-F1 87.3% 含有约 5 pp 的「标注噪声上限」。
Layer 3:多轮上下文。客服对话平均 3.2 轮,但测试集 90% 的样本是单轮构造。多轮信息(如「我刚说…」的指代消解)完全没有被训练信号覆盖。
Layer 4:噪声鲁棒性。产线输入包含大量错别字、口语省略、表情符号(如「怎么退款?😭」),而测试集经过严格清洗。这部分造成的约 5 pp 偏差可以通过对抗训练和数据增强缓解。
**Layer 5:业务