
本文深入浅出地讲解了 RAG检索增强生成技术的核心原理与关键环节包括 BM25、倒排索引、向量检索的配合使用以及混合检索方案。文章还探讨了多轮对话的实现策略并介绍了从简单到复杂的六套落地方案。此外还讨论了重排环节的重要性、生成增强技巧以及 GraphRAG 的应用场景。最后提出了企业级 RAG 的标准流水线并指出了并非所有场景都适合使用 RAG。很多团队第一次落地 RAGRetrieval-Augmented Generation 检索增强生成流程跑通时都觉得挺顺利。切文档、调 Embedding、建向量库本地 demo 问什么都能很好回答。可一旦接入真实业务知识库就会暴露问题问产品型号答不上换个说法又召回一堆不相关的片段。排查下来会发现问题往往不在大模型本身。喂给模型的上下文就是错的再强的模型也只能顺着错误材料一本正经地给出答案。这篇文章把 RAG 检索链路里几个关键环节讲清楚BM25、倒排索引、向量检索如何配合为什么工业界几乎没有纯走向量的 RAG以及多轮对话这个工程上最头疼的问题怎么解。01 RAG 在补大模型的什么短板大模型有两个先天不足。一是知识有截止日期训练完成后模型参数就冻结了之后出现的新内容它不知道硬问就会编造。二是参数容量有限企业内部的私有文档它训练时没见过自然也答不上来。RAG 的思路并不复杂。不要指望模型记住所有内容每次提问时先从知识库里检索出相关段落连同问题一起交给模型让它基于这些材料生成回答。整条链路里检索这一步是地基。检索得准答案才有据可依。检索得不准后面生成环节再强也是空中楼阁。而检索这件事工程上从来不是单靠向量检索就能做好的。02 三个需要了解的概念聊 RAG 绕不开三个词倒排索引、BM25、向量检索。三者是配合使用的关系。倒排索引是一种数据结构本质上是一张反向目录记录每个词出现在哪些文档中。输入几个关键词它能快速圈出可能相关的文档但不负责判断谁更相关只做粗筛。BM25 是一个打分算法。倒排索引圈出候选文档之后BM25 用公式给每篇候选算一个相关性分数再按分数排序。它是 Elasticsearch 默认的打分模型由 TF-IDF 改进而来。向量检索走的是另一条路。把每段文本映射成一串数字向量用语义距离找意思相近的片段。它不依赖关键词匹配而是理解语义。比如问「万兆网络」它能匹配到写着「10Gbps」的段落。维度BM25关键词通路向量检索语义通路擅长实体、编号、专有名词、型号、代码、精确关键词同义改写、口语化提问、跨语种、语义相近短板不懂同义词搜「电动车」匹配不到「电瓶车」抓不住精确实体知识库一大就容易语义漂移索引依赖倒排索引 分词器向量库HNSW 等 Embedding 模型倒排索引负责圈选候选BM25 负责打分排序向量检索负责语义召回三者各司其职。03 工业标配的混合检索网上很多教程的 demo 只演示向量检索因为它实现起来最简单。但真到生产环境纯向量检索会在两个地方出问题。第一知识库规模一大语义相似不等于内容相关。用户问「产品 A 最大带宽多少」向量模型可能召回一堆都在讲带宽的片段但真正写着 10Gbps 的那条被挤到了后面。第二实体、编号、型号这类词向量的语义表示天然模糊反而 BM25 靠字面命中更可靠。所以今天看任何一家公司的 RAG 落地几乎没有纯向量的都是混合检索Hybrid Search。流程大致如下。关键在最后一步。两路召回出来的分数不在一个体系里BM25 是浮点数向量是余弦相似度没法直接加权相加。工业界最常用的解法是 RRFReciprocal Rank Fusion倒数排名融合。它不看绝对分数只看每条结果在各自榜单里排第几排名越靠前权重越高。这种方法不需要调权重效果稳定因此成为了标配。04 两路数据存一个地方还是两个地方双路召回讲完自然会引出一个工程问题。BM25 需要的倒排索引和词频统计跟向量需要的 Embedding 和 HNSW 图这两类数据存在哪里能不能放在一个地方先看两路各自需要什么。BM25 通路需要存倒排索引也就是词到 chunk ID 列表的映射还有每个词在每个 chunk 里的词频、每个 chunk 的长度、全库 IDF 统计。这些数据天然属于搜索引擎的领域Elasticsearch、OpenSearch、Lucene 都是围绕倒排索引构建的。向量通路需要存每个 chunk 的 Embedding 向量、HNSW 图索引和原始 chunk 文本。这些是向量数据库的职责范围代表有 Milvus、Qdrant、Weaviate、PGVector。能不能放在一个地方可以而且现在主流方案就是这么做的。方案同一个地方是什么BM25 能力向量能力Elasticsearch / OpenSearch同一个 Index同一条 Document 同时有 text 字段和 dense_vector 字段原生 BM25F8.x 起内置 HNSW kNNPostgreSQL PGVector同一张表一列 tsvector 全文索引一列存向量ts_rank接近 BM25PGVector HNSWVespa 等专用混合引擎原生一体化倒排 向量 强排序同一存储强强最常见的一体化方案是 Elasticsearch。往一个 Index 写一条文档body 里同时放 content 字段ES 自动分词建倒排再放一个 content_vector 字段自动建 HNSW。查询时一次请求同时拿到 BM25 分数和向量相似度ES 8.x 还内置了 RRF 融合连应用层合并都省了。那为什么还有团队分开存因为 ES 的向量检索在千万级以上向量、高并发场景下性能和资源效率不如专用向量库。所以架构按规模分成两种走法。百万 chunk 以内ES 一把梭运维成本最低。千万级以上或高 QPS则 ES 管 BM25Milvus 或 Qdrant 管向量两路各自召回 TopK在应用层做 RRF 融合。代价是维护两套存储chunk 删除时两边都要清理。无论存一个地方还是两个地方两路必须共用同一套 Chunk靠同一个 chunk_id 对齐RRF 才能按 id 合并两路召回。具体怎么切下一节讲。05 同一套 Chunk两套分词体系共用同一套 Chunk 只是第一步真正的细节在分词。Chunk 文本一样两路的分词方式却完全独立。同一句话「产品 A 最大带宽 10Gbps」BM25 那边用 jieba 切成产品 A、最大、带宽、10Gbps 去建倒排。Embedding 模型用自己的 BPE tokenizer拆成产、品、A、最、大、带、宽、10、G、bps。两套分词体系互相独立互不影响。还有一个实际的坑。BM25 自带文档长度归一化Chunk 长短差异太大会扭曲打分结果。所以切分时要尽量控制长度均匀中文场景常见 300 到 800 字带 10% 到 20% 的重叠同时还要照顾 Embedding 模型的最大输入窗口。06 多轮对话为什么会跑偏单轮 RAG 实现起来并不难用户问一句答一句。真正的难点在多轮对话。问题出在用户的表达习惯上。第一轮用户问「介绍下产品 A 的带宽」系统正常召回、正常回答。第二轮用户很自然地接一句「那它最大支持多少并发」如果直接拿这句话去检索里面没有产品 A没有任何实体BM25 匹配不到向量召回的也是一堆不相关的片段。Query 本身是残缺的两路检索从源头就失效了。这就是多轮 RAG 要解决的问题。用户说「它」「这个」「上面那个」的时候检索系统必须先搞清楚指代的是谁才能去查正确的内容。07 六套落地方案从简到繁针对这个问题工程上已经沉淀出一套从简单到复杂的方案按业务场景逐层叠加并非越高级越好。实际项目中很少单用某一种。常见做法是 Query 改写打底解决大部分指代问题再用 Self-Query 或记忆分层控制实体漂移最后用 CrossEncoder 做一次全局精排。预算有限就做到前两层要求精度再上重排。08 容易被忽略的重排环节双路召回拿到候选之后直接喂给模型行不行可以但通常不是最优。召回阶段追求的是别漏掉打分比较粗糙。BM25 靠关键词统计向量靠粗粒度语义TopK 里往往混着不少不太相关的结果真正有用的片段反而排在后面。重排Rerank就是在召回之后再做一次精排。最常用的方法是 CrossEncoder把问题跟每个候选片段拼在一起交给一个专门的排序模型逐对打分。它能同时看到问题和候选的完整交互精度比召回阶段的向量相似度高一个量级。工程上的典型做法是双路召回 Top100用 CrossEncoder 精排取 Top10 再喂给模型。多花几十毫秒答案质量提升明显这也是重排成为企业级 RAG 标配的原因。常用模型有 bge-reranker、Cohere Rerank也有直接用 LLM 给候选打分的做法。如果预算有限至少先用一个轻量重排模型把明显不相关的片段清掉。09 生成增强检索之后同样值得投入检索和重排做对了生成环节还有几个工程细节直接影响最终答案质量。一是上下文压缩。TopK 片段里不是每句都有用全塞给模型既费 token 又稀释注意力。可以先让轻量模型过滤或压缩只保留与问题相关的句子再交给生成模型。二是提示词结构。明确告诉模型只根据提供的材料回答材料里没有的内容就说不知道能显著减少一本正经地编造。三是引用溯源。让模型在答案里标注信息来自哪个片段用户能点开核对这也是企业场景的合规要求。四是自我反思对应 Self-RAG 和 CRAG 这类方法。生成之后让模型判断检索材料够不够不够就触发二次检索把一次检索定生死变成可纠错的循环。一句话概括检索决定答案的上限生成决定你能兑现多少。10 进阶玩法GraphRAG 用知识图谱做检索前文讲的混合检索本质上都是把文档切成 Chunk 做语义匹配。这带来一个局限跨文档的关系很难被一次检索串起来。比如问题涉及 A 产品用了哪些 B 公司的组件答案分散在好几篇文档里单靠语义相似召回很难把它们关联到一次回答中。GraphRAG 的思路是先建图再检索。离线阶段把文档里的实体抽出来比如产品、部门、人名、概念建立实体之间的关系形成一张知识图谱再把每个实体关联的原文段落挂在图上。检索时先从问题提到的实体出发沿着关系在图上走几步找到相关实体再取它们关联的段落交给模型。它和普通 RAG 的区别在于召回逻辑。普通 RAG 按语义相似度召回GraphRAG 按关系可达性召回。前者适合单点问题后者擅长把分散在多个文档里的信息串起来回答。代价也明显。建图成本高离线要跑实体抽取和关系构建知识库规模小的时候收益有限。它适合图谱关系密集、问题天然多跳的场景比如组织架构、供应链、技术栈依赖这类内容。微软开源的 GraphRAG 项目和 Neo4j 等图数据库是目前的主要实现。11 企业级 RAG 的标准流水线先看全貌。RAG 不止检索完整技术栈分八个环节前文重点讲了索引检索这一层其余环节是完整版图的一部分。把前面所有环节串起来就是企业里做一个靠谱多轮 RAG 的标准流水线。这张图建议保存面试和做方案都用得上。这里面有一条经常被忽略的原则。检索环节只用改写后的干净问句完整对话历史只在生成和重排时才带入。因为检索需要的是独立无歧义的 query把整段对话历史塞进去只会干扰召回精度。而生成答案时模型需要上下文这时候历史才有用。检索和生成对上下文的需求刚好是相反的。另外提醒一句流水线不是跑通就结束了。上线之后要持续用评估集验证检索侧看 RecallK、MRR 这类召回指标生成侧看忠实度也就是答案有没有照着检索材料说。哪一步指标掉下来就回头调哪一步。评估体系决定 RAG 能不能长期稳定这是很多团队容易忽略的一环。12 什么时候你其实不需要 RAG讲了这么多工业级 RAG 的复杂度最后需要说明一点并非所有场景都值得上这套技术栈。2026 年Karpathy前特斯拉 AI 总监、OpenAI 联创分享了他自己的知识库做法叫 LLM Wiki也叫 LLM Knowledge Base。思路简单到让人怀疑之前那些向量数据库、Embedding、检索 pipeline是不是把事情搞复杂了。他只建了三个文件夹。raw 文件夹素材全扔进去文章、论文、截图、笔记不用整理。wiki 文件夹让 LLM 自己读 raw 里的素材编译成结构化 wiki它来总结、分类、建交叉引用、标注矛盾。outputs 文件夹问答记录存在这里好的回答存回 wiki变成知识的一部分。再加一个规则文件告诉 LLM 怎么用就完成了。没有向量数据库没有 Embedding没有 BM25没有 RRF。为什么这套在小场景下反而有效打个比方。RAG 像一个每次考试都开卷的学生你问他问题他每次都重新翻书、重新找相关段落、重新拼答案。他找的是文本碎片对文档之间的矛盾、关联、演进并不了解上次问过的问题这次还得重新找。LLM Wiki 是让这个学生先把书读完、理解完、做好笔记考试时翻自己的笔记、回顾自己的理解不用每次翻原书。更关键的是知识会积累今天问出的好答案存进 wiki明天再问相关问题时它已经有了上次的分析结果。维度传统 RAGLLM Wiki知识状态每次提问重新翻原始片段先读完理解基于笔记回答检索对象文本碎片不懂文档间关联结构化理解有交叉引用知识积累不积累每次从零开始好答案存回 wiki越用越聪明技术栈向量库 Embedding BM25 重排三个文件夹 LLM 上下文适用规模万级以上文档、企业知识库几十到几百篇、个人知识管理当然这套方案有适用边界。它适合几十到几百篇文档的个人笔记、学习资料、小团队 FAQ。如果是十万级文档的企业客服、合规检索、多业务线知识库该上 RAG 还是得上 RAG。但对大多数人来说知识管理需求可能不在那个规模。与其上来就搭一套向量数据库不如先试试让 LLM 把素材读完、编译成 wiki做法简单效果可能更好。13 总结一下把全文串起来看主线只有一句。RAG 的价值在于把外部知识准确送到模型面前。检索这步做不好再强的模型也会一本正经地胡说。值得记住的结论有几个。混合检索是工业标配BM25 补关键词命中向量补语义召回RRF 按排名融合。多轮对话先解决 Query 残缺改写打底复杂场景再叠记忆和重排。重排和生成增强投入产出比很高很多团队在召回上花大力气却忽略这两步。GraphRAG 解决跨文档多跳问题关系密集的场景才值得上。评估体系决定长期稳定上线只是开始。落地建议按三步走。先跑通最小闭环文档切分、双路召回、RRF 融合、生成串起来看效果。检索不满意先调切分粒度和查询改写别急着换模型。基础稳定之后再逐步加重排、评估和 GraphRAG往生产级靠。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取