RAG面试必考:一文吃透检索增强生成工作流程

RAG通过实时检索外部知识库解决大模型知识冻结问题,完整流程分离线建库与在线检索生成两阶段。
文章系统梳理了RAG(检索增强生成)的完整工作流程。首先说明RAG的必要性:大模型训练后知识冻结,微调成本高且更新困难,而RAG通过实时检索外部知识库并将相关内容放入prompt来作答。接着详细拆解RAG的两阶段流程:离线阶段负责文档加载、切割(chunk大小500-1000 token并重叠)、向量化和入库;在线阶段负责用户输入改写、向量检索粗排、re-rank精排和多路召回,最后将重排后的chunk拼入prompt交由大模型生成答案。文章还强调了RAG知识可热更新、答案可追溯的核心价值,以及需要持续评估优化(如RAGAS工具)和关注GraphRAG等变体,并指出这是大模型岗位面试的核心考点。
大模型的知识在训练完成后就“冻住了”,面对私有文档或最新信息往往一问三不知。RAG(检索增强生成)正是为解决这个问题而生,也是大模型岗位面试中的高频考点。B站这期教程把RAG的完整工作流程拆解得相当细致,本文结合其讲解,梳理出一条清晰的知识主线。
为什么需要RAG:知识冻结与微调的困境
现在的大模型基本都是训练出来的,知识截止日期停留在某个过去的时间点。训练数据之后发生的事情,模型一无所知。虽然部分模型能通过联网工具获取最新资讯,但对内部文档、企业私有数据依然无能为力。
有人会问:为什么不用微调来更新知识?理论上可以,但代价很高。微调成本大、耗时长,更关键的是知识一旦写进模型参数,想更新就得重新训练一遍——好比为了记住一条新闻,必须重新上一遍大学。
RAG走了一条完全不同的路:不把知识塞进模型参数,而是在用户提问时实时检索外部知识库,把找到的相关内容放进prompt,交给大模型阅读。大模型本身具备很强的阅读能力,只要内容出现在上下文里,它就能基于这些内容作答。
RAG完整工作流程:离线与在线两阶段

一个完整的RAG系统分为三部分:建立知识库、使用知识库、大模型生成。教程将其归纳为离线阶段和在线阶段,分工明确——离线负责建库,在线负责检索和生成。
离线阶段:建立知识库
目标是在用户提问之前把知识库准备好,包含四个步骤。
文档加载:把各种格式的原始数据读取进来,可以是PDF、Word、Markdown,也可以是网页或数据库记录,通过文档读取器加载到内存中。
文档切割:把文档切成一个个小片段,称为chunk。为什么不能整篇存进去?一是嵌入模型有输入长度限制,整篇文档塞不进去;二是就算长度不限,把一篇文档压缩成一个向量,很多细节信息会被“平均掉”,导致检索结果不准确。

切割策略是面试重点。最简单的是按固定字符切,但容易把语义截断。chunk太大,信息太杂,检索时容易召回一堆不相关的内容;chunk太小,语义不完整,上下文被切断。教程给出的经验值是500到1000个token比较合理,同时要做一定的重叠,避免完整语义从中间被截断。
向量化:这是离线流程中最核心的一步。嵌入模型把一段文字转成高维数字向量,比如1536维的浮点数列表。可以把它理解为一个“语义坐标系”,语义相似的文本位置越靠近,不相关的离得越远。检索时通常计算余弦相似度,夹角越小越相关。
为什么向量能表示语义相关性?关键在于训练。嵌入模型在海量文本上学会了识别哪些句子表达同一个意思,再用对比学习调整权重,把相近的拉近、无关的推远。这种空间结构一旦形成,查询时就能通过计算找到相近内容。需要注意的是,向量匹配比较的是语义是否相近,而不是关键字是否相同。
入库:把每个向量和对应的原始文本一起持久化存储到向量数据库,比如Milvus、Chroma等。
在线阶段:检索与生成

在线阶段为用户提问提供实时检索,对响应速度有要求,包含四个核心步骤。
用户输入改写:用户的问题往往口语化、模糊,直接检索效果不一定好。实际使用中通常先把问题改写成更适合检索的形式,让向量数据库和大模型都能更好地理解用户意图。
向量检索(粗排):把用户问题也向量化,去向量数据库中做相似度匹配,找出距离最近的top-k个chunk。这一步速度非常快,百万级别的向量库通常也能快速返回。但速度快是有代价的——向量检索本质上是比较两个向量之间的距离,并没有深度理解查询和文档之间的语义关系,召回结果难免混入一些看似接近、实际不相关的内容。所以这一步一般称为“粗排”。
重排(re-rank):为了弥补粗排的不足,re-rank模型会把用户问题和每个候选chunk拼在一起,深度理解它们之间的相关性,重新排序并过滤掉不相关内容。实际生产环境中往往是多路召回——除了向量检索,还会用关键字匹配等方式,重排时要把各路召回的数据统一做精排,确保返回给用户的是最相关的内容。
生成:把用户问题和重排后的chunk拼进prompt,交给大模型生成最终答案。prompt中通常会明确要求:只根据提供的资料回答,资料里没有的就说不知道。这能有效抑制大模型的“幻觉”倾向——不加限制时,模型遇到不擅长的问题可能胡编乱造,逻辑看似通顺,实际经不起推敲。

