RAG评估方法:你的RAG系统到底好不好?90%的团队用错了评估指标
“我们的RAG准确率85%"——这个数字什么也说明不了 每个RAG团队都会说"我们的RAG准确率XX%"。但如果你问他们"你是怎么评估的?",答案通常是"我们手动测了50个问题,感觉还不错”。 这种评估方式有三个问题: 样本量太小:50个问题不能代表真实用户的查询分布 主观性太强:“感觉还不错"不是评估,是自我安慰 没有分维度:准确率是一个模糊的概念——检索准确、生成准确、忠实度,这是三个不同的维度 2026年,RAG评估已经有一套成熟的框架。以下是完整介绍。 RAGAS:RAG评估的事实标准 RAGAS(RAG Assessment)是2026年最主流的RAG评估框架。它把RAG系统的质量拆分为三个维度: 维度一:检索质量(Retrieval Quality) 评估指标: Context Precision:检索到的文档中,有多少是真正相关的?越高越好。 Context Recall:所有相关的文档中,有多少被检索到了?越高越好。 金句:Context Precision是"搜出来的东西对不对”,Context Recall是"该搜的东西搜没搜到"。两者缺一不可。 维度二:生成质量(Generation Quality) 评估指标: Answer Relevance:生成的答案和用户问题有多相关? Answer Correctness:生成的答案是否事实正确? 金句:Answer Relevance是"答非所问吗",Answer Correctness是"答对了吗"。前者是及格线,后者是优秀线。 维度三:忠实度(Faithfulness) 评估指标: Faithfulness:生成的答案是否忠实于检索到的文档?有没有"编造"文档中没有的信息? 金句:Faithfulness是RAG评估最重要的指标。一个答案可以"相关"、“正确”,但如果它来自LLM的幻觉而不是检索文档,那这个RAG系统就失败了。 用RAGAS评估你的RAG系统 from ragas import evaluate from ragas.metrics import ( context_precision, context_recall, answer_relevancy, answer_correctness, faithfulness ) # 准备测试数据 test_data = { "question": ["什么是RAG?", "RAG和微调有什么区别?"], "answer": ["RAG是检索增强生成...", "RAG和微调的主要区别..."], "contexts": [["文档1", "文档2"], ["文档3", "文档4"]], "ground_truth": ["RAG定义...", "RAG和微调的区别..."] } # 评估 result = evaluate(test_data, metrics=[ context_precision, context_recall, answer_relevancy, answer_correctness, faithfulness ]) print(result) 测试集构建:RAG评估中最难的部分 RAGAS需要"ground truth"(标准答案)来计算评估指标。但构建高质量的测试集是RAG评估中最难的部分。 ...