跳到主要内容

评估作者的单一文化:为什么你的基准测试会变成一张自画像

· 阅读需 12 分钟
Tian Pan
Software Engineer

绿色 CI 并不意味着“这个提示词有效”。绿色 CI 的本质是“编写评测的工程师想不出这个提示词会如何出错”。这是两个截然不同的断言,而它们之间的差距正是生产事故的温床。一个评测套件并不是对模型的测量——它是对编写者的冰冷写照。他们的方言、领域知识、资历、偏好的失败模式,以及他们在编写测试用例时恰好使用的模型。根据构造,工程师没想到的测试内容统统未经测试。更糟糕的是:他们会从同一个视角不断扩展套件,因此随着套件的增长,盲点并不会缩小,反而会变得根深蒂固。

这就是评测作者单一化(eval-author monoculture)问题,也是当今 AI 工程中讨论最少、风险最高的可靠性问题。团队痴迷于裁判偏差、位置偏差、冗长偏差、泄漏和污染——但上游偏差其实是最初决定测试用例的人的偏见。其他任何评测误差来源都会被它放大。如果你的套件是由一个人编写的,那么你就拥有了一个带有性格的基准测试,而这种性格正是你的 CI 能够捕获风险的无形天花板。

最明显的征兆是,当一个团队吹嘘他们的评测套件在一年内从 50 个案例增长到了 5,000 个时。这听起来像是在进步,直到你询问是谁编写了新增的 4,950 个案例。答案几乎总是“还是那两个工程师,加上他们对自己先前案例的 LLM 辅助变体”。一个单一作者增长了 100 倍的套件,其多样性并没有增加 100 倍——它只是对相同先验的自信度增加了 100 倍。你构建了一个自相似的对象。一个工程师直觉的分形。

自画像现象

当同一个人既编写提示词又编写评测时,评测在数学上必然会给提示词所设计的功能打高分。由于共享同一个作者,这意味着它们共享一个隐含的规范。提示词是“我告诉模型要做什么”,评测是“我期望得到什么”——两者都在同一个头脑中、同一周内、以同一个用户心理模型构建而成。它们会达成一致。这种一致性并不是系统正常工作的信号。这种一致性只是自我的一致。