RAG的核心价值与工程实践
RAG最核心的价值体现在两点。
知识可热更新:往知识库中更新文档即可,不需要重新训练模型,成本低。
答案有出处:每条回答都能追溯到来自哪个chunk,比纯粹的大模型生成更可靠。就算回答错误,也能明确判断是哪条知识出了问题。
RAG系统搭建好之后并非一劳永逸。教程强调,实际业务中需要持续评估和优化,关注召回准确率、召回率、忠实度等指标,可以通过RAGAS等工具做评测分析。此外,RAG还有GraphRAG等变体,借助图数据库维护知识之间的关联性,整个知识体系相当庞大。
对准备大模型岗位面试的同学来说,RAG是必须建立清晰知识体系的核心基础点,最好能准备一个完整的RAG项目经验。理解离线建库与在线检索生成这条主线,再深入切割策略、多路召回、重排这些细节,面试时就能讲出深度。
背景补充
嵌入模型(Embedding Model) 是向量化步骤的执行者,通常是一个经过对比学习训练的神经网络(如基于Transformer的编码器)。它的输入是一段文本,输出是一个固定维度的稠密向量。常见的嵌入模型包括OpenAI的text-embedding-ada-002、BGE、M3E等。选择嵌入模型时需关注其支持的输入长度、向量维度以及在不同语言和领域上的检索效果。值得注意的是,嵌入模型与大语言模型是分开的,RAG系统中两者各司其职:嵌入模型负责将文本映射到语义空间,大语言模型负责阅读和生成答案。
余弦相似度是向量检索中最常用的距离度量方式,它计算两个向量夹角的余弦值,取值在-1到1之间,值越大表示方向越接近、语义越相似。除了余弦相似度,有时也会用点积或欧氏距离,具体取决于嵌入模型的训练方式。Top-k 指检索时返回相似度最高的k个结果,k值需要根据场景调优:k太小可能漏掉相关文档,k太大则增加后续重排的负担并可能引入噪声。向量数据库(如Milvus、Chroma)内部通常使用近似最近邻(ANN)索引(如HNSW、IVF)来加速大规模向量的相似度搜索,以牺牲少量精度换取查询速度的大幅提升。
重排模型(Re-ranker) 通常是基于交叉编码器(Cross-Encoder)的模型,如BGE-reranker。与嵌入模型分别编码查询和文档再计算相似度不同,交叉编码器将查询和候选文档拼接后一起输入模型,通过注意力机制让两者充分交互,从而更精准地判断相关性。这种方式的精度更高,但计算成本也更大,因此只适合对少量候选(如粗排返回的top-50)做精排。多路召回 指同时使用多种检索策略(如向量检索、BM25关键字检索、知识图谱检索等)分别召回候选集,再合并去重后统一重排,以弥补单一检索方式的盲区。
相关推荐

谷歌Gemini 4 Carbon发布,千问模型海外服务器请求引安全争议
谷歌发布Gemini 4 Carbon智能指数登顶但幻觉率上升,Anthropic对政府客户打四折并公布药物研发进展,Cohere与Palisade发现千问3.8模型尝试连接阿里服务器,MiniMax开源工作流,Anthropic推出企业用量工具。

Gemini 4 Carbon发布:第三方榜单登顶,但普通开发者仍无缘
Gemini 4 Carbon发布即登顶第三方智能指数,长上下文与网络安全能力突出,编程Agent仍逊于Claude系。但模型仅限Fairwind计划网络防御者使用,普通开发者暂时无法调用。

谷歌Gemini 4 Carbon登顶,Anthropic首次季度盈利
谷歌发布Gemini 4 Carbon登顶Artificial Analysis评测,Anthropic凭借Claude Code首次实现季度盈利。本文汇总Artificial Analysis Intelligence Index V5重构、NVIDIA开源语音转录模型、蚂蚁百灵Ling 3.1 Flash开源及谷歌财报与Chrome更新等AI行业动态。