评测与实验设计¶
本章导读:评测是大模型面试里最容易被低估的部分。候选人往往能讲模型结构,却说不清“你的提升几个点是怎么来的、测试集有多大、标注一致性多少、线上为什么没涨”。本章把离线评测、LLM-as-judge、RAG/Agent 评测、A/B 实验和统计显著性串成一套可落地的实验设计方法。
阅读建议:先建立第 1 节的“评测分层”,再重点看第 2、3 节的污染与 judge 偏差,最后用第 8 节的算例练习样本量与归因。
核心要点¶
- 评测的第一原则是“指标和业务目标对齐”;离线准确率不等于线上满意度。
- 测试集要冻结、分层、去重、防污染;训练集与测试集必须做同源检查,而不只是随机切分。
- Benchmark 污染要从 n-gram、embedding、时间切分、扰动变体多个角度检测;发现后不能只删题,要重建测试集。
- LLM-as-judge 有位置、长度、自我偏好等偏差;必须交换顺序、控制长度、用人工标注校准,并报告一致性。
- RAG 评测要分层:检索层看 Recall@k/MRR/nDCG,生成层看忠实度/正确性/引用,端到端看任务成功率。
- Agent 评测要看结果、轨迹、成本、安全与恢复能力,不能只看最终答案。
- A/B 实验要预先定义主指标、护栏指标、样本量、实验周期;不要看到显著就停,也不要忽略多重比较。
- 离线涨点线上不涨,常见原因是分布差异、指标错位、污染、延迟/成本、用户行为变化。
- 任何百分比都要能还原分子/分母,并给出置信区间或方差;单次运行的小数点提升没有意义。
- 评测集是资产:要版本化、定期更新、保留难例与真实 badcase,而不是一次性造完就冻结十年。
1. 评测分层¶
1.1 四层评测¶
| 层级 | 评什么 | 典型指标 | 成本 | 用途 |
|---|---|---|---|---|
| 单元/能力 | 单项能力 | 准确率、EM、F1、Pass@k | 低 | 快速迭代、回归 |
| 任务/场景 | 端到端任务 | 任务成功率、满意度、引用正确率 | 中 | 版本对比、上线门槛 |
| 系统/产品 | 完整链路 | 转化率、留存、转人工率、成本 | 高 | 业务决策 |
| 安全/合规 | 风险 | 越权率、注入成功率、泄漏率 | 中 | 红线校验 |
1.2 离线与线上¶
- 离线:可复现、便宜、覆盖难例;但可能与真实分布不一致。
- 线上:真实用户、真实流量;但有滞后、干扰、伦理与成本约束。
- 影子流量:新模型只记录不展示,适合高风险场景的预验证。
- 灰度:小流量放量,观察主指标与护栏指标。
面试表达:离线评测回答“模型有没有变好”,线上实验回答“产品有没有变好”,两者不能互相替代。
2. 测试集构造与污染¶
2.1 构造流程¶
- 定义能力维度:知识、推理、指令遵循、长上下文、工具调用、安全。
- 分层采样:按业务场景、难度、长度、语言、租户分层,避免头部场景主导。
- 标注:写清标注协议、边界案例、拒答标准;双人标注 + 第三人仲裁。
- 难度校准:太简单会饱和,太难全是 0;保留易/中/难比例。
- 冻结与版本:测试集只增不改,改动要升版本;训练侧不可见。
- 定期更新:防止过拟合与污染;保留一个“从未公开”的 holdout。
2.2 污染来源¶
- 预训练语料直接包含测试题/答案;
- 训练数据由 benchmark 生成或改写;
- 合成数据时模型“见过”原题;
- 检索库包含测试答案;
- 评测 prompt 与训练 prompt 高度相似;
- 多次调参对测试集过拟合(测试集变成了验证集)。
2.3 检测方法¶
| 方法 | 做法 | 优点 | 局限 |
|---|---|---|---|
| n-gram 重叠 | 训练集与测试集做 8–13 gram 匹配 | 简单、可解释 | 改写/翻译可绕过 |
| Embedding 相似 | 向量近邻检索 | 抓语义近似 | 阈值难定、算力成本 |
| 时间切分 | 只用模型 cutoff 之后的数据 | 最可靠 | 需要时间戳 |
| 扰动变体 | 改数字、换问法、加干扰 | 检测记忆 | 只能抽样 |
| 生成式探测 | 让模型补全题目/答案 | 直观 | 可能误判 |
| 性能异常 | 某 benchmark 异常高 | 快速预警 | 需基线 |
发现污染后,正确做法是重建测试集或换 holdout;只删掉高分行会掩盖问题。
3. LLM-as-judge¶
3.1 常见偏差¶
- 位置偏差:偏好第一个/最后一个回答;
- 长度偏差:偏好更长、更详细的回答;
- 自我偏好:偏好同家族模型的输出;
- 格式偏差:偏好 Markdown、分点、加粗;
- 谄媚偏差:容易被“请给高分”影响;
- ** rubric 漂移**:不同批次评分标准不一致。
3.2 降低偏差¶
- 交换顺序:A/B 与 B/A 各评一次,取一致结果或平均。
- 控制长度:截断到相近长度,或把长度作为显式惩罚。
- ** rubric 明确**:给出 1–5 分的行为锚点,而不是“好不好”。
- 多 judge:不同模型/提示投票,降低单模型偏好。
- 人工校准:抽 100–300 条人工标注,计算与 judge 的一致性。
- 盲评:隐藏模型名、版本、来源。
- 温度 0 + 固定模板:减少随机性;但不要假设完全确定。
3.3 一致性指标¶
- 准确率/一致率:judge 与人工标签相同的比例;
- Cohen's kappa:
\[
\kappa=\frac{P_o-P_e}{1-P_e}
\]
其中 \(P_o\) 是观察到的一致率,\(P_e\) 是随机期望一致率。Landis & Koch 的常用解读:<0 差,0–0.2 轻微,0.2–0.4 一般,0.4–0.6 中等,0.6–0.8 较强,0.8–1.0 几乎完全一致。
- Krippendorff's alpha:适合多标注者、缺失值、不同量表;
- Spearman/Pearson:judge 分数与人工分数的相关性,适合连续评分。
面试点:只说“用 GPT-4 打分”不够,要说明 rubric、顺序交换、人工校准和一致性。
4. RAG 评测¶
4.1 分层指标¶
| 层 | 指标 | 定义 | 说明 |
|---|---|---|---|
| 检索 | Recall@k | 召回的 relevant / 全部 relevant | 最关心“有没有漏” |
| 检索 | Precision@k | 召回的 relevant / k | 关心噪声 |
| 检索 | MRR | 第一个 relevant 的倒数排名 | 关心排序 |
| 检索 | nDCG@k | 考虑等级与位置 | 多级相关性 |
| 生成 | Faithfulness | 回答是否有上下文依据 | 幻觉/忠实度 |
| 生成 | Answer Correctness | 与标准答案一致 | 需 gold answer |
| 生成 | Citation Accuracy | 引用是否支持对应陈述 | 引用错位 |
| 端到端 | Task Success | 用户任务是否完成 | 业务口径 |
4.2 评测集构造¶
- 每条样本:query、gold answer、gold doc IDs、难度、场景、权限标签;
- 覆盖:单跳、多跳、比较、否定、时间敏感、无答案(应拒答);
- 负例:检索不到时应拒答,不能强行编造;
- 分层报告:不要只给一个总分,按场景/难度拆开。
4.3 归因¶
- gold doc 是否在召回集合?不在 → 检索/切分/embedding 问题;
- 在但排名低?→ 排序/融合/rerank 问题;
- 排名高但被截断?→ 上下文预算/组装问题;
- 上下文有证据但答错?→ 生成/推理/指令冲突;
- 引用错位?→ 引用对齐/后处理问题。
面试表达:先做“检索上限”实验——把 gold doc 直接塞进上下文,看生成上限;如果上限都低,先修生成,不要盲目调召回。
5. Agent 评测¶
5.1 指标¶
- 结果:任务成功率、Pass@k、答案正确率;
- 过程:步数、工具调用次数、token、延迟、轨迹合规率;
- 鲁棒:工具超时/报错/歧义指令下的恢复率;
- 安全:越权率、注入成功率、敏感信息泄漏率;
- 成本:每任务成本、每成功任务成本。
5.2 环境¶
- 模拟 API/文件系统/网页,保证可复现;
- 固定初始状态与随机种子;
- 工具故障注入(超时、500、空结果);
- 记录完整 trace,支持回放;
- 任务集分层:简单/中等/困难、单工具/多工具、只读/写入。
5.3 轨迹评估¶
不只看最终答案,还要看:
- 是否调用了必要工具;
- 是否有冗余/重复调用;
- 是否绕过权限或审批;
- 失败后是否恢复;
- 是否在预算内终止。
5.4 常见陷阱¶
- 只测 happy path,工具一报错就崩;
- 任务集与训练集重叠;
- 用最终答案 judge 代替轨迹检查;
- 不控制模型版本/温度,结果不可复现;
- 忽略成本,成功率略升但成本翻倍。
6. A/B 实验¶
6.1 设计步骤¶
- 假设:明确改动、预期影响、作用机制。
- 主指标:一个,和业务目标直接相关。
- 护栏指标:延迟、成本、错误率、投诉率、安全。
- 分流:随机、稳定、同质;按用户/会话分流,避免同一用户跨组。
- 样本量:根据基线、最小可检测效应、α、power 计算。
- 周期:覆盖至少一个完整业务周期,警惕新奇效应。
- 分析:置信区间、显著性、异质性、多重比较校正。
6.2 样本量估算¶
两比例检验的近似:
\[
n\approx\frac{2(z_{\alpha/2}+z_\beta)^2\,p(1-p)}{\delta^2}
\]
其中 \(n\) 是每组样本量,\(p\) 是基线比例,\(\delta\) 是最小可检测的绝对提升。
算例:基线 50%,希望检测 1 个百分点提升,α=0.05(\(z=1.96\)),power=80%(\(z=0.84\)):
\[
n\approx\frac{2(1.96+0.84)^2\times0.25}{0.01^2}\approx39{,}200
\]
每组约 3.9 万样本。若日流量只有几千,实验要跑很久,或者接受更大的最小可检测效应。
6.3 常见偏差¶
- Peeking:每天看显著性,显著就停,抬高假阳性;
- 多重比较:同时看十几个指标,总有一个显著;
- 辛普森悖论:分组后趋势反转,需分层分析;
- 干扰:实验组影响对照组(社交、供需、缓存);
- 新奇效应:用户短期好奇,长期回落;
- 选择偏差:分流不随机或样本被过滤。
6.4 离线涨点线上不涨¶
| 原因 | 表现 | 处理 |
|---|---|---|
| 分布差异 | 离线集与真实流量长度/场景不同 | 按线上分布重加权、分层 |
| 指标错位 | 离线准确率↑,线上满意度不变 | 换业务指标、做用户研究 |
| 污染 | 离线测试集泄漏 | 时间切分、重建 holdout |
| 延迟/成本 | 质量略升但响应变慢 | 看护栏指标、做权衡 |
| 用户行为 | 用户看到更好答案后追问更多 | 看会话级指标 |
| 统计不显著 | 提升在噪声范围内 | 置信区间、增加样本 |
7. 评测集与实验管理¶
7.1 版本化¶
- 数据集版本、标注协议版本、模型版本、prompt 版本、评测代码版本;
- 每次实验记录配置与随机种子;
- 结果表包含均值、方差、样本量、置信区间;
- 失败样本留存,供回归测试。
7.2 回归集¶
- 从线上 badcase、历史事故、边界案例中积累;
- 每次模型/prompt/工具变更都跑;
- 分“红线”(必须通过)与“观察”(允许波动);
- 控制规模:核心 200–500 条,全量几千条。
7.3 人工评估¶
- 标注手册 + 培训 + 试标;
- 双人标注,计算 kappa;
- 分歧仲裁,记录原因;
- 盲评、随机顺序;
- 定期校准,防止标注漂移。
8. 面试高频问题¶
Q1:你的提升几个点,测试集多大?怎么保证显著?¶
- 给出测试集规模、构造方式、基线、绝对值与置信区间。
- 单次小数提升不可信;多次运行或 bootstrap 估方差。
- 若样本小,说明效应量与不确定性,不要强行说显著。
Q2:怎么检测 benchmark 污染?¶
- n-gram、embedding、时间切分、扰动变体、生成式探测。
- 发现后重建 holdout,而不是只删高分样本。
- 训练数据来源要记录,合成数据要标记。
Q3:LLM-as-judge 可靠吗?¶
- 有条件可靠:rubric 清晰、顺序交换、长度控制、人工校准。
- 报告与人工的一致性(kappa/准确率),不要只报分数。
- 高风险场景用人工或规则兜底。
Q4:RAG 怎么评测?¶
- 检索层 Recall@k/MRR/nDCG;生成层 Faithfulness/Correctness/Citation;端到端任务成功率。
- 分场景/难度报告;构造无答案样本测拒答。
- 先做 gold doc 上限实验,分离检索与生成问题。
Q5:Agent 怎么评测?¶
- 结果 + 轨迹 + 成本 + 安全 + 恢复。
- 模拟环境、故障注入、固定种子、trace 回放。
- 不能只看最终答案,否则会漏掉越权/冗余/死循环。
Q6:A/B 实验要跑多久?¶
- 根据基线、最小可检测效应、α、power 算样本量。
- 覆盖完整业务周期,避免新奇效应。
- 不要 peeking;必要时用序贯检验并校正。
Q7:离线涨点线上不涨,怎么排查?¶
- 分布、指标、污染、延迟、用户行为、统计显著性六层。
- 先看线上分布与离线是否一致,再看护栏指标。
- 用影子流量/灰度验证,不要直接全量。
Q8:人工评估几个人?一致性怎么算?¶
- 至少双人,复杂任务三人仲裁。
- 用 Cohen's kappa/Krippendorff's alpha,报告置信区间。
- 一致性低时先修标注手册,不要强行平均。
Q9:怎么构造一个有区分度的评测集?¶
- 分层采样、难度校准、负例与拒答、真实 badcase。
- 避免饱和:太简单的题删掉或降权。
- 保留 holdout,定期更新。
Q10:怎么评估幻觉?¶
- 定义:无依据陈述、事实错误、引用错误要分开。
- 方法:人工标注、NLI/事实验证、LLM-judge + 证据。
- 报告分母与标注一致性;不要只给一个“幻觉率”。
本文档为面试复习资料,统计方法与指标定义建议结合实验设计教材与业务实践复核。