评估体系
问题
如何系统化评估一个 AI 应用的效果?如何对比不同模型/Prompt 的优劣?
答案
一、评估层次
二、离线评估方法
1. 自动化指标
| 任务类型 | 指标 | 工具 |
|---|---|---|
| 检索 (RAG) | Context Precision, Context Recall | RAGAS |
| 生成质量 | Faithfulness, Answer Relevancy | RAGAS / DeepEval |
| 分类 | Precision, Recall, F1 | Scikit-learn |
| 代码生成 | Pass@k | HumanEval |
| 翻译 | BLEU, COMET | sacrebleu |
2. LLM-as-Judge
const judgePrompt = `
你是一个评估专家。请根据以下标准对 AI 回答评分(1-5 分):
- 准确性:信息是否正确
- 完整性:是否涵盖要点
- 相关性:是否切题
用户问题:{question}
参考答案:{reference}
待评估回答:{answer}
请给出分数和理由,格式:
分数: X
理由: ...
`
LLM-as-Judge 的局限
- 评估模型本身可能犯错(建议用 GPT-4o 等强模型做 Judge)
- 存在位置偏差(倾向给第一个选项更高分)
- 需要与人工评估做对齐校验
3. 人工评估
| 方法 | 做法 | 成本 |
|---|---|---|
| 盲评 | 隐藏模型名称,人工打分 | 高 |
| 对比评估 | A vs B 选优 | 中 |
| Elo 排名 | 多模型两两对比,计算 Elo 分 | 中高 |
三、在线评估
A/B 测试流程
关键在线指标
| 指标 | 说明 |
|---|---|
| 用户满意度 | 点赞/踩比例 |
| 任务完成率 | 用户是否达成目标 |
| 重新生成率 | 用户点击"重新生成"的频率 |
| 对话轮数 | 越少说明效率越高 |
常见面试问题
Q1: 为什么不能只用 BLEU/ROUGE 评估 LLM?
答案:
BLEU/ROUGE 基于 n-gram 匹配,只衡量"与参考答案的字面相似度"。LLM 生成可能用完全不同的措辞表达相同含义,字面分数低但质量高。因此需要语义级评估(LLM-as-Judge、人工评估)。
Q2: 如何建立测试集?
答案:
- 从真实用户 query 中采样 200~500 条
- 覆盖常见/边缘/困难等不同难度
- 编写参考答案或验证标准
- 定期更新(每月补充新 Case)
Q3: 评估频率应该多高?
答案:
- 每次变更评估:改 Prompt、换模型、更新知识库后必须评估
- 定期回归评估:每周/每月跑完整测试集
- 实时监控:在线指标持续采集