本章包含5个知识点,它们之间的关系如下:
RAG(Retrieval-Augmented Generation,检索增强生成)是一种让大语言模型在生成回答之前先从外部知识库检索相关文档的技术。它将"先查资料,再回答"的流程嵌入到AI的工作方式中,使AI的回答有据可依,而非完全依赖训练时记忆的内容。
RAG是Retrieval-Augmented Generation的缩写,由三个英文单词组成:Retrieval(检索)、Augmented(增强)、Generation(生成)。中文通常译为"检索增强生成"。这个术语最早由Facebook AI Research(现Meta AI)的研究团队在2020年提出,发表于论文"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"。
这里的"增强"二字值得注意:RAG不是替代LLM,而是用外部检索到的知识来增强LLM原有的理解和生成能力。
基础大语言模型有三个根本性的局限:
RAG正是为了一次性解决这三个问题而出现的。
RAG的核心思想极其简单:先查后答。
传统LLM收到问题后,直接从自己"记住"的内容中生成答案。RAG则在生成之前插入一个检索步骤——先到知识库中找到与问题相关的文档片段,再把这些片段连同问题一起交给LLM,让LLM基于真实资料来生成答案。
这意味着LLM不再需要"记住一切"——它只需要具备理解和生成的能力,具体的知识由外部知识库提供。
RAG的工作过程分为三步:
第一步:检索(Retrieval)——用户提出问题后,系统将问题转换为向量表示,然后在知识库中搜索语义最相近的文档片段,返回最相关的几个结果。
第二步:增强(Augmentation)——系统将检索到的文档片段与用户的原始问题组合在一起,构建一个增强后的提示词(Prompt),发送给LLM。
第三步:生成(Generation)——LLM基于增强后的提示词生成答案。由于提示词中包含了真实的参考资料,LLM的回答会更准确、更有依据。
用户提问 ──→ 向量化 ──→ 在知识库中检索 ──→ 获取相关文档片段
│
↓
LLM生成答案 ←── 文档片段 + 用户问题(组合为增强提示词)
闭卷考试 vs 开卷考试 传统LLM就像闭卷考试:只能靠训练时"背下来"的知识答题,记不清的就只能猜,猜错了就是幻觉。RAG就像开卷考试:允许翻书、查资料,找到相关内容后再作答,答案自然更准确、更可靠。
图书馆员 普通的AI像一个博学但可能记错的学者——他读过很多书,但全凭记忆回答问题,有时会张冠李戴。RAG版的AI则像一个配有资料室的图书馆员——他不仅学识丰富,还可以随时查阅原始资料来确认信息,回答时能指出"这个信息来自第几本书的第几页"。
假设一位员工问AI:"公司的年假政策是什么?"
没有RAG的情况:AI可能回答一个通用的年假政策(比如国家法定标准),甚至编造一个看似合理但与公司实际情况不符的答案。
使用RAG的情况:
【第1步:检索】 - 将"公司的年假政策是什么?"转成向量 - 在公司内部文档知识库中搜索 - 找到相关段落: - 段落A:《员工手册》第5章 年假制度(相似度0.92) - 段落B:《入职须知》假期说明(相似度0.75) 【第2步:增强】 - 构建增强提示词: "请根据以下公司政策回答问题: [段落A:员工入职满一年后享有5天年假,满5年10天,满10年15天...] [段落B:年假需提前3天申请,经直属上级批准后生效...] 问题:公司的年假政策是什么?" 【第3步:生成】 - AI根据真实文档生成回答: "根据公司员工手册,年假政策如下: - 入职满1年:5天年假 - 入职满5年:10天年假 - 入职满10年:15天年假 申请流程:需提前3天申请,经直属上级批准后生效。"
答案基于公司的真实文档,准确且可追溯。
RAG带来了五个关键好处:
| 优势 | 说明 |
|---|---|
| 减少幻觉 | 答案基于检索到的真实文档,而非凭空生成 |
| 知识可更新 | 只需更新知识库中的文档,无需重新训练模型 |
| 可追溯来源 | 可以告诉用户答案来自哪个文档的哪个段落 |
| 成本较低 | 不需要为获取新知识而重新训练整个模型 |
| 保护隐私 | 私有数据可以留在本地知识库,不需要上传给模型提供商 |
误区一:"RAG就是搜索引擎"
搜索引擎返回的是一堆网页链接,需要用户自己点开、阅读、筛选、整合。RAG则是把检索和回答融为一体——它在后台完成检索,然后直接生成一个整合好的答案。用户看到的是一个完整的回答,而非一堆链接。
误区二:"用了RAG就不会出错"
RAG大幅减少了幻觉,但并不能完全消除。如果知识库中的源文档本身有错误,或者检索没有找到最相关的内容,RAG的答案仍然可能不准确。RAG的质量上限取决于知识库的质量和检索的精度。
误区三:"RAG适合所有场景"
RAG最适合有明确答案来源的事实性问答。对于创意写作、开放式讨论、需要复杂多步推理的任务,RAG的帮助有限。
多项研究表明,RAG能显著降低大语言模型的幻觉率。在知识密集型任务中,RAG系统的答案准确率通常比纯LLM高出20%-40%。[待验证]
向量检索(Vector Search)是一种基于语义相似度的信息检索技术。它将文本转换为高维数字向量(Embedding),通过计算向量之间的距离来衡量文本之间的语义相近程度,从而找到意思相关的内容。
"向量"在数学中是一组有序的数字,可以理解为一个坐标点。在AI领域,"向量化"(Embedding)是指将文字转换为一组高维数字的过程。一段文字被转换后的向量通常有几百到几千个维度(如1536维),每个维度上的数字共同编码了这段文字的"意思"。
传统的搜索方式是关键词匹配——你搜什么词,系统就找包含这个词的文档。这种方式有一个明显的局限:它只认字面,不懂意思。
比如你搜"怎么退货",关键词搜索只能找到包含"退货"二字的文档。如果公司文档里写的是"退款政策"或"商品退换流程",关键词搜索就找不到——尽管它们说的是同一件事。
向量检索正是为了解决这个"同义不同词"的问题。
向量检索的核心逻辑可以概括为三步:
按书名找书 vs 按主题找书 传统搜索像是去图书馆按书名查找——你必须知道书的确切名字才能找到。向量搜索像是告诉图书馆员"我想了解宇宙的起源",馆员会把《时间简史》《宇宙大爆炸》《天体物理学导论》都推荐给你——虽然这些书名里没有"宇宙的起源"这几个字,但它们讨论的是同一个话题。
| 维度 | 关键词搜索 | 向量检索 |
|---|---|---|
| 匹配方式 | 字面完全匹配 | 语义相似度匹配 |
| 搜"怎么退货" | 只找包含"退货"的文档 | 能找到"退款政策""商品退换"等 |
| 搜"年假" | 只找包含"年假"的文档 | 能找到"带薪休假""假期制度"等 |
| 优势 | 精确、速度快 | 理解意图、覆盖面广 |
| 局限 | 同义词遗漏 | 需要Embedding模型、计算成本更高 |
关键词匹配的世界: "退货" ──匹配──→ 包含"退货"的文档 ✓ "退货" ──不匹配→ "退款政策" ✗(词不同) "退货" ──不匹配→ "商品退换" ✗(词不同) 向量检索的世界: "退货" ───→ [0.82, 0.15, ...] (向量) "退款政策" ───→ [0.80, 0.17, ...] (向量) ← 距离很近,语义相关 ✓ "商品退换" ───→ [0.78, 0.19, ...] (向量) ← 距离很近,语义相关 ✓ "天气预报" ───→ [0.12, 0.95, ...] (向量) ← 距离很远,语义无关 ✗
一个客服系统收到用户提问:"怎么退货?"
关键词搜索结果:
向量检索结果:
向量检索覆盖了更多相关内容,AI据此生成的回答自然更完整。
知识库(Knowledge Base)是RAG系统中存储和索引文档的结构化数据集合。原始文档经过切分、向量化、索引三个步骤后,存入向量数据库,供检索时快速匹配。
知识库的构建分为四个步骤:
第一步:收集文档——收集需要纳入知识库的所有原始资料,支持多种格式:PDF、Word、网页、Markdown等。
第二步:文档切分(Chunking)——将长文档切分成小段落,每段通常几百字。切分太大则检索不够精确,切分太小则丢失上下文。切分策略的好坏直接影响检索质量。
第三步:向量化(Embedding)——用Embedding模型将每个文档片段转换为向量,每个片段变成一串高维数字(如1536维)。
第四步:建立索引并存储——将所有向量存入向量数据库,建立高效的索引结构,支持毫秒级的相似度搜索。
原始文档 → 切分(Chunking) → 向量化(Embedding) → 索引(Indexing) → 向量数据库 示例: 1. 一份100页的员工手册 2. 切分成500个段落 3. 每个段落转成1536维向量 4. 建立索引便于快速搜索 5. 存入向量数据库(如Pinecone、Milvus、Chroma)
| 组件 | 职责 | 常见选择 |
|---|---|---|
| 文档加载器 | 读取各种格式的原始文档 | LangChain Document Loaders、LlamaIndex |
| 文本切分器 | 将长文档切分为合适大小的片段 | RecursiveCharacterTextSplitter等 |
| Embedding模型 | 将文本片段转换为向量 | OpenAI text-embedding-3、BGE等 |
| 向量数据库 | 存储向量并支持相似度搜索 | Pinecone、Milvus、Chroma、Weaviate |
建知识库的过程就像整理一个图书馆:
误区:"知识库越大越好"
知识库的质量远比数量重要。如果塞入大量过时、重复、低质量的文档,反而会干扰检索——检索到错误或无关的内容,AI的回答质量也会下降。定期清理和更新知识库,比一味扩大规模更重要。
| 知识库类型 | 适合存入的内容 | 不适合存入的内容 |
|---|---|---|
| 企业知识库 | 规章制度、产品文档、FAQ | 临时草稿、过期通知 |
| 法律知识库 | 法律条文、司法解释、判例 | 个人法律意见 |
| 学习知识库 | 教材、课程笔记、论文 | 未整理的碎片信息 |
RAG的应用场景是指利用检索增强生成技术,将外部知识库与大语言模型结合,为特定领域或任务提供准确、可追溯回答的实际使用情境。
RAG的应用场景可以按知识来源和使用者分为几类:
一、企业内部知识问答——员工无需翻阅大量文档,直接向AI提问即可获得基于公司真实文档的回答。价值:7x24小时可用,回答一致准确,减少HR和行政部门的重复咨询。
二、智能客服——传统客服AI只能回答预设的FAQ,RAG客服AI可以查阅完整的产品文档来回答各种问题。
客户:"这款洗衣机能洗羽绒服吗?" RAG客服流程: 1. 检索该洗衣机的产品说明书 2. 找到"洗涤程序"章节 3. 发现有"羽绒洗"程序 4. 回答:"可以的,这款洗衣机配有专门的羽绒洗程序, 建议水温设置40°C以下,转速选择低速档。"
三、专业领域助手(法律/医疗)——这些领域对准确性要求极高,容不得幻觉,必须有据可查。
问:"员工被辞退的经济补偿怎么计算?"
RAG流程:
1. 检索《劳动合同法》相关条款
2. 找到第四十七条
3. 引用条文给出准确回答:
"根据《劳动合同法》第四十七条规定,
经济补偿按劳动者在本单位工作的年限,
每满一年支付一个月工资的标准向劳动者支付。"
四、个人知识管理——将个人的学习笔记、读书摘录、工作资料存入知识库,打造专属的AI助手。
五、学术研究——将大量论文和研究报告存入知识库,快速定位相关研究成果和数据。
| 场景 | 知识库内容 | 典型问题 | 核心价值 |
|---|---|---|---|
| 企业客服 | 产品文档、FAQ | "这个产品怎么用" | 降低人工成本 |
| 内部助手 | 规章制度、流程文档 | "报销流程是什么" | 减少重复咨询 |
| 法律助手 | 法律法规、判例 | "这种情况怎么处理" | 专业可靠 |
| 医疗助手 | 医学文献、诊疗指南 | "这个症状可能是什么" | 辅助诊断 |
| 教育助手 | 教材、笔记 | "这个概念是什么意思" | 个性化学习 |
目前已有不少产品内置了RAG能力:
| 产品 | RAG应用方式 | 说明 |
|---|---|---|
| ChatGPT | 文件上传后提问 | 上传PDF/文档后,AI基于文档内容回答 |
| Kimi | 长文本对话 | 支持超长文档的阅读和问答 |
| Notion AI | 工作空间搜索 | 搜索你的笔记和文档来回答问题 |
| Dify / FastGPT | 企业级RAG平台 | 开源工具,支持私有化部署和知识库管理 |
RAG与微调(Fine-tuning)是两种让大语言模型获取新知识或新能力的技术路径。RAG通过外挂知识库在推理时动态检索信息,微调则通过继续训练来将知识"写入"模型参数中。两者解决的问题不同,常常可以结合使用。
| 维度 | RAG | 微调(Fine-tuning) |
|---|---|---|
| 知识更新 | 更新知识库文档即可,即时生效 | 需要重新训练模型 |
| 成本 | 较低,主要是知识库存储和检索 | 较高,需要GPU和训练时间 |
| 时效性 | 可实时更新 | 训练完成后固定 |
| 可解释性 | 可追溯答案来自哪个文档 | 黑盒,无法追溯 |
| 适用任务 | 事实性问答、查询最新信息 | 学习特定风格、提升特定能力 |
| 实现难度 | 相对简单 | 需要机器学习专业技能 |
选择RAG的情况:
选择微调的情况:
两者结合:在实际生产环境中,RAG和微调往往可以结合使用——先微调模型使其具备领域理解能力,再通过RAG提供实时知识库支持。
RAG就像带着参考书去考试——随时可以翻书查找最新、最准确的信息,但你需要先找到正确的页码。
微调就像考前强化训练——把知识"刻"进脑子里,考试时不需要翻书就能答,但如果知识更新了,你需要重新训练。
| 知识点 | 一句话总结 |
|---|---|
| RAG检索增强生成 | 让AI在生成回答前先检索外部知识库,从"闭卷考试"变成"开卷考试" |
| 向量检索 | 基于语义相似度而非关键词匹配来搜索,能理解"同义不同词" |
| 知识库构建 | 文档经过切分、向量化、索引三步后存入向量数据库,成为RAG的数据基础 |
| RAG的应用场景 | 企业知识问答、智能客服、专业领域助手、个人知识管理等 |
| RAG与微调的对比 | RAG适合知识可变、需要追溯来源的场景;微调适合学习风格和提升能力 |
本章的核心认知:RAG的本质是给AI配了一个"资料室"——AI的聪明才智(理解和生成能力)来自模型本身,但具体的知识来自外部检索。这个"先查后答"的简单思路,解决了LLM知识过时、幻觉编造、无法访问私有数据三大痛点,是当前最实用、最广泛部署的LLM增强技术之一。
如果要为你的公司或学校建一个RAG知识库,你会放入哪些文档?请列出至少5类文档,并说明每类文档对应的典型问题。
以下场景分别更适合使用RAG还是微调?说明你的理由:
打开ChatGPT(或其他支持文件上传的AI工具),上传一份你手边的PDF文档(如一份说明书、一篇论文),然后对文档内容提几个问题。观察AI是如何基于文档内容回答的——这就是最简单的RAG体验。