AI Evals的一些实践:如何从 0 到 1 构建 agent 的评测系统?

一句话概括

SnowThink 用一个 AIGC 配图 Agent 的亲身踩坑,给出了从业务目标拆维度、用 10 个黄金 case 校准评分器、再扩到 100-500 条生产评测集的评测六步法,核心价值是把“感觉更好”翻译成可决策的数字。

实践内容

评测六步法

步骤要做什么关键提醒
1业务目标 → 评测维度目标先行,维度必须能独立打分
2打造黄金数据集10 个高频典型 case 就足够校准评分器
3人评 + 机评先让人工打黄金集,再让 LLM-as-Judge 对齐
4校准 AI 评分系统先校准可信度,再扩大样本规模
5从黄金集扩到生产评测集100-500 条真实 query 覆盖日常分布
6Bad Case → 反推策略不只看分数,要把坏样本反推回 prompt / 模型 / 策略

三种常见评分方式

方法适用场景优点局限
GSB两版输出对比判断成本低、信号清晰只能回答“谁更好”,不能解释“好在哪”
MOS整体主观体验打分简单直观只能得到均分,诊断性弱
Likert多维度细分打分最适合迭代定位问题设计成本高,要写清评分锚点

作者在自己的配图 Agent 上采用 Likert:按“主题相关性 / 风格一致性 / 视觉质量 / 安全合规”四个维度分别打 1-5 分,再让评测模型输出逐维解释与加权总分。

LLM-as-Judge 的校准指标

  • 维度分差:逐维比较人评与机评,单维分差 > 1 视为明显不对齐。
  • 排序倒置率:按照总分排序,若人评和机评经常把优劣次序排反,说明评分器还不可信。
  • 极端 case 一致率:人评的 1 分 / 5 分极端样本,模型是否也能判到对应区间。

文章给出的实操经验是:不要先冲上千条样本,而是先把“差距最大的 3 个 case”拿出来逐个读模型的评审理由,确认问题到底出在评分 prompt、评测标准,还是评分模型自身能力上。

从黄金集扩到生产评测集

  1. 从真实用户 query 抽样,而不是凭空编“看起来很像”的测试数据。
  2. 清洗去重,剔除空输入、极端异常输入和重复主题。
  3. 仅保留 5% 左右人工抽样做校准,其余用 LLM 跑批。
  4. 生产评测集按使用频率分层采样,规模控制在 100-500 条。
  5. 跑完后不要只看总分,要对 bad case 做归因,再反推 few-shot、prompt 结构、模型切换或工具策略。

摘录

AI 产品不一样。第一,它的输出本质是概率分布——同一个输入跑两次结果可能不同;改一个 prompt 词,整体效果可能涨也可能跌;换一个模型版本,老 case 可能变好也可能变差。第二,用户进入产品的操作其实是一个无限集,你永远不知道用户会有什么天马行空的问题。没有经过评测的 agent,是不能在生产环境中使用的。评测系统就是把“模糊的好不好”翻译成“可决策的数字”。

没校准过的评测系统,评一万个 case 也没用。作者把人评和机评差距最大的样本逐个拉出来读模型思维链,最后发现问题往往落在三类地方:评分 prompt 模糊、评测标准本身有歧义、评分模型存在能力盲区。改完 prompt 之后,风格一致性的均分差从 0.8 降到 0.3,评测系统才第一次有了“可信度”。

涉及实体

  • Prompt评估体系 —— 本文把 prompt 评测写成一条可直接上手的六步落地流程。
  • Generator-Evaluator —— 生成人和评分人分离,避免“自己给自己打高分”的结构性偏差。
  • Harness-Engineering —— 评测是 Harness 里最不能省的门禁层,否则优化只会靠感觉漂移。

涉及主题

我的评注

这篇最有价值的地方不是再讲一遍 “LLM-as-Judge”,而是把“小团队怎么开始”说透了:先做 10 个黄金 case 校准,再扩到 100-500 条生产集;先把评分器调可信,再谈大规模跑批。它天然适合补到已有的 Prompt评估体系Agent评测方法论,因为这里给出的正是“怎么从 0 到 1 把评测搭起来”的第一版 SOP。