跳到正文
原文
北京智源研究院· 图科学实验室Graph Science Lab·· 3 天前精选AI 评分70

斯坦福CS 329Z《Agent工程》第3讲:RAG

课程 | 2026年斯坦福CS 329Z《Agent工程》| 第3讲:检索增强生成(RAG)

AI 摘要

斯坦福CS 329Z《Agent工程》第3讲介绍了检索增强生成(RAG)技术,旨在解决语言模型自身记忆不足的问题,通过检索相关文档来辅助生成回答,并强调动态更新和可解释性,同时详细阐述了RAG的流程、索引构建、检索方法及失败模式

正文 · 中文整理稿

CS329Z 第 3 讲课件第 3 页

CS329Z 第 3 讲课件第 2 页

CS329Z 第 3 讲课件第 4 页

CS329Z 第 3 讲课件第 5 页

CS329Z 第 3 讲课件第 6 页

CS329Z 第 3 讲课件第 7 页

CS329Z 第 3 讲课件第 8 页

CS329Z 第 3 讲课件第 9 页

CS329Z 第 3 讲课件第 10 页

CS329Z 第 3 讲课件第 11 页

CS329Z 第 3 讲课件第 12 页

CS329Z 第 3 讲课件第 13 页

CS329Z 第 3 讲课件第 14 页

这是「斯坦福 Agent 工程课」系列的第 3 篇。 课程是 Stanford 2026 年秋季的 CS 329Z《Engineering AI Agents》,讲师是 Diyi Yang、Michael Ryan 和 John Yang。 课件在课程官网公开,我每讲写一篇,按课件逐页讲,一页不跳。 第 3 讲在官网课表上是 9 月 30 日,标题是「Retrieval-Augmented Generation (RAG)」,课件封面写的是 RAG + Agents,主讲是 Diyi Yang,一共 63 页。

课件右下角印的页码从第 21 页起比 PDF 多 1,本文的页码一律按 PDF 算。 这一讲要回答的问题,写在第 9 页的学习目标里:RAG 的流程是怎么搭起来的,会在哪里出问题,该给什么建索引,又该怎么搜。 下面是这一讲的大纲,一共七块:课程项目,为什么要 RAG,RAG 的流程,建索引,检索,Agentic RAG,失败模式。 每块后面的括号是课上分给它的分钟数。 后文按这个顺序走。 CS329Z 第 3 讲课件 · 第 3 页 开场 开场两页是封面和课程通知,交代了接下来两周的几个日期。

CS329Z 第 3 讲课件 · 第 2 页 第 1 页是封面,课程名下面是这一讲的标题 RAG + Agents,讲师一栏只有 Diyi Yang。 封面页没有别的信息,并进这里一起讲。 第 2 页是通知,五条。 候补和旁听的事项。 算力资源见 Canvas 和邮件。 office hours 改成混合形式,一半在 Zoom 上,一半线下。 作业 1 在 10 月 5 日发布。 项目开题报告 10 月 9 日截止。 第 3 页是大纲,已经放在本文开头。

一、课程项目 项目要自己设计,搭建并评估一个 agent 系统; 课件要求评估做得严格,只跑通一次的 demo 拿不到高分。 CS329Z 第 3 讲课件 · 第 4 页 第 4 页让学生挑一个自己感兴趣的题目,列了五个要先想清楚的问题:你的 agent 做什么任务? 背后是什么研究问题? 需要哪些数据或 API? 用哪些框架? 怎么评估? CS329Z 第 3 讲课件 · 第 5 页 第 5 页把项目要求说得更具体。 目标是设计,搭建和评估一个你自己的 agent 系统。

重点可以放在三类方向上:搭 agent 本身,包括检索,工具使用,记忆,多 agent 系统和优化; agent 需要的数据; 或者评估 agent,让 agent 更安全。 这一页把「严格」一词标成红色,后面跟着「评估」,下面有四条。 只跑通一次的 demo 拿不到高分。 要尽早定义清楚:任务是什么,数据从哪里来,什么算成功。 衡量的办法可以是代码评分器,LLM 当裁判,人工打分,或者混着用。 报告里要有很多个任务,要有基线,还要说清 agent 在哪里失败,为什么失败。

