当前位置: 首页 > news >正文

大模型|大模型中的RAG 的评估

🌞欢迎来到人工智能的世界
🌈博客主页:卿云阁

💌欢迎关注🎉点赞👍收藏⭐️留言📝

📆首发时间:🌹2026年6月4日🌹

✉️希望可以和大家一起完成进阶之路!

🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


目录

RAG 系统基础回顾

用户问题

检索文档

组织上下文

大模型生成答案

为什么要评估 RAG

答案对,但检索错

检索对,但答案错

答案相关,但不完整

答案流畅,但其实是幻觉

传统检索评估指标 Precision / Recall / F1

Precision 精准率

Recall 召回率

F1-Score

Ragas 自动化评估

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_6:AI 金融风险管理 document_7:AI 就业和数据分析

现在 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 = 2
FN = 0
Recall = 2 / (2 + 0) = 1.0

所有相关文档都找到了。

Precision 看“找来的准不准” Recall 看“该找的全不全”

F1-Score

Precision 和 Recall 有时候会互相拉扯。

比如:

只检索 1 篇最相关文档: Precision 可能很高 Recall 可能较低

再比如:

检索 20 篇文档: Recall 可能很高 Precision 可能较低

所以我们需要一个综合指标:

F1 = 2 * Precision * Recall / (Precision + Recall)

Precision = 0.5
Recall = 1.0

F1 = 2 * 0.5 * 1.0 / (0.5 + 1.0)
F1 = 1 / 1.5
F1 = 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 生成答

案。

http://www.jsqmd.com/news/952375/

相关文章:

  • 【AI工具产品路线图预测权威指南】:20年实战经验总结的5大关键信号与3年趋势推演模型
  • 别再只懂MSE了!PyTorch实战:用Smooth L1 Loss搞定目标检测中的边界框回归
  • VcXsrv魔法级配置:让Windows变身Linux图形工作站
  • Qwen3.6-Plus工程落地实战:国产编程模型如何支撑企业级Java/Python开发
  • 实战演练:基于快马ai快速构建电商后台商品数据库管理系统的全流程
  • ai辅助测试开发:让快马平台智能生成用户密码修改功能测试用例与代码
  • 手把手教你用TwinCAT 3为EtherCAT设备生成XML配置文件(附避坑指南)
  • 别再死记硬背了!用这4种方法搞定正激拓扑的磁复位,选型避坑指南
  • 客户拜访回来攒了7段对接短视频要转文字,这款短视频文字提取选手胜出适配2026提效需求
  • 2026年新消息:东莞诚信的圆瓶贴标机定做厂家选型指南与骐麟新创智能推荐 - 2026年企业资讯
  • RTX5凭啥通过汽车级安全认证?深入剖析其在STM32F407上的零中断延迟与确定性
  • 3分钟快速安装Figma中文界面插件:设计师人工翻译校验的终极指南
  • 告别重装!用Win32DiskImager给树莓派做“系统快照”,实现多设备一键部署
  • Kimi k2.6 LeetCode 2983. 回文串重新排列查询 Java实现
  • 别再在PyCharm里直接敲pip install了!SyntaxError报错的真正原因和3种正确安装姿势
  • 保姆级教程:用MATLAB处理CSV实测数据,从频谱到1/3倍频程的完整分析流程
  • 中小企业数字基建怎么选?兜客互动的一站式服务为何值得优先考虑
  • 医用包装选型:确保无菌环境下的阻菌性关键要点
  • Matlab版DBN-BP两阶段回归预测工具包:含训练脚本、可视化结果与实测数据
  • STM32CubeMX实战:用待机模式给电池供电设备‘续命’,实测功耗能降多少?
  • 别再乱用基准面了!中望3D 2022复杂零件建模的基准创建与规划指南
  • VirtualBox虚拟机搭建LinuxLite与Scratch编程学习环境全攻略
  • FastAPI+Uniapp私域知识库问答系统:支持PDF/TXT上传、多端部署与语义检索
  • 别只当记录仪用!挖掘CANoe Trace的隐藏技巧:时间差分析、事件报文过滤与协议视图详解
  • Logstash管道(Pipeline)配置入门:手把手教你写第一个`.conf`文件并理解input/filter/output
  • 轻量级3D场景图技术:开放词汇与语义属性组合
  • AI工具×智能简历:3天打造HR秒回率超85%的动态求职系统
  • GCC 的 inline 扩展,和c99 inline规则的异同,static inline的统一
  • 用Python+OpenCV复现1952年植物光谱实验:从叶片颜色到叶绿体提取,手把手教你做高光谱分析
  • TI XDS100V3仿真器‘失忆’了?别慌,用FTProg和这个XML文件5分钟救活它