本文内容
为什么评估聊天机器人不是可选项
如今上线一个 AI 聊天机器人很容易,难的是知道它是否真的好用。语言模型本质上是概率性的:同一个问题可能得到两个不同的答案,用寥寥几个提示词“试了一下,看起来还行”,并不意味着它已经可以服务成千上万的客户。评估是回答一个问题的系统化方法:在你发布之前以及每次变更之后,机器人能否准确、安全、稳定地完成它的工作?
规则很简单:无法衡量的东西就无法改进。没有评估体系,每一次提示词调整或模型升级都会变成一场赌博,你不知道自己是改进了某处,还是悄悄弄坏了别的地方。
第零步:定义“成功”对你意味着什么
在确定任何指标之前,先回答这个问题:机器人要完成什么任务?客服机器人的成功在于解决问题或正确转交问题。销售机器人的成功在于筛选潜在客户并收集正确的数据。面向员工的内部机器人的成功在于回答准确并以你的制度为依据。要把评估与业务目标挂钩,而不是凭一种“答案读起来不错”的模糊感觉。
构建“黄金数据集”
任何严肃评估的基础,都是一组每次都用来测试的固定样例。从三个来源收集它:
- 来自实际聊天记录的真实问题(去除个人数据之后)。
- 边缘案例:模糊、不完整或超出范围的问题,或不同方言的提问。
- 对抗性案例:试图让机器人越过限制或泄露信息的尝试。
先从覆盖最重要场景的 50–100 个样例开始,而不是成千上万个随机样例。针对每个样例,尽可能定义参考答案,或者判定回答正确的标准。
到底要衡量什么?核心维度
“质量”是个模糊的词,所以要把它拆分成可衡量的维度:
- 任务成功率:用户是否真正达成了目标?这是最重要的指标,也最接近业务价值。
- 忠实度(无幻觉):在基于你自有资料的系统(RAG)中,答案是否只建立在检索到的文档之上,还是机器人编造了内容?
- 相关性:答案是否真正回应了用户的问题,还是只是绕着话题打转?
- 检索质量:在 RAG 中,系统是否从你的知识库中提取了正确的段落?(上下文精确率和召回率)。大多数 RAG 故障源于检索不佳,而不是模型本身。
- 正确性:答案是否与已知的参考答案一致?
- 安全与合规:它是否会拒绝危险请求?是否保护个人数据?是否保持品牌的语气和政策?能否抵御越狱尝试?
- 成本与延迟:一个需要 30 秒才能给出、或每次对话成本过高的优秀答案,可能是商业上的失败。务必衡量 token 用量和响应时间。
三种评估方法
- 人工评估:质量评估的黄金标准,但速度慢、成本高且难以规模化。用它来建立你的参考基准,并校准自动化方法。
- LLM 充当评审:使用一个强大的模型,按照清晰的评分标准为机器人的回答打分,或者比较两个回答。它快速且可扩展,是当今最常见的做法,前提是你要用人工判断来校准它,并留意它的偏差(例如偏爱更长的回答)。
- 基于参考答案的自动化指标:例如针对封闭式问题的精确匹配,或通过嵌入向量计算语义相似度。便宜且即时,但对开放式回答的作用有限。
在实践中,要把三者结合起来:用快速的自动化指标作为第一道防线,用 LLM 评审处理定性维度,再定期对样本进行人工审核。
离线评估与在线评估
这是两种互补的类型,你两种都需要:
- 离线:每次变更时都用黄金数据集运行机器人,最好放在 CI/CD 流水线中,这样一旦分数下降,任何更新都无法进入生产环境。这就是回归测试,防止你弄坏原本正常的功能。
- 在线:在真实用户身上进行,包括两个版本之间的 A/B 测试、反馈按钮(👍/👎)以及护栏指标(转人工率、重复提问、对话放弃率)。要持续监控生产环境,因为真实用户的行为会揭示任何测试集都无法发现的问题。
启动评估的实用工作流程
- 确定对你真正重要的 3–5 个维度(例如任务成功率、忠实度、安全性)。
- 构建一个小而有代表性的黄金数据集(50–100 个案例)。
- 为每个维度编写清晰的评分标准:什么情况得 5 分,什么情况得 1 分。
- 自动化运行:编写一个脚本,让机器人跑完整个数据集并计算分数(人工 + LLM 评审)。
- 将其纳入部署流水线:任何低于阈值的分数都会阻止发布。
- 加入生产闭环:收集用户反馈和失败案例,并不断将它们加入你的黄金数据集。
让评估失去价值的常见错误
- 只测试理想路径,忽略边缘案例和对抗性案例。
- 测试集太小,或者不能代表你的真实用户。
- 依赖 LLM 评审却没有用人工判断对其进行校准。
- 忽视成本和延迟,只关注质量。
- 只在上线时评估一次,而不是把它变成随每次更新持续进行的过程。
价值不在于上线一个会说话的机器人,而在于拥有一个能用数字告诉你、每次变更后它是变好了还是变差了的系统。
有用的工具
有一些开源和商业工具可以缩短构建评估流水线的时间,包括:用于 RAG 系统的 Ragas 和 DeepEval;用于监控和评估的 LangSmith、Braintrust 和 Arize Phoenix;以及用于编写测试的 OpenAI Evals 和 promptfoo。选择适合你技术栈的工具,但要记住,方法论比工具更重要。
Origami 的角色
Origami 是一家科技公司,我们构建 AI 系统,并在交付前对其进行衡量:我们为你的领域量身设计黄金数据集,构建与部署打通的自动化评估流水线,并加入生产环境监控,及早发现回归问题并控制成本。我们的目标是一个数字值得信赖的机器人,而不只是一个演示。
参考来源
- Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (Zheng et al., 2023): arxiv.org/abs/2306.05685
- Ragas 关于 RAG 评估指标(忠实度、相关性、上下文质量)的文档:docs.ragas.io
- LangSmith 评估文档:docs.smith.langchain.com
- OpenAI Evals:github.com/openai/evals
- Anthropic 关于构建评估的指南:docs.anthropic.com
常见问题
离线评估和在线评估有什么区别?
离线评估是在每次变更时用固定的黄金数据集运行机器人,最好放在 CI 流水线中,以便在发布前发现回归问题。在线评估则通过 A/B 测试、反馈按钮和护栏指标在真实用户身上进行。两者缺一不可:离线评估在上线前保护你,而在线评估揭示只有真实使用才会暴露的问题。
测试集需要多少个样例?
先从 50 到 100 个精心挑选、覆盖最重要和风险最高场景的样例开始,而不是成千上万个随机样例。一个小而有代表性、标注良好的数据集胜过一个庞大而嘈杂的数据集,之后再不断加入生产环境中的真实失败案例来扩充它。
我可以依赖 AI 模型来评估它自己吗?
“LLM 充当评审”速度快、可扩展、应用广泛,但它存在偏差(例如偏爱更长的回答),必须在样本上与人工判断进行校准。将它用于定性维度,保留定期的人工审核,未经核实绝不要把它的评分当作标准答案。
应该从哪个指标开始?
从任务成功率开始,也就是用户是否真正达成了目标,因为它最接近业务价值。对于基于你自有文档的系统(RAG),再加入忠实度以防止幻觉,然后逐步加入安全、成本和延迟。
应该多久重新评估一次?
每次有意义的变更时都要评估(修改提示词、升级模型或更新知识库),并在生产环境中持续评估。评估不是上线前的一次性关卡,而是一个持续的过程,它会告诉你每次变更是带来了帮助还是造成了损害。
在 Google 上关注 Origami
把 Origami 设为首选来源,我们的文章就会优先出现在您的 Google 搜索和热门新闻中。








