为什么 RAG 评估如此困难 RAG 系统的评估比单纯的 LLM 评估复杂得多,因为它涉及多个环节:检索质量、上下文相关性、生成质量、引用准确性。一个环节的优化可能影响另一个环节。2026 年的 RAG 评估已经形成了系统化的方法论。
RAG 评估的三层框架 ┌──────────────────────────────────────────────┐ │ 端到端评估(L3) │ │ 用户满意度 / 任务完成率 / 答案正确性 │ ├──────────────────────────────────────────────┤ │ 生成评估(L2) │ │ 答案相关性 / 忠实度 / 完整性 / 引用准确性 │ ├──────────────────────────────────────────────┤ │ 检索评估(L1) │ │ 召回率 / 精确率 / MRR / 上下文相关性 │ └──────────────────────────────────────────────┘ L1:检索层评估 基础指标 class RetrievalMetrics: @staticmethod def recall_at_k(retrieved_ids: list, relevant_ids: list, k: int = 5): """Top-K 召回率:相关文档是否出现在 Top-K 中""" retrieved_top_k = retrieved_ids[:k] hits = len(set(retrieved_top_k) & set(relevant_ids)) return hits / len(relevant_ids) if relevant_ids else 0.0 @staticmethod def precision_at_k(retrieved_ids: list, relevant_ids: list, k: int = 5): """Top-K 精确率""" retrieved_top_k = retrieved_ids[:k] hits = len(set(retrieved_top_k) & set(relevant_ids)) return hits / k @staticmethod def mrr(retrieved_ids: list, relevant_ids: list): """Mean Reciprocal Rank:第一个相关文档的排名倒数""" for i, doc_id in enumerate(retrieved_ids): if doc_id in relevant_ids: return 1.0 / (i + 1) return 0.0 @staticmethod def ndcg_at_k(retrieved_ids: list, relevance_scores: dict, k: int = 5): """Normalized Discounted Cumulative Gain""" dcg = sum( relevance_scores.get(doc_id, 0) / np.log2(i + 2) for i, doc_id in enumerate(retrieved_ids[:k]) ) ideal_scores = sorted(relevance_scores.values(), reverse=True)[:k] idcg = sum(s / np.log2(i + 2) for i, s in enumerate(ideal_scores)) return dcg / idcg if idcg > 0 else 0.0 上下文相关性评估 def context_relevance(question: str, contexts: list, llm) -> float: """评估检索到的上下文与问题的相关程度""" prompt = f""" 请评估以下检索上下文与问题的相关性。 问题:{question} 上下文: {chr(10).join([f'[{i+1}] {c[:200]}' for i, c in enumerate(contexts)])} 对每条上下文打分(0-3): - 0: 完全无关 - 1: 部分相关,缺少关键信息 - 2: 相关,包含部分答案 - 3: 高度相关,直接回答问题 输出 JSON:{{"scores": [0-3, ...], "overall": 0.0-1.0}} """ result = llm.generate(prompt, response_format="json") return result["overall"] L2:生成层评估 RAGAS 框架 RAGAS(Retrieval Augmented Generation Assessment)是 2026 年最主流的 RAG 评估框架,核心指标包括:
...