模型评测
模型评测用具有明确来源和判定依据的样本,衡量模型在目标任务中的效果及限制。接口正常返回,只能说明调用链路运行了;识别、预测或生成结果是否满足用户需要,还必须单独判断。
评测从任务、样本和规则开始。选择一个指标后再去寻找容易获得高分的数据,会让结果失去解释力。求职准备需要能说明样本怎样代表实际场景、标签为何可信,以及分数变化是否足以支持结论。
1. 面试核心
先记住这几条,再读正文- AI 产品需要同时检查功能、模型效果和运行约束,接口成功不等于内容正确。卡 · 综合题
- 数据集应覆盖真实分布、关键边界和历史失败,标注规则及分歧处理决定标签是否可信。卡 · 数据、标签与场景
- OCR 等任务要根据输入形成过程选择因素,图片数量不能代替字体、场景和质量条件的覆盖。卡 · OCR 场景因素
- 训练、调优与独立评测数据需按实际关联分组,同源改写或相邻视频片段跨集合会泄漏信息。卡 · 数据划分与泄漏
- 指标必须对应业务错误代价,类别不平衡时准确率可能掩盖严重漏判。卡 · 分类指标
- 生成内容需要事实、约束和质量等独立判断,模型评审必须经过明确细则与人工样本校准。卡 · 数值、识别与生成
- 比较模型要固定数据、配置和预算,平均分提高也可能伴随关键场景退化,随机任务还要记录多次运行。卡 · 执行、分层与比较
2. 产品功能与模型效果
模型产品仍然是软件,需要权限、输入校验、错误处理和持久化等功能测试。与此同时,模型输出可能在格式正确的情况下给出错误结论,需要专门效果评测。
| 层面 | 示例问题 | 主要证据 |
|---|---|---|
| 产品功能 | 上传是否成功,任务状态和权限是否正确 | 接口、状态与数据断言 |
| 模型效果 | 文字识别是否准确,分类是否漏判,回答是否有依据 | 样本、标签、评分规则和指标 |
| 运行约束 | 是否超时、费用是否超限、并发时是否稳定 | 耗时、资源、调用与性能记录 |
| 使用边界 | 无法判断时怎样处理,是否符合明确权限与内容约束 | 边界样本、拒绝与误拒情况 |
例如图片识别接口返回 HTTP 200、合法 JSON 和一段文本,可以通过接口格式检查,但识别出的姓名仍可能错误。反过来,模型离线识别正确,线上上传或预处理错误,也会使产品失败。
测试应把输入预处理、模型调用、后处理和最终展示分开观测。整体错误不能默认全部归因于模型;RAG 的检索与生成归因见 RAG 评估,工具轨迹和副作用检查见 Agent 评估。
3. 数据、标签与场景
评测样本至少包括输入、目标或参考依据、场景标签、来源和版本。开放式任务未必有唯一答案,但仍需要可执行的验收条件或评分细则。
样本可以从实际请求中按规则抽样,加入领域人员提供的典型场景、历史失败和有依据的边界构造。构造样本应标明来源类型,不能把大量模型合成样本当成真实用户分布。
标注规则定义标注者依据什么判断结果。例如情感识别需要明确标签是整段对话情绪、某位说话者的状态,还是针对某对象的态度。任务定义含糊时,不同人给出不同标签可能是规则问题,不能直接认定标注者不认真。
可让部分样本独立重复标注,分析分歧,再通过规则澄清或领域复核确定处理方式。难以确定的样本可以保留争议标签或单独分析;不应为了形成漂亮的一致率而删除所有困难样本。
音视频切分同样影响标签。按固定窗口切分便于批量处理,但可能截断语句或丢失上下文;按语句切分更贴合表达,却依赖切分质量。静音段是否保留,要看任务是否需要识别静音或空输入。样本边界、标注对象和模型实际输入必须对应。
3.1 OCR 场景因素
OCR 评测应覆盖产品实际面对的文字和图像条件,而不是只收集清晰的单行印刷文本。
| 因素 | 示例 |
|---|---|
| 文字 | 语言、字体、字号、手写、相似字符 |
| 布局 | 单行、多栏、表格、旋转和混排 |
| 成像 | 清晰度、压缩、倾斜、光照、反光和遮挡 |
| 场景 | 扫描文档、屏幕、自然场景、实际设备 |
| 结果规则 | 是否区分大小写、标点、空白,如何对齐字段 |
可以先定义代表性切片,再保留高风险组合。图像增强能补充某些条件,但不能替代来源不同的真实样本;对同一张图做很多轻微变换,仍然只覆盖有限内容。
4. 数据划分与泄漏
数据泄漏是评测时本应不可利用的信息进入训练或选择过程,使分数高估实际泛化能力。常见问题不只是“同一文件出现两次”,还包括同一用户、同一事件、同一原文的改写或同一视频相邻片段分到不同集合。
| 数据用途 | 使用范围 |
|---|---|
| 训练集 | 学习模型参数;没有训练步骤的应用可以不使用 |
| 验证或开发集 | 选择方案、阈值、提示及其他配置 |
| 独立测试集 | 方案确定后评估,避免反复针对答案调优 |
| 回归集 | 固定重要失败和明确边界,防止已知问题重现 |
划分方式应贴近使用场景。需要预测未来数据时,时间顺序可能比随机划分更合适;需要泛化到新用户时,同一用户的数据应按组划分。数据预处理中的统计量也应只从允许的数据中学习,不能先用全量数据计算再声称测试集独立。
回归集很适合保护已知问题,但已经反复使用它改进系统,就不再是完全独立的效果估计。需要同时保留可重复回归和独立验收,说明各自目的。
5. 指标与判定依据
指标应与输出对象和错误代价对应。分类、连续数值预测、文字识别和开放式生成,不应共用一个未定义的“准确率”。
5.1 分类指标
以“是否需要人工复核”为二分类任务,先明确需要复核为正类。混淆矩阵将预测与真实标签交叉计数:TP 是正确判为正,FP 是错误判为正,FN 是漏掉真实正类,TN 是正确判为负。
| 指标 | 公式 | 说明 |
|---|---|---|
| 准确率 Accuracy | (TP + TN) / 总样本数 | 整体预测正确比例 |
| 精确率 Precision | TP / (TP + FP) | 判为正的结果有多少确实为正 |
| 召回率 Recall | TP / (TP + FN) | 真实正类有多少被找到 |
| F1 | 2TP / (2TP + FP + FN) | 精确率与召回率的调和平均 |
下面构造 1000 条标签,展示整体准确率与漏判的差别:
actual = [1] * 50 + [0] * 950
predicted = [1] * 30 + [0] * 20 + [1] * 10 + [0] * 940
tp = sum(a == 1 and p == 1 for a, p in zip(actual, predicted))
fp = sum(a == 0 and p == 1 for a, p in zip(actual, predicted))
fn = sum(a == 1 and p == 0 for a, p in zip(actual, predicted))
tn = sum(a == 0 and p == 0 for a, p in zip(actual, predicted))
print(tp, fp, fn, tn)
print(f"accuracy={(tp + tn) / len(actual):.3f}")
print(f"precision={tp / (tp + fp):.3f}")
print(f"recall={tp / (tp + fn):.3f}")
print(f"f1={2 * tp / (2 * tp + fp + fn):.3f}")
输出为 30 10 20 940,四项指标依次是 0.970、0.750、0.600、0.667。准确率达到 97%,但 50 条需要复核的样本漏掉了 20 条。全部预测为负也有 95% 准确率,却一个正类都找不到。
示例分母都非零。实际计算时,如果没有预测正类或没有真实正类,应明确采用何种未定义值处理,并报告样本数,不能悄悄当作完美得分。
分类阈值决定哪些分数被判为正类,会改变误报与漏报。阈值应根据业务代价在开发数据上选择,再用独立数据评估。多分类还需明确按类宏平均、按样本累计的微平均或按样本量加权,不能比较口径不同的分数。
5.2 数值、识别与生成
连续数值预测可以使用平均绝对误差或均方误差等指标,但需要保留单位、分布和大误差样本。平均误差相近时,对少数极端错误的容忍程度可能不同。
文字识别可以按字符或词的替换、删除和插入统计错误,但必须明确参考文本、对齐和规范化规则。例如忽略空白是否符合产品目标,应在评分前确定;结构化字段是否正确也可能需要单独判断。
生成内容通常没有唯一字符串答案。可以按事实依据、必要信息、指令与格式、可读性和拒绝边界分别评分。结构字段和可执行任务优先用确定性检查,开放式质量才引入人工或模型评审。
模型评审需要清楚的评分细则、样例与证据,并用人工标注检查一致性和偏差。不要把“另一个模型说正确”直接当成事实。RAG 的忠实度与正确性、Agent 的轨迹与实际副作用分别见 RAG 评估和 Agent 评估。
6. 执行、分层与比较
每轮评测固定样本快照、模型版本、输入预处理、提示与生成配置、评分规则和运行预算,保留实际输出及失败。外部依赖错误和评分器错误应与模型回答错误分开记录,不能把无法评分的样本直接算作成功。
对有随机性的任务进行多次运行,报告样本数量、重复次数和聚合方法。重复同一题能观察波动,不能补上从未覆盖的场景。延迟和成本也应包含实际重试,不能只挑最便宜或最好的一次。
分层评估是按有业务意义的场景切片查看结果,例如语言、设备、输入长度、图像质量或用户群体。整体分数提高时,关键切片可能退化;每个切片也要保留数量,避免从几个样本作过强推断。
比较新旧方案时,尽量在同一批样本上逐项对照,检查新增成功、退化和不变的样本,并记录不确定性。少量样本上提升一两个百分点,可能不足以区分稳定改进和随机波动。需要正式置信区间或检验时,应按样本关联方式选择统计方法,不能把同源片段和同题重试都当成独立新样本。
7. 失败归因与回归
失败分析要先核对输入和参考依据,再沿预处理、模型、后处理及评分检查。标签错误、图片裁剪错位或评分器拒绝合法答案,都会影响分数,不能只更换模型后重跑。
将失败按可操作原因分类,例如特定字体识别差、某类标签分歧、长输入遗漏条件或结构化输出缺字段。模型质量、产品功能和数据质量问题应各自找到责任环节。
确认后的重要失败进入回归集,保留输入、依据、预期及版本。修复时同时检查整体和相关切片,避免解决一个样例后破坏另一类任务。评测结论写清适用分布与剩余限制,而不是宣称模型已经“完全准确”。
8 · 面试题卡片
本页题目与参考回答
8.1 怎样测试一个使用模型的产品?
题型:综合题
考察重点:功能、效果、性能与实际处理链路。
相关内容:产品功能与模型效果、执行、分层与比较、失败归因与回归。
参考回答
先定义任务与使用范围,分别检查产品功能、模型效果、运行约束和使用边界。 用代表性输入、可靠标签或验收规则评价输出,接口成功不能替代内容正确。
保留预处理、模型及后处理证据,按场景分析结果。涉及检索或工具执行时,还需检查相应检索证据、执行轨迹和真实副作用。
8.2 没有现成数据集时,怎样构建可信的评测数据?
考察重点:任务定义、来源、切分、标签与分歧。
参考回答
先确定任务、输入单位和标签含义,再从真实场景取样,补充关键边界和历史失败,保留来源与版本。 音视频等数据的切分方式要与模型输入和标签对象一致。
制定标注规则,独立复标部分样本并分析分歧,通过规则澄清或领域复核处理。按同源关系划分数据,不能把近似内容分到调优和独立测试两侧。
8.3 为 OCR 模型设计评测集时,需要考虑哪些因素?
考察重点:文字、布局、成像与场景覆盖。
相关内容:OCR 场景因素。
参考回答
根据实际产品覆盖文字语言和字体、布局、图像质量、拍摄场景及结果规则,并按重要因素分层统计。 包括模糊、压缩、倾斜、遮挡以及表格等适用场景。
保留关键组合和真实不同来源。大量同图增强不能替代内容多样性,字符规范化和字段对齐规则也应提前确定。
8.4 随机划分数据后,为什么评测仍可能发生泄漏?
考察重点:同源信息、选择过程与预处理。
相关内容:数据划分与泄漏。
参考回答
随机划分可能把同一用户、原文改写或相邻视频片段分到不同集合,测试侧仍含有已见信息。 全量数据上学习预处理统计量或反复根据测试集调配置,也会泄漏。
按实际泛化目标使用分组或时间划分,训练和调优只使用允许的数据。已反复用于修复的回归集要与独立效果估计区分。
8.5 分类准确率很高,为什么仍可能不满足业务要求?
考察重点:类别分布、误报漏报和指标选择。
相关内容:分类指标。
参考回答
类别不平衡时,大量负类预测正确会掩盖正类漏判。 应明确正类和混淆矩阵,结合精确率、召回率以及业务错误代价判断。
例如 1000 条中只有 50 条正类,全部预测负类也有 95% 准确率,但召回率为零。阈值与平均方式需说明,零分母和小样本切片不能静默当作高质量结果。
8.6 怎样验证生成内容的质量,能否完全交给另一个模型打分?
考察重点:确定性检查、评分细则与评审校准。
相关内容:数值、识别与生成。
参考回答
按任务拆分事实、必要信息、约束、格式和表达等维度,可确定验证的部分先用规则或执行结果检查。 开放式质量可以引入人工或模型评审。
模型评审仍需明确细则、证据和人工样本校准,检查偏差及争议。另一个模型的认可不是独立事实,生成内容与实际任务结果也要分别核对。
8.7 新模型平均分更高,怎样判断它是否值得替换旧模型?
考察重点:可比配置、切片退化、随机性与成本。
参考回答
先固定数据、配置、评分和预算,在同一批样本上比较新增成功与退化,并查看关键切片、成本和延迟。 平均提升不保证每类业务都改善。
有随机性的任务需要多次运行,报告数量、聚合和不确定性。还要核对标签与评分器,确认提升足以满足业务目标而不是评测口径变化。
9. 参考资料
- scikit-learn:Metrics and scoring
- scikit-learn:Common pitfalls and data leakage
- scikit-learn:Cross-validation
- Anthropic:Demystifying evals for AI agents
来源:Coding 101 原文 · 免费阅读,引用请保留出处。内容使用说明