这是古德哈特定律(Goodhart's law)的一种结构形式,它不需要任何排行榜刷分或奖励黑客攻击。它是自动发生的。提示词作者通过编写提示词,已经将“系统应该做什么”的空间坍缩为一个特定的实例。当同一个人编写评测时,他们会使用相同的先验再次坍缩同一个空间。没有第二个视角来反驳第一个视角。CI 运行就像是一个思想的两个副本在握手。

当一个新工程师加入并编写他们的第一个评测案例时,你就能看到后果。它失败了。并不是因为提示词坏了——而是因为新工程师对用户的建模不同,使用了不同的措辞,期望不同的输出格式,或者在原作者认为失败的地方认为拒绝(refusal)是可以接受的。新的失败不是 Bug。它是对原有套件狭隘程度的第一次测量。而在大多数团队中,反应通常是“修复”新的测试用例以符合现有惯例,这正是完全错误的做法。你只是将新信息洗成了更多的证实偏见。

单一化的维度

评测中的作者偏差不是单一轴线的。它至少在五个维度上复合作用,而大多数团队同时对这五个维度都视而不见。

  • 语言方言。 一项关于 LLM 的方言与人口统计偏差的 2026 年研究发现,使用非裔美国人白话英语(AAVE)或新加坡英语(Singlish)的提示词触发的模型行为,与几乎所有内部评测所采用的“标准”提示词截然不同。如果你的评测作者使用正式的商务英语编写,那么你的评测套件从未测量过系统在非此类用户面前的表现。“方言越狱”在成为安全漏洞之前,首先是一个覆盖范围差距。
  • 领域专业知识。 一位资深后端工程师为客户支持智能体编写评测时,会直觉地探测 API 失败模式、重试逻辑和幂等性边缘案例。他们不会探测当一个沮丧的用户用全大写字母加三个感叹号输入时会发生什么。该套件在技术上严谨,但在情感上却是“文盲”,模型发布时可能知道如何从 503 错误中恢复,却不知道如何从投诉中恢复。
  • 资历梯度。 资深工程师倾向于编写探测他们之前交付的系统中已知失败模式的评测案例。初级工程师编写的案例则探测如果一个陌生人第一次使用产品,可能会出现什么问题。两者都有价值;但仅靠任何一方都是不够的。完全由资深人员编写的套件过度索引了熟悉的失败模式,而对广泛的、新颖的用户行为长尾索引不足。
  • 模型偏好。 一个在针对特定模型进行测试时编写评测的工程师,会将该模型的失败模式植入到套件中。当团队升级到具有不同失败面的不同模型时,旧的评测仍然会通过——因为它们从未真正测量过“任务”,它们测量的是“之前的模型曾经出错的地方”。新模型的实际弱点则完全没有被测试。
  • 母语和文化先验。 由单语评测作者评估的多语言产品,会在作者看不懂的语言中失败。这并不隐蔽。通过翻译运行评测提示词也无法解决这个问题,因为在另一种语言中至关重要的失败模式往往根本无法翻译。

每一个维度孤立来看都是一个有远见的团队可能解决的合理问题。而单一化问题在于,当一个作者在所有五个轴上都处于相同位置时会发生什么。评测套件随后继承了五维空间中的一个单一坐标,而该空间中的其他任何地方——也就是空间的大部分——都是黑暗的。

同一作者引发的坍缩

该问题最严重的形式是,Prompt 编写者和 Eval(评估)编写者实际上是同一名工程师,他们在同一个 Sprint 中工作,甚至通常在同一个 Pull Request 中提交代码。这在快速迭代的 AI 团队中几乎是默认做法:谁交付功能,谁就交付证明该功能有效的 Eval。

解决方法有时被表述为“将 Prompt 作者与 Eval 作者分开”。作为第一步,这是正确的,但还远远不够。同一团队中的两名工程师,面对同一个产品经理,参加同样的站会,几周之内就会在共享的先验认知(priors)上达成一致。共同工作三个月后,“工程师 A 写 Prompt,工程师 B 写 Eval”的做法几乎不比同一个人写这两者好到哪去。他们都会同意聊天机器人应该拒绝提供法律建议,摘要生成器应该很好地处理要点列表,智能体在用户表达模糊时应该请求澄清 —— 并且他们都会忽略掉团队集体产品直觉从未察觉到的那十件事。

一个更严谨的表述是:Prompt 和 Eval 应当由那些如果被关进同一个房间,其产品心理模型会产生明显分歧的人来编写。如果你无法轻易找出两位会对系统行为产生分歧的工程师,那么你的团队就存在同质化问题,任何 Eval 规范都无法弥补这一点。

一种审计方法论

你可以在 Eval 作者单一文化造成危害之前对其进行衡量。实践中有三种具体的技巧非常奏效。

  • 测试作者集中度指标。计算排名前一、前三和前五的贡献者编写的 Eval 案例占比。如果头号贡献者编写了超过 40% 的测试集,那么你拥有的只是一个披着团队成果外衣的单一作者基准测试。随着时间的推移跟踪这个数字。如果随着测试集的增长该数字也在上升,说明你的单一文化正在加剧。
  • 盲测作者挑战赛。每季度招募两到三名从未看过现有 Eval 集的工程师。只给他们产品规格说明书和 Prompt,要求他们每人编写 25 个 Eval 案例。在你查看这些案例之前,针对当前的生产环境 Prompt 运行这些新案例。盲测作者案例的通过率是衡量现有测试集在多大程度上进行“自我补偿”的直接指标。通过率在 60% 到 85% 之间是健康的;高于 95% 意味着新作者与现有测试集趋同于相同的先验认知;低于 50% 则意味着你现有的测试集一直在掩盖真实的问题。
  • 对抗性跨作者配对。将工程师 A 和工程师 B 配对,要求每个人写出五个他们认为对方的 Prompt 或系统应该捕捉到但可能无法捕捉到的失败案例。不仅要关注哪些案例失败了,还要关注每组配对显现出的失败类别。如果 A 总是能发现 B 的测试集未涵盖的失败点,那么 A 就拥有 B 所不具备的覆盖能力。在整个团队中开展这项练习的传递闭包(transitive closure)将为你提供一张真实的覆盖图 —— 一张不会刻意讨好任何个人的地图。

这些技术刻意借鉴了安全评估研究中开始出现的跨评估者协作方法。Multi-author 评估正在被 CounselBench 等对抗性基准测试采用,其中十位领域专家独立编写了诱导失败的 Prompt,这正是因为该领域已经认识到,单一作者的测试集会系统性地遗漏作者本人无法预见的失败模式。

Eval 编写是一项独立的技能

最后一块拼图是组织层面的。大多数团队将 Eval 编写视为一项附带任务,认为任何负责编写 Prompt 的工程师也应该顺便完成它。这是错误的。编写优秀的 Eval 需要一种特定的“品味” —— 能够想象系统如何以规格说明书中不明显的方式失败的能力,编写团队可能会觉得棘手的测试案例的意愿,以及拒绝仅仅因为当前 Prompt 无法通过就去“修复”测试案例的纪律性。

这种技能与 Prompt 编写技能并不相关。最优秀的 Prompt 工程师往往是最糟糕的 Eval 工程师,因为那些让他们能够迅速引导模型走向预期行为的直觉,也会让他们迅速将非预期行为合理化。他们看到的是模型“本可以”表达的意思。而最优秀的 Eval 工程师则会照字面意思理解模型的输出,并询问真实用户是否也会这样理解。

将 Eval 编写的品味本身视为一种招聘信号。在 AI 工程师职位的面试环节中,要求应聘者查看一个正在运行的 Prompt,并写出五个他们预计会导致失败的案例。他们的回答比任何 Prompt 工程练习都能更清楚地告诉你他们对生产环境的敏锐度。

一旦团队中有了具备 Eval 技能的工程师,就要对他们进行轮换。每季度进行一次轮换,更换特定产品领域的 Eval 负责人,可以使测试集重新达到平衡。新负责人不可避免地会发现测试集对某些失败模式过度索引,而对另一些则索引不足 —— 并且他们将拥有“政治掩护”,去改写那些前任负责人投入了个人情感的案例。

评估集是一面镜子,而不是显微镜

最有用的视角转变是:停止将你的评估集视为测量仪器,而开始将其视为一面镜子。它并不告诉你系统在做什么,而是告诉你团队想到了去寻找什么。这两者之间的差距,正是你发生故障的根源所在。

像优秀的工程团队对待其训练集那样对待你的评估集:保持多样性、持续更新,并且绝不由同一人连续编写。将作者集中度作为核心健康指标进行跟踪。每季度进行一次匿名作者挑战赛。以对抗性的方式配对工程师。明确地为“评估品味”而招聘。轮换评估集的所有权,以打破内部群体的趋同性。

如果你这些都不做,你的 CI 运行依然会是绿色的。但它所代表的仅仅是你实际交付系统中越来越小的一部分。当某天一个超出你团队思维模型的用户触碰到边界时,评估集将毫无用处——因为它从一开始就不是在测量模型。它测量的是团队。模型只是恰好出现在画面中而已。

References:Let's stay in touch and Follow me for more thoughts and updates