本文深入解析了RAG(检索增强生成)中的检索环节,从三个层次系统阐述:首先,介绍了检索策略的选择,包括向量检索、关键词检索和混合检索,以及如何通过RRF融合和Rerank优化结果排序;其次,探讨了检索任务的执行者,重点分析了向量数据库的核心作用,并澄清了向量索引与向量数据库的区别;最后,深入到底层技术,解释了HNSW、IVF等索引方法和PQ、SQ等量化技术如何提高检索效率。
检索这块会遇到很多容易混在一起的概念:向量数据库、混合检索、HNSW、RRF、重排……。
这次重新拆解以后,我发现 RAG 的检索其实可以从三个层次来理解:
- 第一层:我要采用什么检索策略?
- 第二层:这些检索任务由谁来执行?
- 第三层:执行检索时,底层又使用什么方法?
第一层决定 RAG 怎么把相关内容找出来;第二层关注 谁来充当检索引擎,把这些策略真正执行起来,例如向量数据库;第三层再继续往下,理解 向量数据库怎样通过索引和搜索算法,在大量数据中快速找到结果。
这里讨论的主要是比较常规的、以向量检索为核心的 RAG 系统。GraphRAG 会引入知识图谱和图检索,是另一套值得单独展开的检索思路,这篇先不放进来。
接下来就按照这三层往下看:先从最上层的检索策略开始,看看一次 RAG 检索到底是怎么被设计出来的。
一、第一层:检索策略决定“怎么找”
RAG 的检索策略可以先从两种最基础的方式开始理解:向量检索和关键词检索。
① 两种基础检索方式
- 向量检索
在 RAG 里通常指基于 Embedding 的语义检索。 它解决的是:这两段内容表达的意思是不是相近? 所以即使用户的说法和原文并不完全一样,只要语义接近,也有机会被召回。
- 关键词检索
关键词检索关注的是:字面上有没有匹配? 典型方法就是 BM25。对于标准编号、专有名词、日期、型号等需要精确匹配的内容,关键词检索往往更有优势。
两种方法解决的问题并不一样:向量检索擅长找“意思相近”的内容,关键词检索擅长找“字面匹配”的内容。
② 把两路召回放在一起:混合检索
既然两种方法各有所长,生产 RAG 中一种很常见的做法,就是同时进行向量检索和关键词检索:
向量检索 + 关键词检索 → Hybrid Search(混合检索)
这样既能利用语义匹配,也不会轻易漏掉标准编号、专业术语等需要精确匹配的信息。
但这时又会出现一个问题:两路检索分别返回一套结果,而且分数不是一个体系。
- 向量检索返回的是向量相似度;
- BM25 返回的是自己的相关性分数。
因此不能简单把两个分数直接相加,还需要把两路结果融合成一个统一的排名。
一种很常见的融合方法就是 RRF(Reciprocal Rank Fusion)。RRF 不直接比较两套不同的分数,而是根据一个结果在不同检索列表中分别排在什么位置,重新计算融合后的排序。
因此,一套很常见的检索路径就形成了:
向量检索 + 关键词检索 → Hybrid Search → RRF 融合 → 候选结果
③ 如果候选结果排序还不够好,再做 Rerank
前面的检索更强调的是召回:先从大量 Chunk 中快速找到一批可能相关的内容,尽量不要漏掉真正有用的信息。
但“被召回来”并不意味着排序已经足够准确。如果对检索精度要求更高,还可以在候选结果之后增加一步 Rerank(重排)。
它不会重新搜索整个知识库,而是针对已经召回的一小批候选内容,再进行一次更精细的相关性判断,把真正最相关的内容排到前面。
常见的重排方式包括:
- 交叉编码器重排(Cross-Encoder):把用户问题和候选内容一起输入模型,直接判断两者的相关性;
- 后期交互(Late Interaction):例如 ColBERT,保留更细粒度的 token 级表示,再进行相关性计算;
- 大模型重排(LLM Reranking):直接让大模型对候选内容进行打分或排序;
- 学习排序(Learning to Rank):利用相关性标签、点击等数据训练专门的排序模型。
因此,一条完整的检索策略线大概是这样的:
向量检索 + 关键词检索 → Hybrid Search → RRF → Rerank → Top K
其中前半段负责尽可能召回相关内容,重排再进一步提高候选结果的排序质量。
这就是 RAG 最上层的检索策略:先决定用什么方式召回,再决定如何融合和筛选这些结果。
二、第二层:谁来执行这些检索策略?
第一层解决的是“我要怎么搜”,真正落到工程实现时,还要继续回答:这条检索链里的每一步,具体交给谁来完成?
这里没有一个固定答案。
向量检索、关键词检索、结果融合和重排,可以由同一个检索引擎提供,也可以拆给不同的组件,再由应用层把它们编排起来。
比如前面这条:
向量检索 + BM25 → RRF → 重排
实际实现时可能是:
向量数据库负责向量检索 → 搜索引擎负责 BM25 → 应用层负责 RRF → 独立重排模型负责重排。
也可能使用一个集成度更高的检索引擎,把其中多项能力直接放在一个系统里完成。
所以这一层需要建立的认识是:检索策略决定“需要什么能力”,执行层决定“这些能力分别由谁提供”。
① 向量数据库是其中最核心的一类组件
在常规的向量 RAG 中,向量数据库通常是检索系统里最核心的执行组件之一。
它并不只是一个“专门存向量的数据库”。
一个 Chunk 进入向量数据库以后,通常会保存:
- 向量(Vector):由 Embedding 模型生成,用来进行相似度检索;
- 元数据(Metadata / Payload):保存原文以及文档、页码、章节等来源信息。
例如:
id: chunk_001
vector:
[0.12, -0.37, 0.84, …]
metadata:
- text
- document_id
- section_path
- page
- element_id
- …
其中,Vector 用来做相似度检索,Metadata 则可以用来做过滤、返回原文和来源追溯。
当用户问题被转换成 Query Vector 后,向量数据库还要进一步负责:
建立和维护索引 → 执行向量搜索 → 返回 Top K
所以它同时承担两类角色:一方面是数据库,负责存储和管理数据;另一方面也是搜索引擎,负责执行向量检索。
② 向量索引不等于向量数据库
这里还有一个很容易混淆的概念:向量索引和向量数据库不是一回事。
向量索引解决的核心问题是:怎样高效地在大量向量中找到最相似的那些向量?
而一个完整的向量数据库除了维护索引,通常还需要处理数据存储、增删改、Metadata 和过滤、索引更新、持久化和扩展等问题。
Faiss 就是一个很典型的例子。
Faiss 更接近一个向量搜索和索引库,它提供 Flat、IVF、HNSW、PQ 等向量索引和相似度搜索能力,但本身并不提供 BM25 这样的全文关键词检索能力。
所以如果采用:
向量检索 + BM25 → RRF
而向量部分使用 Faiss,那么就需要另外引入关键词检索组件。例如:
向量检索 → Faiss 关键词检索 → Elasticsearch / OpenSearch 等其他组件 RRF → 应用层编排
再加上独立的重排模型,才组成第一层设计好的完整检索链。
而一些功能更完整的向量数据库或搜索引擎,可能已经把向量检索、关键词或稀疏检索、过滤、混合检索甚至结果融合中的一部分能力集成进去。
所以第二层真正关心的并不是“应该选哪个数据库”,而是:第一层设计出来的检索策略,需要哪些执行能力,以及这些能力分别由谁提供。
理解到这里,再继续往下一层,问题就变成了:当检索引擎接到“从大量向量中找到最相似结果”这个任务以后,它究竟是怎么做到的?
三、第三层:向量检索为什么能够跑得这么快?
假设数据库里只有几百个向量,最直接的办法其实很简单:让 Query Vector 和所有向量都计算一次距离,再从中选出最相似的 Top K。
这种方式通常被称为 Flat Search(全量搜索)。它不做近似,也不会漏掉真正的最近邻,但随着数据量从几百增长到几百万甚至上亿,每次查询都扫描全部向量的成本会越来越高。
因此,大规模向量检索真正需要解决的,不只是“怎么算两个向量是否相似”,还要解决:怎样尽量少做这些计算,同时仍然快速找到最可能相似的结果?
这里可以把底层技术分成两个主要方向。
① 减少需要比较的向量:向量索引与近似最近邻搜索
首先要有一种方式判断两个向量到底有多接近。常见的度量包括余弦相似度、点积和欧氏距离。它们负责定义“什么叫相似”,但如果数据库里有上百万个向量,仅有相似度公式还不够,因为逐个计算依然太慢。
因此会进一步使用各种近似最近邻搜索(ANN)和向量索引方法,提前把向量空间按照某种结构组织起来,让查询时只访问最有可能相关的一小部分数据。
这类方法有很多不同路线,比较有代表性的包括:
- HNSW:基于图结构,把相近的向量连接起来。查询时沿着近邻关系逐步向更接近 Query 的区域移动;
- IVF:先把向量空间划分成多个区域,查询时先找到最可能相关的几个区域,再只在这些区域内部搜索。
它们的内部结构不同,但目标是一致的:减少一次查询真正需要访问和比较的向量数量。
② 降低每个向量的存储和计算成本:量化与压缩
另一个优化方向不是继续减少候选数量,而是想办法让每个向量本身更小、计算起来更便宜。
这类技术通常被称为向量量化或压缩,比较典型的包括 PQ(乘积量化) 和 SQ(标量量化)。
一个 Embedding 可能有几百甚至上千个维度,如果每个维度都使用高精度浮点数保存,当向量数量达到百万甚至亿级以后,会产生很大的内存和存储成本。
量化的思路就是用更紧凑的表示近似原始向量,从而减少存储占用,并降低搜索时的计算成本。当然,这种压缩通常也会带来一定的信息损失,因此仍然需要在效果、速度和资源消耗之间做权衡。
这两类技术并不是互斥的。比如常见的 IVFPQ,就是把两种思路组合起来:
IVF 负责减少需要搜索的范围,PQ 负责降低范围内每个向量的存储和计算成本。
所以再回头看这一层,底层优化其实主要围绕两个问题展开:
- 怎么少比较一些向量?
- 怎么让每一次比较更便宜?
HNSW、IVF 代表的是前一个方向,PQ、SQ 代表的是后一个方向。而余弦相似度、点积、欧氏距离则处在更基础的一层,负责定义两个向量到底怎样才算“更近”。
把这几类技术分开以后,向量检索的底层逻辑就会清楚很多:相似度度量定义“近”,索引方法负责快速找到“近”的候选,量化方法再进一步降低大规模检索的存储和计算成本。
总结
回头再看 RAG 的检索,很多看起来混在一起的技术,其实是在解决不同层的问题。
最上层是检索策略。我们需要决定是使用向量检索还是关键词检索,是否把两路结果组成混合检索,怎样融合结果,以及有没有必要进一步增加重排。这里解决的是:一次检索应该经过哪些步骤,才能找到更相关的内容。
往下一层是检索执行。设计好的检索策略最终需要由具体的组件实现,其中向量数据库通常承担向量存储和向量搜索的核心任务,关键词检索、结果融合和重排则可能由数据库本身提供,也可能交给其他搜索引擎、应用代码或专门的模型来完成。
再往下,才是搜索真正运行起来的底层方法。余弦相似度、点积等方法定义两个向量怎么算“近”;HNSW、IVF 这样的索引方法通过减少需要比较的向量,让搜索跑得更快;PQ、SQ 等量化方法则进一步降低向量的存储和计算成本。
把这三层分开以后,检索就不再只是“把 Embedding 存进向量数据库,然后做一次相似度搜索”,而是一套从策略设计、工程实现到底层搜索机制逐层展开的系统。
最后
当下AI大模型是当下实打实的优质风口,岗位缺口大、发展前景广、薪资待遇突出,对比内卷严重、涨薪晋升困难的传统技术岗,是普通人转行逆袭的绝佳选择。
但很多想要入局大模型领域的朋友,都面临无系统学习路径、无实战资源、求职无方向的难题,一个人硬啃最容易走弯路、浪费大量时间精力。这里我结合多年一线实战与教学经验,整理出一套零基础大模型专属资料,包含:
- 系统化学习路线图(零基础到精通)
- 大模型学习书籍 & 文档(电子版)
- 2026 最新行业报告
- 项目实战 & 配套源码
- 大厂面试真题
需要的朋友,微信扫描下方 CSDN 官方认证二维码免费领取,保证 100% 免费。
👇👇扫码免费领取全部内容👇👇
下面简单介绍一下资料包含的内容:
1、大模型系统化学习路线图
专属定制从零基础入门到企业级实战的全阶段学习体系,划分清晰的四大学习阶段,规避碎片化学习弊端,适配新手
2、0基础到进阶视频教程
配套完整高清实操教程,覆盖Prompt提示工程、RAG知识库搭建、Agent智能体开发、模型微调、部署落地等核心知识点,所有课程搭配实操演示,零基础也能轻松看懂、上手实操。
3、大模型学习书籍 & 文档
汇总30+本行业经典AI、大模型、深度学习精选书籍,涵盖理论原理、开发实战、算法基础、AI产品思维等各类内容
4、AI大模型最新行业报告
整理2024-2026年最新大模型行业白皮书、市场分析报告,清晰展现行业发展趋势、技术迭代方向、岗位需求变化,帮助学习者精准把握行业风口,找准学习和就业方向
5、大厂面试真题
汇总了常见的AI大模型面试问题、知识点梳理和面经参考,方便求职时针对性准备。
6、大模型项目实战 & 配套源码
包含GPT应用开发、RAG私有知识库、智能问答系统等多个企业级实战项目,配套完整可运行源码,从简易Demo到完整商业应用全覆盖,帮助学习者将理论转化为落地实战能力,积累项目经验。
7、适合谁学?
- 传统后端 / Java / 前端开发,想转型 AI 应用
- 大学生、应届生,想拿更好的 offer
- 产品经理、运营,想武装职业竞争力
- 技术负责人,想给团队落地提效
学习是反人性的,但回报是真金白银。技术会更新,赛道会切换,但只要你先动手,机会就永远站在你这边。
8、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!