微信扫码
添加专属顾问
探索RAG检索策略的进化之路,从经典BM25到现代Embedding技术,助你为LLM打造精准导航系统。 核心内容: 1. RAG技术如何通过检索模块增强LLM的准确性与可靠性 2. 经典BM25算法的工作原理与适用场景解析 3. 现代Embedding与Reranker技术的优势与组合策略
大家好!今天我们来聊聊一个热门技术——RAG(检索增强生成)中至关重要的“检索”环节。如果你正在探索如何让你的大型语言模型(LLM)更智能、回答更靠谱,那这篇文章你可千万别错过。
我们会一起深入了解几种主流的检索策略:从经典的BM25,到现代的各类Embedding技术(稀疏、密集、多向量),再到提升最终效果的Reranker。目标是帮你理解它们的工作原理和适用场景,为你构建高效RAG系统提供清晰的指引。
正文:
一、RAG与检索:为什么它是LLM的“神队友”?🤔
想象一下,大型语言模型(LLM)就像一个知识渊博但有时会“脑补”过度的学霸。RAG(Retrieval Augmented Generation)技术,就是给这位学霸配备了一个超级智能的“图书馆检索员”和“事实核查员”。
下图清晰地展示了RAG的基本工作流程:
友情提示: 接下来的内容会涉及一些技术概念,我会尽量用通俗易懂的方式来解释,希望能帮助大家轻松理解。
二、经典永流传:BM25——关键词匹配的“老兵” 💪
BM25(Best Matching 25)是一种久经考验的排序算法,广泛应用于传统搜索引擎中。它基于“词袋模型”,核心思想是通过关键词匹配程度来衡量文档与查询的相关性。
其核心打分逻辑可以用以下公式框架来表示:
Score(Q, D) = Σ [ IDF(q_i) * ( (k1 + 1) * tf(q_i, D) ) / ( k1 * ( (1 ``- b) + b * (|D| / avgdl) ) + tf(q_i, D) ) ]
这里:
Q 代表用户的查询(Query),由一系列查询词 q_i 组成。D 代表被评分的文档(Document)。IDF(q_i) 是查询词 q_i 的逆文档频率,衡量词的稀有度或重要性。tf(q_i, D) 是查询词 q_i 在文档 D 中出现的频率。|D| 是文档 D 的长度,而 avgdl 是整个文档集合的平均长度,它们用于文档长度归一化。k1 和 b 是BM25算法的两个可调参数,通常 k1 取值在1.2到2.0之间,b 通常为0.75。k1 控制词频饱和度(即词频增加对得分的边际效应),b 控制文档长度对得分的影响程度。这个公式虽然看起来有些复杂,但它精妙地平衡了词频、词的稀有度以及文档长度这几个核心因素,是BM25算法效果出色的关键。
BM25、全文搜索与倒排索引:它们是如何协同工作的?
这三者是构建搜索系统的关键组件:
把它们比作在图书馆找特定主题的书籍:
为了更清晰地理解它们之间的协作,可以参考下图:
三、Embedding家族:让机器理解文本的“言外之意” 💡
为了克服BM25等传统方法在语义理解上的不足,基于Embedding(嵌入)的检索策略应运而生。其核心思想是将文本(无论是词语、句子还是整个文档)映射到一个低维、稠密的向量空间中,使得语义相近的文本在向量空间中的距离也相近。
想象一下,每段文字都被翻译成了一串独特的“数字密码”(向量)。语义相似的文字,它们的“数字密码”在某个多维空间里就会靠得很近。这个概念可以用下图来形象理解:
1. 稀疏嵌入 (Sparse Embedding):关键词与语义的初步融合
下图直观地对比了稀疏嵌入和密集嵌入的主要视觉特征:
这个过程大致可以用以下伪代码思路来理解:
function get_splade_vector(text, bert_model, vocabulary):
// 1. 将输入文本分词并通过BERT获取上下文相关的词元嵌入
tokens = bert_model.tokenize(text)
contextual_token_embeddings = bert_model.get_contextualized_embeddings(tokens) // 通常是BERT最后一层的输出
// 2. 初始化一个与词汇表等长的零向量,用于存储每个词的最终权重
vocab_scores = initialize_vector_with_zeros(size=len(vocabulary))
// 3. 对每个文本中的词元,估算其对词汇表中所有词的贡献
for each token_embedding in contextual_token_embeddings:
for each word_index inrange(len(vocabulary)):
// 实际SPLADE模型中,这一步会通过一个小型神经网络(如MLP)和与词汇表词嵌入的点积来计算贡献值
// 这里简化表示其核心思想:基于当前token的上下文信息,判断它能激活词汇表中哪些词
contribution_score = calculate_semantic_contribution(token_embedding, vocabulary_word_embedding[word_index])
// 使用ReLU等激活函数确保权重非负,并累加到对应词汇的得分上
vocab_scores[word_index] += relu(contribution_score)
// 4. (可选)对累加后的分数进行对数饱和等处理,形成最终的稀疏向量
final_sparse_vector = apply_log_saturation(vocab_scores)
return final_sparse_vector // 这个向量中大部分值为0,非零值代表了重要词及其权重 上述伪代码描绘了SPLADE的核心思想:它不是简单地统计词频,而是利用深度学习模型的能力,为整个词汇表中的词(包括那些在原文本中未直接出现的、但语义相关的词)智能地赋予权重,从而实现“语义扩展”并生成一个信息量更丰富的稀疏向量。
2. 密集嵌入 (Dense Embedding):深度理解语义的“主力军” 🚀
SBERT这种双塔(Siamese Network)架构的工作方式可以用下图简化表示:
其中,余弦相似度(Cosine Similarity)是一种常用的衡量向量间方向一致性的方法,其计算公式如下:
CosineSimilarity(A, B) = (A · B) / (||A|| * ||B||)
这里:
A 和 B 分别是两个文本(如句子或文档)的密集向量表示。A · B 表示向量A和向量B的点积。||A|| 和 ||B|| 分别表示向量A和向量B的L2范数(即向量的长度)。余弦相似度的取值范围在-1到1之间,值越接近1,表示两个向量(及其代表的文本语义)越相似。
3. 多向量嵌入 (Multi-vector Embeddings):捕捉长文档中的“微光” ✨
其核心的MaxSim(Maximum Similarity)聚合得分的计算逻辑可以用以下伪代码来表示:
function calculate_colbert_score(query_token_embeddings, document_token_embeddings):
total_max_similarity_score = 0
// 对查询中的每一个词元嵌入
for q_embedding in query_token_embeddings:
max_similarity_for_this_q_token = 0
// 遍历文档中的每一个词元嵌入,找到与当前查询词元最相似的那个
for d_embedding in document_token_embeddings:
similarity = calculate_cosine_similarity(q_embedding, d_embedding) // 通常用余弦相似度
if similarity > max_similarity_for_this_q_token:
max_similarity_for_this_q_token = similarity
// 将这个最大相似度值累加到总分中
total_max_similarity_score += max_similarity_for_this_q_token
return total_max_similarity_score 简单来说,就是查询中的每个“词块”都在文档的所有“词块”中寻找自己的“最佳拍档”(最相似的那个),然后把这些“最佳拍档”的相似度得分加起来,作为查询和文档的最终相关性分数。
ColBERT的这种细粒度交互和MaxSim聚合过程可以用下图示意:
4. bge-m3:追求全面的“多面手” 🦾
四、混合检索 (Hybrid Retrieval):集各家之长,效果更上一层楼 📈
既然不同的检索策略各有千秋(例如,BM25擅长关键词精确匹配,Embedding擅长语义理解),那么将它们结合起来,是不是能达到“1+1>2”的效果呢?答案是肯定的,这就是混合检索的核心思想。
下图展示了一个典型的混合检索流程BGE-M3的效果:
doc 的RRF得分计算如下:Score_RRF(doc) = Σ_{s ∈ Systems} (1 / (k + rank_s(doc)))其中:
Systems 是所有参与融合的检索系统的集合。rank_s(doc) 是文档 doc 在检索系统 s 给出的结果列表中的排名(例如,第一名是1,第二名是2)。k 是一个小常数(例如,常设置为60),用于平滑得分,避免排名靠后的文档得分过小或排名第一的文档得分占比过高。这种方法的好处是不需要对不同系统的得分进行归一化,直接利用排名信息进行融合。
五、Reranker (重排序器):检索结果的“精炼师” 🔍
经过上述一种或多种检索策略的“粗筛”(召回阶段),我们通常会得到一个包含较多候选文档的列表(比如几百个)。为了进一步提升最终喂给LLM的文档质量,Reranker(重排序器)应运而生。它相当于一位“精炼师”或“质量品鉴官”,对初步召回的结果进行更细致、更精准的二次排序。
下图清晰地展示了其架构上的核心过程:
六、总结与实践建议 🎯
回顾一下我们今天探讨的RAG检索技术:
在实际项目中如何选择和组合这些技术呢?这里有一些建议:
最重要的原则是:没有一劳永逸的“最佳”方案,只有最适合当前业务需求、数据特性、资源限制和维护能力的组合。
建议从小处着手,逐步迭代,通过实验来验证不同策略组合在你的具体场景下的表现。多做AB测试,用数据说话。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-07
知识库分块不是越小越好——改了分块大小,准确率跳了18%
2026-07-07
分类、抽取、Rerank:小模型最容易落地的三个方向
2026-07-07
RAG 和 Agent 到底是什么关系?企业 AI 不只是问答
2026-07-06
加了Query改写,准确率从71%提到89%
2026-07-06
RAG 负责召回,LLM Wiki 负责沉淀:团队知识系统为什么不能只做检索
2026-07-05
AI 知识库为什么总答不准?不是模型笨,是资料没整理好
2026-07-05
AI知识库RAG演进:上一代解决「找得到」,下一代解决「记得住、连得起、信得过」
2026-07-04
大模型支持的上下文已超 1M, RAG 是不是没有意义了?
2026-04-27
2026-04-23
2026-04-20
2026-04-09
2026-04-12
2026-04-22
2026-05-14
2026-04-10
2026-04-30
2026-04-27
2026-07-04
2026-06-23
2026-06-23
2026-06-15
2026-06-10
2026-06-10
2026-05-20
2026-05-18
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。