news 2026/5/14 2:57:05

RAG工程化实践方法论 - 混合检索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAG工程化实践方法论 - 混合检索

一、概述

在文章《[RAG工程化实践方法论]》中,我们系统梳理了RAG工程化中的常用技术手段。

作为该系列的延续,本文将聚焦于RAG检索阶段优化中的混合检索方式,深入剖析其核心原理,并详细解读其实现方法。

二、混合检索

2.1 简介

混合检索 (Hybrid Search)指的是在同一RAG系统中,并行采用多种不同类型的检索算法进行信息获取(常见的组合方式为:传统关键词匹配 + 向量语义相似度计算)。该方法通过多条检索路径协同工作,从多个维度全方位捕捉文档内容与用户查询意图之间的匹配关系。

2.2 核心思想

其核心理念可概括为**“字面匹配搜索”“语义相似度理解”**的双剑合璧:

  • 关键字检索 (如 BM25):侧重精准定位,擅长捕捉专有名词、型号代码、缩写等特定词汇。例如搜索“iPhone 17”,能够有效筛除与“iPhone 16”相关的内容。
  • 向量检索 (Vector Search):侧重语义理解,能够感知用户提问背后的意图,即使查询中未出现原文的精确用词,也能召回语义相近的信息。
  • 结果融合 (Fusion):将多路检索返回的候选结果汇总整合,并借助重排序算法筛选出综合质量最优的文本片段。

2.3 实现原理

混合检索的实现通常遵循以下标准工作流:

A. 并行检索 (Parallel Retrieval)

系统接收到问题查询请求后,将其同时发送至两个(或多个)独立的检索模块:

  • 关键字检索模块 (BM25):基于词频和逆文档频率算法,筛选出包含相关关键字的文档内容。
  • 向量检索模块 (Embedding):将查询问题转换为向量表示,在向量数据库中检索距离最近的文本片段。

B. 结果整合与生成

将多路检索返回的文档汇集融合后,输入大语言模型生成最终答案。

2.4 优势

  • **高鲁棒性:**能够有效应对多种提问形式,无论是表述简略还是语义模糊,均能保持稳定表现。
  • **幻觉抑制:**通过精准的关键词匹配,将模型限定在正确的信息源范围内,减少内容张冠李戴的风险。
  • **冷启动支持:**对于新出现的专有名词或术语(向量模型可能尚未学习),关键词检索可快速填补这一空白。
  • **召回更全面:**兼顾“语义相关”与“字面匹配”两方面,整体召回效果显著优于单一检索路径。

三、混合实现方式

3.1 数据准备

在实现混合检索之前,我们首先准备待分割的文档,接着初始化向量数据库,并将分割后的文档存入向量库。此处仍沿用前文所使用的新闻稿news.txt,实现代码如下:

from langchain_community.document_loaders import TextLoaderfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_chroma import Chroma# 加载文档path = "news.txt"loader = TextLoader(path,encoding='utf-8')docs = loader.load()# 分割文档text_splitter = RecursiveCharacterTextSplitter(chunk_size=512, chunk_overlap=50)chunks = text_splitter.split_documents(docs)vectorstore = Chroma.from_documents(documents=chunks, embedding=embeddings_model, collection_name="mix-query")# 初始化检索器retriever = vectorstore.as_retriever(search_kwargs={"k": 3})

3.2 向量检索

在混合检索前,先做向量检索测试一下效果,代码如下:

query = "OpenClawd是什么"# 向量检索vector_retriever_doc = vector_retriever.invoke(query)pretty_print_docs(vector_retriever_doc)

运行结果如下,向量检索能够从检索出相关数据:

3.2 关键字检索

这里关键字检索使用BM25(Best Matching 25)方式来检索,BM25是一种衡量文档与查询相关性的排序函数,通过考虑词频、逆文档频率和文档长度归一化来计算文本匹配得分。代码如下:

from langchain_community.retrievers import BM25Retriever# BM25关键词检索BM25_retriever = BM25Retriever.from_documents(chunks,k=3)BM25Retriever_doc = BM25_retriever.invoke(query)pretty_print_docs(BM25Retriever_doc)

运行结果如下,BM25能够检索出相关数据:

3.3 混合检索

把上面的两种检索方式进行融合,并设置权重,把检索的结果进行融合后再交给大模型来总结回答。相关代码如下:

from langchain.retrievers import EnsembleRetriever# 向量检索和关键词检索的权重各0.5,两者赋予相同的权重retriever = EnsembleRetriever(retrievers=[BM25_retriever, vector_retriever], weights=[0.5, 0.5])pretty_print_docs(retriever.invoke(query))

运行结果如下,结果返回4个文档块,对比发现是前两种方式检索出来的6个文档块有两个是重合的,融合后保留了4个:

把以上融合后的结果交给LLM进行总结,最终即可生成答案。

  1. 总结
    =====

混合检索通过并行使用多种检索方式,将“字面精准定位”与“语义意图理解”有机结合,有效弥补了单一检索模式的局限性。该方法利用多路召回与权重融合策略,不仅提升了检索的全面性和鲁棒性,还能抑制模型幻觉、增强对新术语的适应能力。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

解梦大师:AI驱动的梦境分析神器

从0到1开发一款Vue3Electron桌面应用 你是否曾被奇怪的梦境困扰? 梦见掉牙、被追赶、飞翔……这些梦境到底在暗示什么? 今天给大家分享一款开源解梦神器——从架构设计到功能实现完整解析! 一、项目概述 解梦大师是一款基于 Vue 3 Electro…

作者头像 李华
网站建设 2026/5/14 2:48:43

PT-Plugin-Plus:浏览器PT下载插件的终极配置指南

PT-Plugin-Plus:浏览器PT下载插件的终极配置指南 【免费下载链接】PT-Plugin-Plus PT 助手 Plus,为 Microsoft Edge、Google Chrome、Firefox 浏览器插件(Web Extensions),主要用于辅助下载 PT 站的种子。 项目地址:…

作者头像 李华
网站建设 2026/5/14 2:46:06

AwaDB:轻量级嵌入式向量数据库,AI应用开发的瑞士军刀

1. 项目概述:当向量数据库遇上“小而美” 最近在折腾几个AI应用的原型,从RAG(检索增强生成)到智能客服,再到内容推荐,都绕不开一个核心组件——向量数据库。市面上成熟的方案不少,比如Milvus、P…

作者头像 李华
网站建设 2026/5/14 2:45:02

保姆级教程:手把手教你将北醒TFmini雷达接入Pixhawk飞控(PX4固件)

从零开始:北醒TFmini雷达与Pixhawk飞控的深度集成指南 1. 硬件选型与准备工作 在开始之前,我们需要确保手头有合适的硬件设备。北醒TFmini系列雷达因其体积小巧、性价比高而广受无人机爱好者青睐。对于Pixhawk飞控,建议选择2.4.8或更新版本的…

作者头像 李华
网站建设 2026/5/14 2:44:07

从功能测试到自动化测试,我花了1年时间,薪资涨了2倍

一、功能测试的瓶颈:在重复中看见职业天花板2025年的春天,我在一家中型互联网公司做功能测试,每天的工作像上了发条的时钟:对着需求文档梳理测试点,在页面上反复点击、输入数据,提交bug后等待开发修复&…

作者头像 李华