第19章:大模型评估与测试——怎么知道你的 AI 系统好还是不好?

第19章:大模型评估与测试——怎么知道你的 AI 系统好还是不好?

系列导读:“感觉不错"不是一个好的评估标准。本章教你建立一套可复现、可量化、可迭代的评估体系。


一、为什么评估很重要?

你改了一个 Prompt、换了一个模型、加了一个工具——效果到底变好了还是变差了?

没有评估体系,你就只能凭感觉。而"感觉"在实际工程中往往是错的,因为:

  • 幻觉的答案听起来可能很有道理
  • 模型在某些问题上碰巧答对了,不代表整体变好了
  • 不同批次、不同负载下的表现波动很大

二、评估的三个维度

把 LLM 系统的评估拆成三个层面:

维度1:输出质量

回答的内容是否正确、有用、完整?

指标 说明 怎么测
准确率 事实性问题答对的占比 标注事实问答对,跑批量测试
相关性 回答是否针对用户问题 人工打分 / LLM-as-Judge
完整性 是否覆盖了问题的所有方面 检查清单覆盖度
幻觉率 编造信息的出现频率 人工抽查 / 和知识库交叉验证
一致性 同问法不同表述,输出是否一致 改写问句重复测试

维度2:推理质量

Agent 的推理过程是否正确?

指标 说明 怎么测
工具选择准确率 选的工具对不对 标注每个场景应调用的工具
参数准确率 传的参数对不对 参数值和期望值的匹配度
终止条件达成率 任务是否结束在正确状态 检查最终输出是否回答完问题
循环检测 是否陷入死循环(反复调用同一工具) 监控调用次数和去重

维度3:系统性能

速度、成本、稳定性

指标 说明 目标值
首 token 延迟 从提问到第一个输出生成的时间 <1s
吞吐率 每分钟处理请求数 按业务需求
Token 消耗 每次调用的平均 token 数 越低越好
错误率 API 调用失败 / 超时 / 异常的占比 <0.1%
并发能力 同时处理的最大请求数 按 SLA

三、LLM-as-Judge:用模型来评估模型

让 GPT-4 来评分你的 GPT-3.5 输出——这是目前最火的自动化评估手段。

思路

评估 Prompt:
"以下是用户的问题和模型生成的答案。请从以下几个方面打分(1-5分):

1. 准确性:答案中的事实是否正确?
2. 完整性:答案是否覆盖了用户的所有问题?
3. 有用性:答案对用户是否有实际帮助?
4. 安全性:答案是否有有害内容?

用户问题:{question}
模型答案:{answer}
参考答案:{golden_answer}

请输出 JSON 格式的评分。"

局限性

  1. 评分者偏见:GPT-4 可能偏好某些风格(比如长回答)
  2. 对事实问题判断不准:LLM 自己也会幻觉,用它评估事实准确性有风险
  3. 对复杂推理评价弱:LLM 不一定能判断复杂推理链的正确性

黄金法则:LLM-as-Judge 适合做筛选和初步分级,最终重要决策仍需人工审核。

四、建立 Golden Set(黄金评估集)

Golden Set 是一组人工标注的高质量"问题-期望答案"对,是评估的基石。

Golden Set 建集原则

  1. 覆盖核心场景:涵盖你的 Agent 最常见的 10-20 类问题
  2. 标注"完整期望”:不仅标对/错,还要标"好的回答长什么样"
  3. 包含边界案例:边缘输入、模糊问题、歧义问题
  4. 定期更新:Agent 迭代、业务变化后,golden set 也要跟进

规模建议

Agent 复杂度 Golden Set 大小 覆盖度
简单问答 Agent 20-50 条 主要场景
多工具 Agent 50-200 条 核心路径 + 分支
Multi-Agent 系统 100-500 条 全链路场景

五、评估系统的自动化跑通

每次迭代(改 Prompt / 换模型 / 加工具):
  ↓
1. 在 Golden Set 上跑完整评测
  ↓
2. 生成评估报告(准确度、幻觉率、延迟)
  ↓
3. 对比上个版本的 diff
  ↓
4. regression 检测:有没有之前对的问题现在错了?
  ↓
5. 决定是否合并到主分支

六、本章小结

  • 评估分三层:输出质量 + 推理质量 + 系统性能
  • LLM-as-Judge 是自动化评估的有效工具,但不能取代人工审核
  • Golden Set 是评估根基,要覆盖主要场景和边界案例
  • 每次修改都跑回归测试,防止"修好一个问题,坏掉另一个"

思考题

  1. LLM-as-Judge 的打分结果和标准评分的 Correlation(相关性)一般有多少?怎么验证你的 LLM-as-Judge 是靠谱的?
  2. 如果你发现每次改了某处后,Golden Set 里有 3 条本来对的问题现在错了,但同时有 5 条之前有问题的现在好了——你怎么决定要不要合并这个改动?