Back to list

用 AI 评估 AI,靠谱吗

·7 min read
AGIProduct

做 AI 产品有个特别的问题:你怎么知道它答得好不好?

传统软件产品可以写单元测试,输入确定输出确定,对就是对,错就是错。 但 AI 系统不是这样。同一个问题,今天答得好明天可能变差。 换个 prompt、换个模型版本、甚至换个上下文窗口长度,结果都可能天差地别。

最近在做一个智能客服系统,200 多篇知识文档,每天有用户在问各种各样的问题。 某一天我发现自己在靠"感觉"判断回答质量:这个回复看起来还行,那个回复好像不太对。 这种状态持续了两周后,我意识到不能继续了。 做了一番调研,类似的事情已经有很多的实践或者共识。

为什么必须有 Eval 系统

搭建 Evaluation 系统的核心目的只有两个:

  • 在功能迭代过程中,不让 Agent 原有的能力倒退
  • 可量化地观察 Agent 是否在我们定义的能力范围内,做到不偏不倚

建立 Eval 系统,本质上是建立"什么是好"的标准。这个标准应该由人来制定。

当 AI 拥有自主进化能力时(比如知识库更新、prompt 调整、模型升级), 它如何确保进化方向正是我们期望的?如果没有评价标准,就缺少把控的能力。

这和 bug 追踪系统的逻辑是一样的。 线上一定会有 Agent 能力范围之外的问题产生,把这些 edge cases 加入 eval 数据集, 后续迭代时观测是否已解决,形成一个可持续正向迭代的闭环。

定义"好的回答"

对于问答系统,"好"有一些已经形成共识的维度:

  • 是否忠于事实(Faithfulness)
  • 是否符合语气要求(Tone)
  • 是否存在幻觉(Hallucination)
  • 是否正确拒绝了不合理请求(Safety)

这些标准不是我发明的,行业内已经有相当多的积累。 真正有意思的部分在于:搭完系统跑了一轮之后,业务场景不同是需要对每个评分维度的权重做微调的。 哪些指标是你更看重的?事实准确性和语气风格哪个优先?这些是产品层面的判断,不是技术层面的。

AI Judge 的偏见

用 AI 评估 AI,听起来像是"既当运动员又当裁判"。事实上也确实存在这个问题。

NeurIPS 2024 上有一篇论文 Self-Preference Bias in LLM-as-a-Judge 专门研究了这个现象: 当一个模型生成回答,再由同一个模型(或同系列模型)来评分时,评分会显著偏高。 模型倾向于认为自己的风格和表达方式是"更好的"。

我在实践中的做法是:生成回答的 Agent 和负责评估的 Agent 使用不同的模型。而且负责评估的模型应该更强一些。 比如用 DeepSeek 做回答,用 Claude 做评分。这样可以最大程度减少模型的自我偏好。

确实会遇到荒谬的时刻。 有些评分低得离谱,人工一看发现不是回答有问题,而是评测集里的"标准答案"本身过时了或者本身标准答案就不够正确。 这说明 eval 系统本身也需要维护,标准不是一劳永逸的。

Eval 是设立参考基线

我对 eval 结果的定位很明确:参考基线。

如果系统迭代后总分从 90 掉到 70,那肯定出了问题,要排查。 如果稳定在 85 到 90 之间,那是正常波动。 我不会因为某一条评分低就否定整个系统,也不会因为总分高就完全放心。

Eval 系统告诉你"有没有变差",但"够不够好"仍然需要人来判断。

产品质量的定义变了

做这件事之后,我对"产品质量"的理解确实发生了变化。

以前的产品,交互对象是用户,界面由很多元素和组件构成,操作路径各式各样。定义质量时看转化率、跳出率、任务完成率。

现在人机交互的窗口变成了一个对话框。评价质量的方式变成了分析每轮对话中用户与 Agent 交互的过程。用户问了一个问题,Agent 执行的动作是否正确,检索的文档是否相关,回复是否完整且准确。如果动作都做不对,回答大概率是不对的。

质量不再是一个静态的指标,而是一个动态的、逐轮的、需要持续观测的过程。

我的思考

Eval 系统的核心价值不是给 AI 打分,而是让迭代有方向。没有它,优化就是盲人摸象;有了它,每一次改动都有参照。

但这里面有个微妙的哲学问题:当评判标准本身也是由 AI 参与制定的(比如从文档中提炼标准答案),"好"的定义就变成了一个嵌套结构。这要求系统的维护者(人)始终保持对标准本身的审视。

Eval 系统不是锦上添花的东西,它是基础设施。越早建立,后面的迭代越不会失控。

参考