补充 「LLM 当裁判」(LLM-as-judge)是让一个语言模型按评分标准去给另一个系统的输出打分。 官网课表上 11 月 9 日那一讲专门讲这个话题。 CS329Z 第 3 讲课件 · 第 6 页 第 6 页是项目题目的例子,分两栏。 左栏是研究方向,九条:在成本,延迟和安全上评估 agent; 适应新的工具,API 或界面; 对提示注入和工具报错的鲁棒性; agent 为什么会用错工具; 从少量数据里学会用工具; 解释 agent 的行为; 长尾和长周期任务里的边界情况;

人和 agent 协作,以及 agent 之间协作; 多 agent 系统,记忆,规划,监督,奖励投机。 右栏是具体点子,六条:读课程大纲,把截止日期放进日历的 agent; 给下一学季排课的优化器; 发现论文并做总结的 agent; 校园活动的汇总和推荐; 专门针对一个代码库,框架或语言的编程 agent; 对一个现成的 agent 做严格评估,把它的失败模式找出来。 补充 提示注入(prompt injection)指的是在 agent 会读到的内容里藏进指令,让 agent 去做用户没让它做的事。

奖励投机(reward hacking)指的是模型找到了拿高分的捷径,分数上去了,任务本身没做好。 CS329Z 第 3 讲课件 · 第 7 页 第 7 页是组队和要考虑的事。 建议 1 到 3 人一组。 组员之间要把分工划清楚。 有需要就联系教学团队。 可以和旁边的同学聊,也可以用 Ed Discussion 讨论区。 要考虑数据,agent 框架,算力和评估手段是不是拿得到。 最后一条用红字写着:项目点子的例子这周晚些时候发出来。 CS329Z 第 3 讲课件 · 第 8 页 第 8 页是项目成功的建议,六条。

早点开始,每周推进,不要最后赶工。 先把数据拿到手。 要有一个清楚,定义明确的研究问题,有创意的加分。 用红色加粗的一条是:结果要能让我们学到点东西。 结果要好好呈现,做好可视化。 来 office hours 找我们聊。 二、为什么要 RAG 语言模型自己记不住所有东西,也记不住新东西; 检索让它在回答前先查到相关内容,而且能指出答案出自哪份文档。

CS329Z 第 3 讲课件 · 第 9 页 第 9 页又是一次大纲,这次多了学习目标那一句,也就是本文开头引的那句:学会 RAG 的流程怎么搭,在哪里出问题,该给什么建索引,怎么搜。 CS329Z 第 3 讲课件 · 第 10 页 第 10 页用一个课程里的问题开场:「这周哪一场 office hours 人最少? 」 左边是只靠 LLM 的回答:「试试周三下午那场,一周中间的时段通常最清静。 」 右边是 LLM 加上检索。 先检索到一条记录:「排队日志,最近 3 周:周二下午 4 点平均 14 人在等;

周四上午 9 点,3 人。 」然后回答:「周四上午 9 点,你前面大约 3 个学生。 」 CS329Z 第 3 讲课件 · 第 11 页 第 11 页讲用检索弥补语言模型的不足。 与其让语言模型把所有东西都背下来,能不能在需要的时候,把相关又有用的内容及时递给它? 检索就是找出这类内容的常用办法。 课件列了它的两个好处。 一是动态:往检索系统里更新或添加文档很容易。 二是可解释:语言模型可以给出指向检索文档的引用,方便人去核对它生成的内容。 页面底部是一条流程图。 问题是「什么在保护消化系统不受感染?

」,先进检索器,检索器从文本库里取回一段话:「在胃里,胃酸和蛋白酶是抵御摄入病原体的强力化学防线。 」这段话标着出处 [1] Wikipedia 的 Immune system 词条。 这段话再交给阅读器,最后输出的答案是「胃酸和蛋白酶 [1]」,带着引用编号。

CS329Z 第 3 讲课件 · 第 12 页 第 12 页说检索常用在开放域问答上,例子来自 Chen 等人 2017 年的论文《Reading Wikipedia to Answer Open-domain Questions》,系统叫 DrQA,课件附了它的 GitHub 地址。 问题是「1933 年华沙有多少居民说波兰语? 」。 左半边是文档检索器,从维基百科里找出相关的文章; 右半边是文档阅读器,从找到的文章里读出答案:833,500。

补充 开放域问答指的是问题不限定范围,也不提前给出包含答案的文章,系统要自己去一个大文档库里找。 CS329Z 第 3 讲课件 · 第 13 页 第 13 页把上一页的做法写成一个框架,叫检索器加阅读器。 输入是一大批文档 D1 到 DN,加上一个问题 Q; 输出是一个答案字符串 A。 检索器是一个函数,输入文档库和问题,输出 K 段文字 P1 到 PK,K 是事先定好的,比如 100。 阅读器是另一个函数,输入问题和这 K 段文字,输出答案 A。 课件在旁边注了一句:这就是一个阅读理解问题。

