评估分数只有对应其目标时才有用

90% 准确率可能掩盖关键类别的失败,评估分数只有对应其实际测量的目标才有解释力。
本文基于作者的一次本地原型实验,讨论评估目标如何决定分数的含义。模型在 40 个观测上达到 90% 一致率,但混淆矩阵显示它漏掉了唯一的「已记录证据」样本,却完美复现了 33 个「未定位」样本。作者指出,36/40 测的是对 AI 生成参考标签的复现程度,而非文档证据定位能力,二者不可混为一谈。类别支持度的严重不均衡(明确缺失为 0)让某些能力实际上未被测试,却仍贡献聚合分数。此外,40 行观测不等于 40 个独立文档,同文档维度存在相关性,切分应按源文档分组。基线的高分可能只反映对代理规则的复现,判断模型有用性需要独立的工作流对比实验。
评估分数只有对应其目标时才有用
一个文档证据模型在 40 个观测中有 36 个与参考标签一致,准确率 90%。但翻开混淆矩阵后会发现一个被高准确率掩盖的问题——它漏掉了唯一一个被标注为「已记录证据」的样本。本文基于作者的一次本地原型实验,讨论评估目标定义如何决定分数的实际含义。

90% 的准确率掩盖了什么
作者构建的是一个帮助用户在文档中定位和核查证据的辅助工具。40 个观测来自 10 份文档,每份文档 4 个维度,每个维度被赋予四种可能的「文档状态」之一:已记录证据、未定位、明确缺失、模糊。
模型的整体一致率为 36/40,也就是 90%。但混淆矩阵揭示了一个关键失误:模型对「未定位」的 33 个样本全部正确复现,对「模糊」的 6 个样本只对了 3 个,而唯一标注为「已记录证据」的样本被预测成了「未定位」。
对于一个旨在帮助用户定位证据的助手来说,复现主导的「未找到」状态却错过唯一的阳性样本,并不能证明它有用。这正是本文标题所指的问题:评估分数只有对应到它实际测量的目标时,才有解释力。
目标定义本身就是系统设计的一部分
作者强调,这次实验的参考标签来自 AI 生成,没有经过新的人工独立标注。因此,36/40 测的是「对参考标签的复现程度」,而不是「模型在文档证据定位上的能力」。把这两个东西混为一谈,就会让一个数字承担远超其证据范围的含义。
四种文档状态各自需要精确解释。「未定位」描述的是现有文档和流程当时揭示的状态,不能直接推断某人缺乏某项技能——文档可能遗漏了人实际掌握的内容,抽取环节可能失败,相关段落可能使用了非预期表述。
「已记录」同样需要谨慎对待。一段话提到某个工具,不等于描述了已完成的工作;表达的「学习意图」和「实践证据」是两回事。存在冲突的段落时,需要人工审核者介入,而不是强行给出正标签或负标签。
类别支持度必须与聚合指标并列呈现
作者给出的 40 个观测的参考分布极不均衡:
| 参考状态 | 观测数 |
|---|---|
| 已记录证据 | 1 |
| 未定位 | 33 |
| 明确缺失 | 0 |
| 模糊 | 6 |
这张表直接解释了 36/40 的来源。更重要的是,它揭示了一个被聚合指标掩盖的事实:四个类别中有一个(明确缺失)没有任何评估支持。在四类 macro-F1 计算中,该类别的数值贡献并不等于「在该状态上测到了性能」——它根本没有评估支撑。
作者希望报告能够让「未被测试的能力」变得可见。读者应该能区分两种情况:「方法在这些样本上失败了」和「这个数据集根本没测这项能力」。这两者在聚合分数上可能看起来一样,但含义截然不同。
macro-F1 与类别支持度:macro-F1 的做法是先分别计算每个类别的 F1(精确率与召回率的调和平均),再对所有类别取等权平均。它与 micro-F1 和准确率的关键区别在于:micro-F1 和准确率会被样本量大的类别主导,而 macro-F1 让每个类别无论样本多少都拥有相同的投票权重。因此当某个类别(如文中的「明确缺失」)观测数为 0 时,其 F1 在形式上可能被定义为 0 或直接被跳过,但它对该类别性能的估计是完全没有依据的——分母里根本没有可评估的样本。这正是作者强调「支持度必须与聚合指标并列」的原因:一个 macro-F1 数字既可能来自「四类都测过但都不好」,也可能来自「三类测过、一类没测」,二者在单看分数时无法区分。把每类的观测数(support)与混淆矩阵、macro-F1 一起呈现,读者才能判断某个高分是真实覆盖了各类别,还是仅由主导类别的表现撑起。
40 行不等于 40 个独立文档
同一文档内的 4 个维度共享文本、格式、抽取质量和来源上下文,观测之间存在相关性。把这 40 个观测说成 40 个独立案例会产生误导;随机切分行、允许同一文档的维度同时出现在训练集和评估集中,同样有风险——模型可能在两侧看到大量相同的底层输入。
作者建议未来的文档级评估按源文档分组后再分配切分,关系密切的版本和重复文档也需同样处理。切分单元应反映信息如何跨边界流动,而不是选择让表格最容易划分的单位。
这次运行还有一个更简单的局限:全部 40 个观测都是训练观测。它展示了技术学习过程并暴露了错误,但没有测量在未见文档上的性能。
数据泄漏与切分单元:机器学习评估假设评估样本之间相互独立,且评估集的信息没有以任何形式流入训练过程。当同一文档的多个维度被随机分配到训练集和评估集时,这个假设就被打破了:模型在训练侧见过的文本、格式和抽取结果,会在评估侧以几乎相同的形式再次出现,等于让考生提前看到了部分考卷。这种现象称为数据泄漏(data leakage),它会让评估分数偏高,且高出的部分恰恰来自记忆而非泛化。防范的办法是按「信息流动的自然边界」切分,而不是按最方便划分的行。对于文档任务,自然边界通常是源文档;如果文档之间还存在修订版本、模板复用等关系,则需进一步按「来源家族」(source family)分组切分。作者提出的核心判断标准是:切分单元应反映信息如何跨边界流动,而非让表格最容易划分。
基线的稳定性与它实际测量的东西
作者提到另一个独立的基准实验:在固定的文档切分上,比较 TF-IDF 逻辑回归基线与一个小型 PyTorch 模型。标签来自词汇规则(lexical rubric),不是独立观测的结果。
在同一固定切分上追加五个随机种子后,基线的测试 macro-F1 稳定在约 0.902;神经模型的范围约在 0.576 到 0.902 之间。这是一个有价值的诊断——基线在该设置下稳定,而神经模型对初始化和优化表现出显著的敏感性。只报告最佳神经模型运行结果会掩盖这种敏感性。
但基线也与标注规则共享词汇。高分可能反映的是对代理规则的成功复现,并不能确立实际运行决策的质量。重复种子检验的是一种变异来源,它不能产生新的独立文档、修复薄弱的目标定义,也不能让已被检查过的测试集重新变「新鲜」。
更多样本可能引入一个不同的任务
下一个数据问题是语义兼容性。一个更大的合成语料使用了 8 个分级标准和 0 到 4 的等级,而文档原型使用 4 个维度和 4 种证据状态。这是两个不同的目标,简单拼接行不会让它们变得等价。
作者举了一个完全虚构的段落来说明:「我通过教程探索过一款视频编辑工具,并希望在未来团队项目中使用它」。生成式评分规则可能因为「接触过工具」而给低等级;文档规则则可能将该段落归类为「完成编辑工作的证据不足」。两种标签都不会自动对应一个可操作的决策。
映射需要明确定义、经过审查的示例,以及原始目标的记录。模糊或不兼容的案例应当保持可见。分数阈值不能替代「这个标签到底意味着什么」的决策。作者后来的一次本地实验保留了合成语料自身的 8 标准目标,而不是静默地将其转换为早期的 4 状态任务——这维护了一个重要边界:在合成任务上的结果仍然是该任务上的结果。
未见过的标识符仍可能包含熟悉的语言
合成数据便于构造覆盖和对比样本,但也让捷径容易被重复。两份文档可以有不同标识符、名称、章节顺序和细微措辞变化,却保留相同的底层短语模板。精确重复检测可以通过,但训练和测试样本在语言上仍高度相似。
在作者检查的语料中,变体复用了短语基础并添加了框架。这构成了调查模板重叠的理由,而不是证明所有结果无效或所有泄漏已被清除的证据。更强的评估应跟踪模板家族、检查跨切分的相似度,并保留真正不同的证据表述,同时检查长度、章节结构或风格线索是否暴露了生成标签。
模板重叠与合成数据的捷径:合成语料通过替换标识符、名称、章节顺序和表层措辞来制造「看起来不同」的样本,但底层短语模板往往被保留。这会为模型提供一条捷径(shortcut):不学习真正区分标签的证据模式,而是记住「某类模板短语通常对应某个标签」。精确重复检测(如哈希去重)无法发现这种重叠,因为它检测的是字符串级完全相同,而模板变体在字符层面是全新的。要识别这类风险,需要比精确匹配更细粒度的手段,例如 n-gram 重叠度、嵌入相似度或模板家族追踪。作者的态度是谨慎而准确的:短语基础复用「构成了调查模板重叠的理由」,但不等同于证明所有结果无效或泄漏已被清除——它是一个需要进一步验证的信号,而不是一个已成立的结论。
评估模型旨在协助的工作流
产品层面的问题是:模型建议是否帮助审核者找到并评估证据。
作者提出下一项有用的比较:「文档+搜索」对比「文档+搜索+模型建议」。这需要独立审核的参考、正面和模糊示例、证据缺失案例,以及对抽取失败的显式处理。测量对象包括遗漏的证据、误导性建议、修正、弃权和审核工作量。
模型建议和检索到的段落应保持可分别检查——搜索结果不自动构成神经输出的解释。参考审核也应避免先展示模型建议,否则评估会继承模型的框架。分歧需要解决或记录为待定状态,而不是捏造一个共识。这项研究尚未完成,它是判断有用性所需的下一项证据,而不是对现有训练分数的又一次解读。
工作流级评估(workflow-level evaluation):传统的模型评估在固定数据集上计算分类指标,衡量的是「模型在已有标签上表现如何」。工作流级评估则把评测对象扩展到人机协作的完整流程,衡量的是「引入模型建议后,审核者的实际工作是否更好」。二者的关键区别在于测量对象不同:前者测的是标签复现度,后者测的是遗漏的证据、误导性建议、修正次数、弃权率和审核工作量等结果指标。这类评估通常需要独立的人工参考、显式的失败处理,以及在展示模型建议前先收集审核者判断的流程设计,避免评估被模型的框架「锚定」。作者指出这项研究尚未完成,它是判断有用性所需的下一项证据,而不是对现有训练分数的又一次解读。
在比较分数之前应该先问的问题
作者总结了一份在比较方法前写下的清单:
- 参考标签意味着什么?由谁或什么产生?
- 哪些类别和操作失败有实际支持?
- 独立单元是什么:一行、一份文档,还是一个来源家族?
- 评估集是否已经影响了设计决策?
- 新标签是否与现有任务兼容?
- 哪个工作流结果能证明添加模型是合理的?
90% 这个数字之所以有用,恰恰是因为对它进行审查改变了下一步行动。系统需要更好的参考覆盖和独立的工作流比较,才能支撑关于有用性的声明。
相关推荐

AGENTS.md 实战指南:让编程 Agent 真正好用
AGENTS.md 和 CLAUDE.md 能显著提升编程 Agent 表现,但研究发现用错反而让成本上升 20%。本文详解该写什么、该删什么、200 行与 32KB 的硬边界、Monorepo 嵌套规则及安全提醒。

花旗AI编程代理Devon:年省30%技术外包费,1.4万工程师已使用
花旗集团利用AI编程代理Devon,一年内削减30%技术供应商费用,1.4万工程师使用,产品发布提速30%-40%。本文分析其对IT外包行业的冲击及未来人机协作模式。

从生日派对到千亿AI帝国:新一代PayPal黑帮崛起
2015年一张生日派对合影,十年后催生Scale AI、Cognition AI等千亿估值AI公司。解析新一代PayPal黑帮的创业路径、互相投资生态,以及Peter Thiel的Founders Fund如何完成代际传承。