大模型|大模型中的RAG 的评估
欢迎来到人工智能的世界博客主页卿云阁欢迎关注点赞收藏⭐️留言首发时间2026年6月4日✉️希望可以和大家一起完成进阶之路作者水平很有限如果发现错误请留言轰炸哦万分感谢目录RAG 系统基础回顾用户问题检索文档组织上下文大模型生成答案为什么要评估 RAG答案对但检索错检索对但答案错答案相关但不完整答案流畅但其实是幻觉传统检索评估指标 Precision / Recall / F1Precision 精准率Recall 召回率F1-ScoreRagas 自动化评估Ragas 是什么Ragas 需要什么数据Ragas 的五个核心指标faithfulness忠实性answer_relevancy答案相关性context_precision上下文精准率context_recall上下文召回率TruLens 评估与可观测性TruLens 是什么TruLens 的三个核心指标Context Relevance上下文相关性Groundedness依据性Answer Relevance答案相关性RAG 系统基础回顾一个 RAG 系统的核心流程是用户问题 - 检索相关文档 - 组织上下文 - 大模型生成答案用户问题什么情况导致了极端天气事件检索文档source/resources/document_1.txt ... source/resources/document_10.txt其中和“极端天气事件”相关的是 document_9.txt里面有这段信息随着温室气体的排放增加全球气温逐渐升高导致极端天气事件频发如暴雨、干旱、台风等。组织上下文检索出来的文档会被放进 prompt 里作为大模型回答问题的依据。根据以下上下文回答问题。 上下文 天气相关文档内容... 问题 什么情况导致了极端天气事件 回答大模型生成答案随着温室气体排放增加全球气温逐渐升高从而导致暴雨、干旱、台风等极端天气事件频发。这个回答如果来自检索到的上下文就说明 RAG 系统工作正常。但这里有一个很关键的点RAG 的答案对不一定代表 RAG 系统好。比如系统没有检索到天气文档而是检索到了 NBA 文档但大模型凭自己的常识回答对了。这种情况看起来答案没错但 RAG 流程其实失败了。所以我们评估 RAG 时要同时看两件事检索有没有找对 生成有没有忠于检索内容环节可能的问题后面对应的评估方向检索找到无关文档上下文精准率检索漏掉重要文档上下文召回率生成答案和问题不相关( 答案没有真正回答用户问题)答案相关性生成答案包含上下文没有的信息忠实性 / 依据性生成答案和标准答案差距大(答案没有真正回答用户问题)答案相似度RAG 检索 生成RAG 评估 评估检索质量 评估生成质量为什么要评估 RAG为什么 RAG 系统不能只看最终答案因为 RAG 系统不是一个单点模型而是一条链路问题 - 检索 - 上下文 - 生成 - 答案只要其中任何一环出错最终系统就可能不可靠。答案对但检索错比如用户问 什么情况导致了极端天气事件但假设系统检索到的是NBA季后赛文档 金融风险管理文档 人工智能就业文档这些上下文和问题基本无关。可是大模型本身可能知道“温室气体排放导致全球变暖从而引发极端天气”所以它仍然答对了。表面看答案正确但真实情况是RAG 检索失败了只是大模型靠自己的知识蒙对了这类系统不能信任。因为下一次遇到企业内部文档、医学资料、法律条款时大模型可能就不能靠常识答对了。所以我们需要评估检索出来的上下文到底是不是相关的这就对应后面的context_precision Context Relevance检索对但答案错第二种情况也很常见。系统找到了正确文档比如天气文档里写着随着温室气体的排放增加全球气温逐渐升高导致极端天气事件频发。但模型回答成极端天气事件主要是由于 NBA 季后赛赛程密集导致的。这就很明显是生成环节出了问题。 检索是对的生成是错的所以我们还要评估 答案是否忠于给定上下文这就对应faithfulness Groundedness它们关注的不是答案听起来顺不顺而是答案有没有被上下文支持。答案相关但不完整还有一种情况更微妙。用户问人工智能如何在金融领域的风险管理中发挥作用知识库中提到两点1. 评估客户信用风险 2. 监测市场波动发现潜在风险如果模型只回答人工智能可以评估客户信用风险。这个答案不是错的但不完整。它漏掉了“监测市场波动”这一部分。所以我们需要评估检索内容是否覆盖了标准答案所需的信息 答案是否覆盖了关键事实这就对应context_recall answer_similarity答案流畅但其实是幻觉大模型很擅长生成自然、完整、像那么回事的答案。比如问《红楼梦》中有哪些人物如果模型回答《红楼梦》中有贾宝玉、林黛玉、薛宝钗、孙悟空、诸葛亮。这个回答语法没问题也很流畅但内容混入了错误人物。这就是典型幻觉。这就是典型幻觉。在 RAG 中我们不希望模型随便发挥而是希望它 根据检索到的上下文回答问题类型说明对应评估方向检索不准找到了无关文档上下文精准率检索不全漏掉关键文档上下文召回率回答不忠实答案包含上下文没有的信息忠实性 / 依据性回答不切题答案没有真正回答用户问题答案相关性传统检索评估指标 Precision / Recall / F1先看一个检索场景假设知识库里有 10 篇文档用户问人工智能如何在金融领域的风险管理中发挥作用真正相关的文档有 2 篇document_6AI 金融风险管理 document_7AI 就业和数据分析现在 RAG 系统检索出了 4 篇document_6 相关 document_1 不相关 document_3 不相关 document_7 相关TP / FP / FN 是什么名称含义在 RAG 检索里是什么意思TPTrue Positive检索到了相关文档FPFalse Positive检索到了不相关文档FNFalse Negative相关文档存在但没有被检索到TP 2 FP 2 FN 0因为两个相关文档都被找到了没有漏掉。Precision 精准率检索出来的文档里有多少是真的相关Precision TP / (TP FP)Precision 2 / (2 2) 0.5系统检索出来的 4 篇文档只有一半是相关的。在 RAG 里Precision 低会导致什么问题 无关上下文太多 - prompt 被污染 - 大模型更容易答偏或幻觉。Recall 召回率所有应该被找到的相关文档里系统找到了多少Recall TP / (TP FN)TP 2FN 0Recall 2 / (2 0) 1.0所有相关文档都找到了。Precision 看“找来的准不准” Recall 看“该找的全不全”F1-ScorePrecision 和 Recall 有时候会互相拉扯。比如只检索 1 篇最相关文档 Precision 可能很高 Recall 可能较低再比如检索 20 篇文档 Recall 可能很高 Precision 可能较低所以我们需要一个综合指标F1 2 * Precision * Recall / (Precision Recall)Precision 0.5Recall 1.0F1 2 * 0.5 * 1.0 / (0.5 1.0)F1 1 / 1.5F1 0.6667传统指标RAG 中的理解Precision检索出来的上下文有多少是有用的Recall标准答案所需的信息有没有被检索出来F1检索质量的综合表现Ragas 自动化评估Ragas 是什么Ragas 是一个专门用来评估 RAG 系统的工具。 它的目标不是单纯判断答案对不对。而是判断检索结果好不好 答案有没有依据 答案是否回答了问题 答案和参考答案是否接近也就是说Ragas 会同时评估 RAG 的两个部分 检索质量 生成质量Ragas 需要什么数据{ user_input: query, retrieved_contexts: relevant_docs, response: response, reference: reference }字段含义user_input用户问题retrieved_contextsRAG 系统检索出来的上下文responseRAG 系统生成的答案reference人工准备的标准答案 / 参考答案比如这个问题什么情况导致了极端天气事件对应的数据可以理解为{ user_input: 什么情况导致了极端天气事件, retrieved_contexts: [ 天气文档内容..., NBA文档内容..., 金融文档内容..., 就业文档内容... ], response: 温室气体排放增加导致全球变暖从而引发极端天气。, reference: 随着温室气体的排放增加全球气温逐渐升高导致极端天气事件频发。 }Ragas 就是拿这些字段来计算不同指标。Ragas 的五个核心指标metrics[ faithfulness, answer_relevancy, context_recall, context_precision, answer_similarity ]faithfulness忠实性生成答案中的内容能不能被检索到的上下文支持它关注的是答案有没有胡编。比如上下文里只有温室气体排放增加导致全球气温升高进而导致极端天气频发。 模型回答温室气体排放增加导致全球变暖引发极端天气。 这就是忠实的。但如果模型回答极端天气主要由地震活动引起。上下文没有这个信息那 faithfulness 就会低。它评估的是答案 vs 检索上下文。。answer_relevancy答案相关性answer_relevancy 问的是生成答案有没有回答用户的问题 它关注的是答案是否切题。比如用户问AI 如何用于金融风险管理回答AI 可以分析信用数据、交易记录和市场行情评估信用风险并监测市场波动。这就是相关。但如果回答AI 可以用于汽车制造中的焊接和装配。这就不相关。它评估的是问题 vs 生成答案。context_precision上下文精准率检索出来的上下文里相关内容排得是否靠前它关注的是检索结果准不准比如用户问极端天气检索结果是1. 天气文档相关 2. NBA文档不相关 3. 金融文档不相关 4. 就业文档不相关相关文档排得比较靠后得分会更差。所以 Ragas 的 context_precision 不只是看有多少相关文档还看相关文档的排名位置。它评估的是问题 生成答案/reference vs 检索上下文context_recall上下文召回率参考答案中的信息是否能从检索上下文中找到比如标准答案是人工智能可以在金融风险管理中 1. 评估客户信用风险 2. 监测市场波动如果检索上下文只包含AI 可以评估客户信用风险。但没有“监测市场波动”那 context_recall 就不会满分。它评估的是参考答案 reference vs 检索上下文answer_similarity答案相似度生成答案和参考答案在语义上像不像比如参考答案温室气体排放增加导致全球气温升高进而引发极端天气。生成答案由于温室气体增多全球变暖加剧因此暴雨、干旱、台风等极端天气更频繁。虽然文字不同但语义很接近所以分数高。它评估的是生成答案 response vs 参考答案 reference指标评估对象关心的问题faithfulness答案 vs 上下文有没有胡编answer_relevancy答案 vs 问题有没有答题context_precision检索上下文找来的准不准排序好不好context_recall上下文 vs 参考答案该有的信息有没有找全answer_similarity答案 vs 参考答案和标准答案像不像TruLens 评估与可观测性它和 Ragas 的定位不太一样工具更像什么主要作用Ragas评分器对一批测试数据计算指标分数TruLens观察/监控工具记录 RAG 链路查看每次调用的检索、回答和反馈分数也就是说Ragas 更适合批量评估TruLens 更适合观察单次或多次 RAG 调用过程TruLens 是什么TruLens 是一个用于评估和监控 LLM 应用的工具。放到 RAG 里它主要做三件事记录每次 RAG 调用 提取检索上下文和模型回答 对上下文、问题、回答之间的关系打分比如用户问什么情况导致了极端天气事件RAG 系统会经历RAG 系统会经历TruLens 可以把这个过程记录下来然后告诉我们检索到的上下文和问题相关吗 答案和问题相关吗 答案有没有被上下文支持对比项RagasTruLens主要定位批量评估框架应用监控与评估输入方式准备评估数据集包装已有 RAG chain典型使用离线评估测试集观察实际调用链路关注点指标得分调用记录、反馈函数、dashboard是否需要 reference部分指标需要不一定需要使用体验一次性 evaluate每次调用都可记录TruLens 的三个核心指标Context Relevance上下文相关性检索出来的上下文和用户问题相关吗比如问题什么情况导致了极端天气事件检索上下文是天气文档随着温室气体排放增加全球气温逐渐升高导致极端天气事件频发。这就是相关。它评估的是问题 vs 检索上下文。Groundedness依据性生成答案是否有上下文依据比如上下文说温室气体排放增加导致全球气温升高。回答说极端天气频发是因为温室气体排放增加导致全球变暖。这个回答就有依据。它评估的是上下文 vs 生成答案。Answer Relevance答案相关性生成答案是否回答了用户问题比如用户问AI 如何用于金融风险管理回答AI 可以分析信用数据和交易记录评估客户信用风险并监测市场波动。就是相关。它评估的是问题 vs 生成答案。