课件写的检索器是一个标准的 TF-IDF 稀疏检索模型,是固定的模块。 阅读器是一个神经网络阅读理解模型,可以在 SQuAD 和其他远程监督的问答数据集上训练; 课件还写了另一种做法,直接用一个零样本的 LLM,比如 ChatGPT。 补充 TF-IDF 按词打分:一个词在这篇文档里出现得越多,在整个文档库里越少见,它对这篇文档的分就越高。 「稀疏」是说每篇文档表示成一个很长的向量,每一维对应词表里的一个词,绝大多数维度是 0。

SQuAD 是 Stanford 的阅读理解数据集,给一段维基百科文章和一个问题,答案是文章里的一段原文。 CS329Z 第 3 讲课件 · 第 14 页 第 14 页是 RAG 这个名字的出处,图来自 Lewis 等人的论文,课件标的年份是 2021,旁边写着:另见 REALM,DPR 等工作。 图从左往右读。 左边是三种任务的输入:问答任务的问题,例如「给『中耳』下定义」; 事实核查任务的陈述,例如「奥巴马生于夏威夷」; Jeopardy 出题任务的答案,例如「神曲」。 输入先进查询编码器,得到向量 q(x)。

检索器 p_η 是「非参数」的,它拿 q(x) 去文档索引里做 MIPS 搜索,取回几篇文档 z1 到 z4,每篇文档有自己的向量 d(z)。 这些文档交给生成器 p_θ,生成器是「参数」的,生成结果再做一步边缘化,得到输出。 右边是三种任务的输出:问答的答案「中耳包括鼓室和三块听小骨」; 事实核查的标签「supports」,也就是支持; Jeopardy 出的题是「这部 14 世纪的作品

CS329Z 第 3 讲课件第 15 页

CS329Z 第 3 讲课件第 16 页

CS329Z 第 3 讲课件第 17 页

CS329Z 第 3 讲课件第 18 页

CS329Z 第 3 讲课件第 19 页

CS329Z 第 3 讲课件第 20 页

CS329Z 第 3 讲课件第 21 页

CS329Z 第 3 讲课件第 22 页

CS329Z 第 3 讲课件第 23 页

CS329Z 第 3 讲课件第 24 页

CS329Z 第 3 讲课件第 25 页

CS329Z 第 3 讲课件第 26 页

CS329Z 第 3 讲课件第 27 页

CS329Z 第 3 讲课件第 28 页

CS329Z 第 3 讲课件第 29 页

CS329Z 第 3 讲课件第 30 页

CS329Z 第 3 讲课件第 31 页

CS329Z 第 3 讲课件第 32 页

CS329Z 第 3 讲课件第 33 页

CS329Z 第 3 讲课件第 34 页

CS329Z 第 3 讲课件第 35 页

CS329Z 第 3 讲课件第 36 页

CS329Z 第 3 讲课件第 37 页

CS329Z 第 3 讲课件第 38 页

CS329Z 第 3 讲课件第 39 页

CS329Z 第 3 讲课件第 40 页

CS329Z 第 3 讲课件第 41 页

CS329Z 第 3 讲课件第 42 页

CS329Z 第 3 讲课件第 43 页

CS329Z 第 3 讲课件第 44 页

CS329Z 第 3 讲课件第 45 页

CS329Z 第 3 讲课件第 46 页

CS329Z 第 3 讲课件第 47 页

CS329Z 第 3 讲课件第 48 页

CS329Z 第 3 讲课件第 49 页

CS329Z 第 3 讲课件第 50 页

CS329Z 第 3 讲课件第 51 页

CS329Z 第 3 讲课件第 52 页

CS329Z 第 3 讲课件第 53 页

CS329Z 第 3 讲课件第 54 页

CS329Z 第 3 讲课件第 55 页

CS329Z 第 3 讲课件第 56 页

CS329Z 第 3 讲课件第 57 页

CS329Z 第 3 讲课件第 58 页

CS329Z 第 3 讲课件第 59 页

CS329Z 第 3 讲课件第 60 页

CS329Z 第 3 讲课件第 61 页

CS329Z 第 3 讲课件第 62 页

CS329Z 第 3 讲课件第 63 页

来源:北京智源研究院 · hub.baai.ac.cn

00