第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 格式的评分。"
局限性
- 评分者偏见:GPT-4 可能偏好某些风格(比如长回答)
- 对事实问题判断不准:LLM 自己也会幻觉,用它评估事实准确性有风险
- 对复杂推理评价弱:LLM 不一定能判断复杂推理链的正确性
黄金法则:LLM-as-Judge 适合做筛选和初步分级,最终重要决策仍需人工审核。
四、建立 Golden Set(黄金评估集)
Golden Set 是一组人工标注的高质量"问题-期望答案"对,是评估的基石。
Golden Set 建集原则
- 覆盖核心场景:涵盖你的 Agent 最常见的 10-20 类问题
- 标注"完整期望”:不仅标对/错,还要标"好的回答长什么样"
- 包含边界案例:边缘输入、模糊问题、歧义问题
- 定期更新: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 是评估根基,要覆盖主要场景和边界案例
- 每次修改都跑回归测试,防止"修好一个问题,坏掉另一个"
思考题
- LLM-as-Judge 的打分结果和标准评分的 Correlation(相关性)一般有多少?怎么验证你的 LLM-as-Judge 是靠谱的?
- 如果你发现每次改了某处后,Golden Set 里有 3 条本来对的问题现在错了,但同时有 5 条之前有问题的现在好了——你怎么决定要不要合并这个改动?