要全面评测一个 RAG(Retrieval-Augmented Generation) 系统,需要从 检索(Retrieval)、生成(Generation)、端到端(End-to-End)、效率(Efficiency) 以及 用户体验(User Experience) 等多个维度进行系统性评估。以下是详细的评测方案和实现建议:
1. 检索模块(Retrieval)评测
评测目标:评估检索系统能否找到与用户问题最相关的文档。
1.1 核心指标
指标 | 定义 | 实现方法 |
---|---|---|
Recall@K | 前 K 个检索结果中,包含正确答案的比例。 | 人工标注或使用已知正确答案的数据集(如 Natural Questions)。 |
Precision@K | 前 K 个检索结果中,真正相关的比例。 | 同上。 |
MRR(Mean Reciprocal Rank) | 首个正确答案排名的倒数均值(衡量排名质量)。 | MRR = (1/r₁ + 1/r₂ + ... + 1/rₙ) / N ,其中 rᵢ 是第 i 个查询的首个正确答案排名。 |
NDCG@K | 考虑排名权重的相关性评分(适用于多等级相关性标注)。 | 使用 sklearn.metrics.ndcg_score 计算。 |
1.2 评测方法
- 人工标注评测:
- 随机抽取 100-200 个查询,人工标注检索结果的相关性(如 0-3 分)。
- 计算 Recall@10、Precision@10、MRR 等指标。
- 自动化评测:
- 使用标准数据集(如 MS MARCO、HotpotQA)进行 Benchmark 测试。
- 示例代码(计算 Recall@K):
from sklearn.metrics import recall_score recall_at_5 = recall_score(true_relevant, retrieved_top5, average='micro'