Skip to content

RAG★

RAG(检索增强生成)是什么、为什么需要、三阶段架构、与长上下文和微调的定位差异。

Updated View as Markdown

RAG 概述

RAG(Retrieval-Augmented Generation,检索增强生成)是把外部知识库接入 LLM 生成流程的技术,2020 年由 Lewis 等人提出。核心思想一句话:模型不靠记忆回答,先查资料再回答,相当于开卷考试。

为什么需要 RAG

LLM 的三个天生短板:

  1. 幻觉。 模型是概率生成器,不知道的事情会一本正经地编。RAG 用检索到的真实文档约束生成,答案有据可依
  2. 知识过期。 参数知识有截止日期,问今天的股价、最新的政策,模型只能按旧数据答。RAG 知识库可以分钟级更新
  3. 私有数据进不去。 企业文档、合同、内部手册不能写进模型权重(训练成本高、无法删除、有泄露风险)。RAG 把知识放在模型之外,按需注入

附带收益:可溯源。每个答案都能指出来自哪篇文档的哪个片段,出错能定位到具体知识条,这是企业场景的硬需求。

三阶段架构

RAG 三阶段架构

  • 索引(Indexing):离线完成。原始文档解析成纯文本,切成适合检索的块(chunk),用嵌入模型转成向量,存入向量数据库
  • 检索(Retrieval):在线完成。用户查询用同一个嵌入模型向量化,在向量库里做相似度搜索,取最相关的 Top-K 个块
  • 生成(Generation):在线完成。把原始问题和检索到的片段拼进 Prompt,LLM 生成回答,回答基于检索内容而非模型记忆

索引是离线的,检索和生成是在线的,每次请求的延迟主要花在后两段。

与相邻方案的定位

方案 比喻 特点
RAG 开卷考试,按需查书 知识可更新、可溯源,检索质量决定上限
长上下文 把整本书搬进考场 实现简单,但塞满窗口注意力稀释、成本高
微调 背书进脑子 行为风格深度定制,但知识更新慢、不可溯源

三者不是替代关系。长上下文适合单次任务需要完整文档的场景;RAG 适合知识库大、频繁更新的场景;微调解决的是“怎么说”,RAG 解决的是“说什么”。

面试追问

  1. RAG 解决什么问题? 幻觉、知识过期、私有数据接入、可溯源。模型不靠记忆回答,先检索再生成
  2. 为什么不全塞进长上下文? 塞满窗口触发上下文衰减和 Lost in the Middle,注意力稀释,成本随 token 线性涨。RAG 按需注入,窗口始终只装相关内容
  3. 三阶段各做什么? 索引(解析、分块、向量化、入库,离线)、检索(查询向量化、相似度 Top-K,在线)、生成(拼接 Prompt、LLM 回答,在线)
  4. 检索质量为什么是上限? 生成层只是整理检索到的内容,没检索到的东西 LLM 变不出来。调优的主战场永远是检索层,不是换更强的模型
  5. RAG 和微调能一起用吗? 能,且是生产常态。微调让模型学会输出格式和领域语言,RAG 提供最新事实
Navigation

Type to search…

↑↓ navigate↵ selectEsc close