news 2026/10/9 2:51:22

从入门到精通:小白程序员必学的RAG检索策略与实战技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从入门到精通:小白程序员必学的RAG检索策略与实战技巧

本文深入解析了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%免费领取全套学习资料!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/9 2:50:47

3分钟让你学会查看比特币区块高度,掌握链上“经纬度”定位法

一、为什么说区块高度是链上的“经纬度”? 想象一下,如果你要在茫茫大海中定位一艘船,你需要经纬度;如果你要在比特币的区块链上定位一笔交易、一个区块,你需要的就是——区块高度。 区块高度,简单来说&a…

作者头像 李华
网站建设 2026/10/9 2:50:05

01 谷粒商城架构

谷粒商城微服务架构图1. 分布式架构--微服务1.1 微服务1.2 远程调用 SpringCloud Feign:声明式HTTP客户端1.3 负载均衡 SpringCloud Alibaba-Ribbon1.4 注册中心:服务发现和注册 SpringCloud Alibaba Nacos1.5 配置中心 SpringCloud Alibaba Nacos1.6 服务熔断&…

作者头像 李华
网站建设 2026/10/9 2:48:32

【LLM技术全景】第38篇 大模型监控与运维:LLMOps完整实践

系列:《LLM技术全景:从Token到部署》工程实践篇第6篇 承接:第37篇《大模型服务化架构》| 预告:第39篇《本地部署实战(一):Ollama/LM Studio快速入门》 摘要 核心问题:服务跑起来只是第一天的事。上线之后,成本为何突然翻倍?模型更新后效果为何悄悄回归?线上幻觉率怎…

作者头像 李华