这门 RAG 课值得上,重点在评测而不在搭建
Jerry Liu 和 Anupam Datta 的两小时课程讲 RAG 三元组,三项检查找出问题、上下文与答案之间哪一环断了。
要点速览
- 课程时长 2 小时 5 分钟,Beginner 级别,含 6 个视频和 4 个代码示例。保质期最长的部分是 RAG 三元组。
- 句子窗口检索按单个句子匹配,再把前后句子组成的整个窗口交给 LLM。窗口大小要以实际配置为准,而不是默认值。
- 三元组用来诊断故障,而不是质量保证。在 Snowflake 的基准测试中,上下文相关性的 LLM 评审 F1 只有 64%。
DeepLearning.AI 的 Building and Evaluating Advanced RAG 只有 2 小时 5 分钟,包含 6 个视频和 4 个代码示例。标题把“搭建”放在前面,但真正值得带去客户现场的是“评测”部分:RAG 三元组,也就是课程用来衡量 LLM 答案相关程度和忠实程度的三项指标。
对前线部署工程师(FDE)来说,这部分最值得细读。把 RAG 管道跑起来只要一个下午。难的是客户说“机器人回答错了”的时候:你得说清楚错在哪、为什么错,以及你的修复有没有让它变好。
谁来讲,讲了什么?
两位讲师是 LlamaIndex 的 Jerry Liu 和 TruEra/Snowflake 的 Anupam Datta。课程由 LlamaIndex 和 TruEra 两家合作方共同制作,难度为 Beginner,PRO 账户另有一份计分作业。
课程页面只显示 2025 年 10 月 7 日的更新日期,没有原始发布日期。这一点在重跑 notebook 时很重要。代码基于 LlamaIndex 编写,动手前先对照当前文档核对类名和参数,免得一个下午耗在版本报错上。
第一课:三元组是诊断工具
三元组由 TruEra 的开源库 TruLens 设计,用来在 RAG 架构的每条边上捕捉幻觉。上下文相关性检查每段检索到的上下文是否与问题相关;有据性衡量 LLM 的论断在多大程度上能追溯到原文;答案相关性则看答案对提问者是否真正有用。
三元组的真正价值,在于它能指出哪一环出了问题。设想一个查询人事政策的聊天机器人,员工问自己还剩几天年假。如果机器人拿差旅报销政策来回答,上下文相关性多半很低:检索器取错了文档,改提示词无济于事。
第二种情况:检索器取到了正确的休假政策,但机器人给出的天数在文档里根本没有。这时有据性会很低,因为模型超出给定上下文,夸大或编造了细节。
问题出在答案生成,要做的是收紧提示词或更换模型,而不是去动检索器。
第三种情况最难发现:上下文正确,每条论断也都有据可查,但机器人只笼统地介绍了请假流程,没有说出天数。答案有据,却帮不上提问者,所以答案相关性低。修复办法是要求模型针对所问作答。
这三个数字能把“机器人没用”的抱怨变成一张地址明确的工单。第一次和客户坐下来工作时,先要几条机器人答错的问题,逐条给三元组打分,再去动代码。
第二课:用小句子检索,给 LLM 更大的段落
句子窗口检索解决了一个常见矛盾:小分块检索精准但缺少上下文,大分块上下文充足却容易带进无关内容。按课程讲解,这项技术检索的不只是最相关的那一句,而是包括它前后句子在内的一个窗口。
在 LlamaIndex 中,系统按每个单句的嵌入进行匹配,然后由 MetadataReplacementNodePostProcessor 把每个句子替换成前后句子组成的窗口,再交给 LLM。根据文档,默认窗口是每侧 5 句,但代码示例设置的是 window_size=3。
所以,上下文的量要按实际运行的配置来算。按默认每侧 5 句算:每个匹配句子最多带 11 句进入提示词,取前 3 个结果时,LLM 最多读到 33 句。
若用 window_size=3,这两个数字分别是 7 和 21;如果匹配的句子彼此挨得近,窗口会重叠,实际句数还会更少。和客户估算延迟与 token 成本时,就用这个自己算出的上限。
第三课:分数高不等于有保证
TruLens 认为,三项分数都高时,可以确信应用没有产生幻觉。这个说法要带点怀疑来看,因为其他资料把三元组当作调试工具,而非质量保证。原因在打分者本身:三项指标通常都由 LLM 评审(LLM-as-judge)打分。
Snowflake 对这些评审做过基准测试:有据性评审的 F1 为 81%,答案相关性为 79%,上下文相关性只有 64%。这些评审与人工评分者的一致性从一般到较高不等,这意味着仍有部分问题会被打错分,上下文相关性尤其如此。
Snowflake 的另一篇文章表明,要改进评审,同样离不开标准答案数据。他们用 Eval-Guided Optimization 优化了评审的提示词;而在没有基准指引的情况下,TextGrad 没能改进任何一个评审。
给 FDE 的启示:向客户汇报三元组分数之前,先准备一小组人工标注的问题,弄清评审偏差有多大。
应该按什么顺序学?
课程难度为 Beginner。即便如此,如果你已经亲手搭过一个基础的 RAG 管道,收获会更大,因为学到三元组时,你手上已经有一个可以打分的系统。先看句子窗口那一课,再看评测部分,然后用自己的文档而不是示例数据重跑 4 个代码示例。
简历上不要只写“完成了这门课程”,而是写一行带前后对比数字的经历:比如你把一次故障定位到检索器,在一组真实问题上提高了上下文相关性,并用自己人工评分的标签核对了评审的打分。
一行证书只能说明你看完了课程。一张三元组分数表,配上你亲手标注的标签,能让面试官看到你不只会搭建,还会度量。
这篇文章对你有帮助吗?
感谢你的反馈!
8 个信源
- Building and Evaluating Advanced RAG - DeepLearning.AI · 2025-10-07
- sentence window retrieval - DeepLearning.AI
- Metadata Replacement + Node Sentence Window - LlamaIndex
- RAG Triad - TruLens
- RAG triad (PromptLayer glossary)
- What is the RAG Triad? - TruEra
- Benchmarking LLM-as-a-Judge for the RAG Triad Metrics · 2025-01-31
- Eval-Guided Optimization of LLM Judges for the RAG Triad · 2025-02-04