前言
❝
你以为RAG(Retrieval-Augmented Generation)检索只能靠向量?那你可就out了!今天,咱们就来聊聊如何用“向量+关键词”双剑合璧,打造检索界的“六边形战士”——融合检索(Fusion Retrieval)。
一、检索界的“武林大会”:向量 vs. 关键词
在AI知识检索的江湖里,向量检索和关键词检索(BM25)各有绝活:
- 向量检索:擅长“意会”,能理解“你说的不是你说的,但我懂你说的”。
- 关键词检索:擅长“言传”,只认死理,谁说得准、谁出现得多,谁就是老大。
但问题来了:
- 向量检索有时太“通透”,把“苹果”当“水果”,却忘了你其实想要“iPhone”。
- 关键词检索死磕字面,遇到“同义词”“语境”就抓瞎。
于是,江湖呼唤一个能“文武双全”的检索大侠——融合检索。
二、融合检索:检索界的“六边形战士”
融合检索(Fusion Retrieval)就是把向量和关键词检索的优点揉在一起,既能“意会”又能“言传”,让检索结果既懂你心思,又不丢细节。
为什么要融合?
- 向量检索:适合“模糊搜索”“语义理解”,但有时会漏掉关键词的“硬核”匹配。
- BM25关键词检索:适合“精确打击”,但对“语义漂移”无能为力。
- 融合检索:两者结合,既能抓住“关键词”,又能理解“上下文”,检索效果直接起飞!
三、融合检索的“炼丹炉”:整体流程一览
别怕,流程其实很简单,咱们用伪代码和思路带你飞:
-
文档处理:PDF提取文本 → 清洗 → 分块(chunking)
-
向量化:每个chunk生成embedding,存入向量库
-
关键词索引:用BM25为每个chunk建关键词索引
-
检索时:
-
- 用向量检索找“语义相近”的chunk
- 用BM25找“关键词命中”的chunk
- 两种分数归一化,按权重融合
- 综合排序,取Top-K
-
生成答案:把Top-K chunk拼成context,丢给大模型生成最终答案
是不是很丝滑?下面我们逐步拆解。
四、文档处理:从PDF到“知识碎片”
1. PDF文本提取
用PyMuPDF等工具,把PDF里的内容一页页扒出来,拼成大文本。
text = extract_text_from_pdf(pdf_path)
2. 文本清洗
去掉多余空格、换行、奇怪符号,保证后续处理不“踩雷”。
cleaned_text = clean_text(text)
3. 分块(Chunking)
把大文本切成小块(比如每1000字符一块,重叠200字符),这样既能覆盖上下文,又不丢细节。
chunks = chunk_text(cleaned_text, chunk_size=1000, chunk_overlap=200)
五、知识入库:向量库 & BM25索引
1. 向量化
用OpenAI/BGE等embedding模型,把每个chunk变成“高维向量”,存进自定义的向量库。
embeddings = create_embeddings([chunk["text"] for chunk in chunks])
vector_store.add_items(chunks, embeddings)
2. BM25关键词索引
用BM25算法,把每个chunk的词分词、建索引,方便后续“关键词检索”。
bm25_index = create_bm25_index(chunks)
六、检索时刻:双剑合璧的“融合检索”
1. 向量检索
用用户query生成embedding,和所有chunk的embedding算余弦相似度,取Top-K。
vector_results = vector_store.similarity_search_with_scores(query_embedding, k=K)
2. BM25检索
把query分词,和BM25索引比对,算分数,取Top-K。
bm25_results = bm25_search(bm25_index, chunks, query, k=K)
3. 分数归一化 & 融合
- 两种分数都归一化到0~1区间
- 用权重alpha(比如0.5)加权融合
伪代码如下:
norm_vector_scores = normalize(vector_scores)
norm_bm25_scores = normalize(bm25_scores)
combined_scores = alpha * norm_vector_scores + (1 - alpha) * norm_bm25_scores
4. 综合排序,取Top-K
按combined_scores排序,取前K个chunk,拼成context。
七、生成答案:让大模型“锦上添花”
把Top-K chunk拼成context,和query一起丢给大模型(如Llama3、GPT-4),让它“有理有据”地回答。
response = generate_response(query, context)
八、三大检索法大比拼:谁才是“最强王者”?
我们分别用三种方式回答同一个问题,比如:
❝
“Transformer模型在自然语言处理中的主要应用有哪些?”
1. 向量检索RAG
- 优点:能理解“transformer”与“NLP”的语义关系
- 缺点:如果文档没明确提到“transformer”,可能找不到
2. BM25关键词检索RAG
- 优点:只要文档里有“transformer”,一定能命中
- 缺点:如果文档用的是“变换器模型”或“self-attention”,就GG了
3. 融合检索RAG
- 优点:既能抓住“transformer”关键词,又能理解“上下文”语义
- 缺点:实现稍复杂,计算量略大
实测结果(真实案例):
- 向量检索:答得还行,但没点名“transformer”的具体应用
- BM25检索:死磕关键词,没找到就说“没提到transformer”
- 融合检索:不仅列举了“机器翻译、文本生成、情感分析、文本分类、语言建模”,还解释了transformer在NLP的地位
结论:融合检索完胜!
九、融合检索的“江湖秘籍”:适用场景与调优建议
1. 什么时候用向量检索?
- 语义理解为主,关键词不确定
- 用户问题“拐弯抹角”,比如“能自动写诗的AI模型有哪些?”
2. 什么时候用BM25关键词检索?
- 用户问题“指名道姓”,比如“文档里有没有‘Transformer’这个词?”
- 法律、医学等领域,关键词极其重要
3. 什么时候用融合检索?
- 你既想“意会”又想“言传”
- 文档内容复杂,既有专业术语又有通俗描述
- 用户问题既有关键词又有语义需求
4. 融合权重怎么调?
- alpha=0.5:向量和BM25各占一半,适合大多数场景
- alpha→1:更偏向语义理解
- alpha→0:更偏向关键词命中
可以多做A/B测试,找到最适合你业务的权重。
十、工程实践Tips
- 分块策略很重要:chunk太大,检索不准;太小,语义丢失。建议1000字符左右,重叠200字符。
- embedding模型选型:英文用OpenAI/BGE,中文可选BGE-m3、text2vec等。
- BM25分词:中文要用jieba等分词器,英文直接split即可。
- 归一化要做对:分数归一化别忘加epsilon防止除零。
- 检索速度优化:向量库可用FAISS、Milvus等,BM25可用Whoosh、Elasticsearch等。
十一、未来展望:融合检索的进阶玩法
- 多模态融合:不仅文本,还能融合图片、表格等多种信息
- 动态权重调整:根据query类型动态调整alpha
- 用户反馈闭环:用用户点击/满意度反向优化检索权重
- 端到端训练:用大模型微调,让检索和生成更“心有灵犀”
十二、总结:融合检索,RAG的“最优解”?
融合检索不是“银弹”,但在大多数实际场景下,它能显著提升RAG系统的召回率和答案质量。它让AI既能“知其然”,又能“知其所以然”。
一句话总结:
❝
“向量检索懂你,BM25不放过你,融合检索——既懂你又不放过你!”
结尾彩蛋:一张图看懂融合检索
用户Query
│
├─► 向量检索(语义理解) ──┐
│ │
├─► BM25检索(关键词匹配) ─┤→ 分数归一化 → 加权融合 → Top-K排序
│ │
└────────────────────────────┘
│
拼成Context
│
丢给大模型生成答案
最后
为什么要学AI大模型
当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!
DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。
与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】

AI大模型系统学习路线
在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。
但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。
AI大模型入门到实战的视频教程+项目包
看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
海量AI大模型必读的经典书籍(PDF)
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
600+AI大模型报告(实时更新)
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
AI大模型面试真题+答案解析
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
