RAG 是什么?
RAG 是什么?它解决了大模型应用中的什么问题?
文章内容

RAG 是什么?它解决了大模型应用中的什么问题?
这是一道大模型应用的基础概念题,面试官想看你是否理解 RAG 的本质以及它在大模型落地中的价值。核心考察点有两个:RAG 的定义和工作原理、RAG 相比纯 LLM 的优势。
RAG 是什么
RAG = Retrieval-Augmented Generation(检索增强生成)
简单说,就是给大模型接一个"图书馆"。它不是让模型自己硬想答案,而是先从外部知识库检索相关内容,再带着这些资料去生成回答。
想象你参加开卷考试,题目不会怎么办?你会去翻书找资料,然后结合找到的内容组织答案。RAG 就是这个思路——它让 LLM 从"只靠记忆答题"变成"先查资料再回答"。
这种架构特别适合需要精准回答私有知识或实时信息的场景。

RAG 解决了什么问题
大模型有三个硬伤,RAG 恰恰能打中这些痛点:
1. 知识有截止日期
训练数据不可能涵盖最新信息。ChatGPT 的知识截止到 2024 年 1 月,问它今天股市怎么样,它只能瞎编。RAG 可以接实时数据库,让回答跟上最新动态。
2. 幻觉问题
LLM 有时候会一本正经地胡说八道——生成的内容语法正确、逻辑通顺,但事实错误。RAG 的解决方案是:答案必须有据可查,检索出来的文档就是"锚点",能大幅减少幻觉。
3. 私有知识无法回答
公司内部文档、产品手册、客服历史记录——这些数据根本没在模型训练里。直接问 LLM,只能得到通用回答。RAG 可以构建私有知识库,让模型"懂"这些专有内容。
4. 领域知识深度不足
医学、法律、金融这些专业领域,通用大模型往往只知道皮毛。RAG 允许你灌入专业资料,让模型具备领域专家级别的回答能力。

RAG 工作流程
RAG 的完整流程分 6 步,理解这个流程是回答"怎么实现的"这类追问的关键:
第一步:文档分块(Chunking)
把长文档切成小段。为什么要分?因为大模型有上下文长度限制,不可能把整本书都塞进去。一般切成 500-1000 字的小块。
第二步:嵌入向量(Embedding)
把每块文字转成数学向量——也就是一串数字。这一步用的是专门的 embedding 模型,比如 text-embedding-ada-002。相同含义的内容,转成的向量在数学上"距离更近"。
第三步:构建索引(Indexing)
把这些向量存进向量数据库,比如 Milvus、Pinecone、ChromaDB。索引就像图书馆的目录卡片,方便快速定位。
第四步:查询处理(Query Processing)
当用户提问时,把问题本身也转成向量。
第五步:相似度检索(Retrieval)
用问题向量去匹配知识库中最相似的文档块。向量数据库会返回 Top-K 个最相关的块。
第六步:生成回答(Generation)
把检索到的文档块 + 用户问题一起塞给 LLM,让它"带着资料"生成答案。
整个过程可以理解为:图书馆找书 → 找到参考资料 → 带着资料回答。

面试怎么答
基础版(150字)
RAG,即检索增强生成,是一种将外部知识检索与大语言模型结合的技术架构。它主要解决三个问题:一是知识过时,模型训练数据有截止日期,无法回答实时信息;二是幻觉问题,RAG 让答案有据可查,减少胡说八道;三是无法访问私有数据,企业内部文档、产品手册这些内容,RAG 可以通过构建知识库让模型"学会"。工作流程是:文档分块 → 向量嵌入 → 构建索引 → 用户查询转向量 → 相似度检索 → 结合检索结果生成回答。
加分版(在基础版上加)
如果面试官追问"什么时候用 RAG 而不是微调",可以这样区分:动态知识用 RAG,固定模式用微调。 比如你的数据频繁更新(产品库、新闻库),或者你需要可解释性(答案必须能溯源到具体文档),选 RAG。如果你要让模型学会某种说话风格、思维模式,或者任务非常垂直固定(比如特定格式的文本生成),微调更合适。现在工业界的主流做法是 RAG + 微调组合使用,发挥各自优势。

一句话总结
RAG 就是给大模型外接了一个实时、可溯源的"知识外挂",用它来解决知识陈旧、幻觉、私有数据无法回答这三大痛点。
