本文介绍了如何将一个简单的RAG(检索增强生成)模型从“搭好”提升到“能用”的20种优化方案。文章从数据入库、检索前、检索阶段、检索后和生成阶段五个方面详细阐述了各种优化策略,如语义分块、小块检索大块喂给LLM、元数据过滤、摘要索引、图增强RAG等。通过这些优化,可以让正确的信息在对的时机出现在对的位置,从而提升AI应用的实用性和准确性。
从"搭好"到"能用",中间隔着一整套优化
RAG(检索增强生成)入门的体验大概是这样的:
一个下午,你就能搭出一套能跑的原型:文档切片 → 调 Embedding API → 扔进向量库 → 接上 LLM,齐活。你会觉得"这不挺简单的吗?"
然后你开始真正用它。搜出来的东西牛头不对马嘴,明明库里有的内容就是找不到,用户问一句它答三句废话,问得稍微抽象一点就开始编。
这不是你的问题。RAG 的入门门槛确实很低,但"能跑"和"能用"之间,隔着一整套优化管线。
RAG 的本质,不是"让 AI 更聪明",而是让正确的信息在对的时机出现在对的位置。要做到这一点,靠的不是某一个环节的精彩,而是整条链路的配合。
这篇整理了我梳理的 20 种 RAG 优化方案,按一个请求的完整生命周期来拆,从数据怎么入库,到最终怎么把答案吐给用户。
先看一眼全流程
一个完整的 RAG 管线长这样:
优化不是说某一个环节做好了就行,它是整条链路上的事。每一个阶段的改进,都在给下一个阶段"减负"。
下面按五个阶段一个个拆。
一、数据入库:检索的"底座",地基打不好后面全白费
这个阶段的目标一句话就能说清楚:让对的文档在对的时候能被找到。入库时切得乱七八糟,后面检索再强也救不回来。
1. 语义分块:别再按字符数切了
很多入门教程教你"每 500 字切一块"。这就像把一本书每 10 页拆下来订成一册,刚好把完整论证拦腰截断。语义分块的做法是按句子、段落或 Markdown 标题来切,保证每一块是一个完整的逻辑单元。
一个完整的句子和一句被腰斩的话,检索效果天差地别。
2. 小块检索,大块喂给 LLM:一个很聪明的折中
把文档切成很小的片段做向量检索(小块精度高),但命中后把它所在的"整段大哥"调出来喂给 LLM。就像一个图书索引:你用关键词查到页码(小块),但真正读的是那一整页的内容(大块)。检索精度和上下文完整性,一个都不丢。
3. 元数据过滤:先粗筛,再细搜
存文档时顺手存上时间、作者、类型这些元数据。检索时先WHERE一下(“只要 2024 年以后的”“只要 Python 相关的”),再做语义匹配。一个简单的条件过滤,就能把搜索范围从百万级缩到千级。省算力,还更准。
4. 摘要索引:让宏观问题先找到大方向
长文档被切碎后,用户问"这本书讲了什么"时,任何一个片段都答不上来。
解决方案:入库前先让 LLM 给每个长文档生成一个全局摘要,单独向量化。宏观问题命中摘要,再通过摘要和详细章节的关联顺藤摸瓜找到细节。先给方向,再给细节。
5. 图增强 RAG(Graph RAG):不只搜"内容",还搜"关系"
把文档里的实体和关系抽取出来存进知识图谱。比如"函数 A 调用了函数 B"“类 C 继承自类 D”。
检索时同时查向量库和图数据库。这是目前解决"跨文档逻辑关联"最火的方案。你想知道的不只是"这段话讲了什么",还有"它跟别的东西是什么关系"。
6. 文档反向提问:提前帮文档"写考题"
入库前让 LLM 看着每一段文本,生成 5 个"如果有人要查这段内容,可能会怎么问"。把这些问题和原文绑在一起存入向量库。
相当于提前把所有可能的问法都做好了索引。用户不管怎么换着花样问,命中率都会大幅提升。
二、检索前:用户的提问,不是最优的查询词
用户提的问题往往是口语化的、简略的、甚至歧义的。直接拿去搜,等于让一个口语问题去碰书面语文档,语义对不上是大概率事件。
7. 查询重写:帮用户把话"翻译"成检索语言
多了一步 LLM 调用,但省去了后续大量的试错。性价比极高。
8. 多路查询:一个问题,五个角度
把用户的问题扩展成 3-5 个不同角度的提问,分别检索,最后合并去重。
一个问法没命中的,另一个问法可能就命中了。用广度换精度。
9. HyDE:先"闭卷"写个假答案,再拿假答案去找真文档
这是我觉得最有意思的方法,没有之一。
不做"问题 → 答案"的检索。而是让 LLM 先凭空写一个假答案,然后把假答案向量化,去搜真正的文档。为什么这么做?因为**"答案和答案"在向量空间里的距离,往往比"问题和答案"更近。** 假答案内容虽然不对,但它的语义结构已经和真答案非常接近了。
用"假的"去找"真的",这个思路本身就很有启发。
10. 查询路由:不是所有问题都该走向量检索
设计一个路由器,根据意图分发:
- “今年第二季度的销售额是多少?” →SQL 数据库
- “这段代码为什么报这个错?” →向量库
- “你好,今天天气怎么样?” →直接给 LLM
把不适合的问题强行塞给 RAG,反而会出更多问题。先分类,再处理。
三、检索阶段:语义和关键词,各有各的盲区
这是你实际接触最多的阶段。核心矛盾很简单:语义搜索和关键词搜索,短板刚好互补。
11. 稠密检索:懂语义,不懂术语
基于 Embedding 的语义搜索。你搜"轿车",它能找到"小汽车"“私家车”。但遇到专业术语、缩写、代码函数名,它就懵了。
12. 稀疏检索:懂术语,不懂语义
基于 BM25 的关键词匹配。搜"OOM Killer"绝对不会把"内存不足导致进程被杀"漏掉。但它搜不到,是你表达方式不同导致的,而不是它不认识这个词。
13. 混合检索 + RRF:两条腿走路
把稠密和稀疏的结果用RRF(倒数排名融合)算法合并。两种方法的盲区刚好互补:
语义和关键词,一个都不能少。
14. 微调嵌入模型:让你领域的话不再"听不懂"
通用 Embedding 模型对你的私有领域理解不好?用自己的数据微调一次。比如你拿内部代码文档去训 BGE,它就能理解你项目中那些特有的函数名和术语。
四、检索后:最容易被忽视,但提升空间最大
很多人觉得检索完了就完了,直接把 top_k 结果塞给 LLM。但检索出来的东西往往有噪声、有重复、有废话。不处理就直接喂,等于让 LLM 在垃圾堆里找宝贝。
15. 重排(Reranking):关键时刻的"双保险"
这是整个管线里性价比最高的一项优化。
向量检索为了快,用的是"双塔模型":查询算一个向量,文档算一个向量,然后比夹角。很快,但精度有限。
重排模型用的是 Cross-Encoder,把查询和文档拼在一起逐字比对,精度高很多,但慢。所以实践中只对初筛出来的 top 20 做重排就够了:
召回对不代表排序对。重排就是那个帮你把真正有用的东西排到第一位的"二次把关"。
16. 上下文压缩:帮 LLM 划重点
检索出来的文档段落可能很长,里面混着大量无关内容。用 LLMLingua 之类的工具把废话剔除,留核心信息。
既省 Token,又降低 LLM"分心"的概率。
17. MMR:搜出来的东西别全是同一句话
检索出 5 段文本,结果 4 段说的是同一回事,上下文窗口被白白浪费。
MMR(最大边际相关性)保证结果既相关又多样。同一件事,一句说清楚就够了,剩下的位置留给不同的角度。
五、生成阶段:有了好材料,还要学会"好好说话"
材料对了,最后一步就是让 LLM 不乱说。
18. Prompt 工程:给 LLM 戴上紧箍咒
在 System Prompt 里加一句话,效果立竿见影:
“请严格基于提供的 Context 回答。如果 Context 中没有相关信息,请直接说’根据现有资料无法回答’,不要编造。”
一句话能挡住大量幻觉。成本几乎为零,效果显著,这是所有优化里性价比最高的一项。
19. 自我反思:答完之后回头看一眼
让 LLM 生成答案后再多跑一步:检查一下自己说的内容是否确实来自给定的上下文。如果没有,打回重写。
在关键业务场景下,这个额外的验证步骤尤其值得。宁可多花几秒,也别让一个幻觉毁掉用户的信任。
20. 引用溯源:企业级 RAG 的标配
让模型在回答里标注来源,像论文一样[1]``[2]。
这不只是为了让用户能验证。更重要的是,当模型知道自己的每句话都要"对得上账"时,它会回答得更谨慎。
按场景选方案,别贪多
没有人会一次性把 20 种全用上。根据场景选 3-5 种组合,效果通常就够好了:
通用知识问答
语义分块 → 混合检索 → 重排
企业私有文档
元数据过滤 → Graph RAG → 引用溯源
代码库问答
查询重写 → 稀疏检索 → 重排
长文档分析
摘要索引 → MMR → 上下文压缩
写在最后
正如开头所说:
RAG 的本质不是"让 AI 更聪明",而是"让正确的信息在对的时机出现在对的位置"。
这让我想到一个类比:RAG 像一个好的图书馆管理员。不是把全馆的书堆在读者面前说"你自己翻",而是在读者开口之前就理解他的意图,从百万藏书中精准抽出那三页最相关的内容,放在他面前,并标好出处。
另一个感受是:很多看起来"高级"的方案,解决的其实是同一个问题:语义鸿沟。用户表达的是一个意思,文档里写的是另一个说法,向量模型理解的是第三种语义。HyDE 用假答案搭桥,混合检索用关键词兜底,重排用双保险验证。手段不同,目标一致。
所以优化 RAG 不需要追求"把所有方案都用上",而是理解你的场景里语义鸿沟最大的一环在哪里,对症下药。
记住这五条就够了:
- 入库打好地基:语义分块比字符切分好一百倍;小块检索 + 大块投喂是黄金组合
- 检索前帮用户"翻译":查询重写 + HyDE 假答案搭桥,是缩小语义鸿沟的关键
- 检索时两条腿走路:稠密 + 稀疏混合检索,语义和关键词一个都不能少
- 检索后别偷懒:重排是性价比最高的优化,初筛 Top 20 → 精排 Top 5
- 生成时设好护栏:Prompt 加一句"不知道就说不知道",比什么花哨方案都管用
不是所有场景都需要 20 种全上。理解你的语义鸿沟最大在哪一环,选 3-5 种对症的组合,就足够让一个"能跑"的 RAG 变成一个"能用"的 RAG。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。
大模型入门到实战全套学习大礼包
1、大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
2、大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
3、AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
4、大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
5、大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
适用人群
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。