【大模型应用】6.RAG 场景下的向量+关键词混合检索

混合检索

定义

混合检索也叫多路召回或者融合检索,不仅限于向量检索和关键词检索的叠加。

比如同时从文档库和数据库检索,或者同时用多个不同的 Embedding 模型做向量检索,最后把结果融合起来,都算混合检索。

只不过在大模型 RAG 场景下,混合检索最常见的形态就是向量检索 + 关键词检索

两种检索方式各有软肋:

● 向量检索:擅长语义理解,比如 "猫捕猎老鼠" 和 "猫追逐老鼠" 能匹配上;但难以精准匹配专有名词(如 "iPhone 15")。

● 关键词检索:精确匹配没问题,但理解不了语义,用户问 "怎么减肥",它匹配不到 "如何瘦身"。

混合检索就是两条路并行走:

  1. 分别执行向量检索和关键词检索
  2. 把两边的结果融合起来
  3. 用权重加权或者 RRF 算法重排序
  4. 取最优结果喂给大模型

实现方案

  1. Elasticsearch 8.0+ :原生支持 dense_vector 字段和 knn 查询,可以在一个查询里同时做向量检索和关键词检索,用 bool query 组合结果。
  2. Milvus + 外部搜索引擎:Milvus 专门做向量检索,配合 Elasticsearch 做关键词检索,在应用层做结果融合。
  3. LlamaIndex / LangChain:这类框架封装了混合检索的能力,简单配置即可使用,适合快速搭建原型系统。

结果融合策略

两路检索的结果怎么合并是个技术活,常见做法有两种:

  1. 加权求和
    给向量检索和关键词检索的分数分别乘以权重,加起来算总分。比如向量检索权重 0.7,关键词检索权重 0.3,最后按总分排序。
  • 权重怎么定?没有万能的黄金比例,需要根据业务场景调:

    • 文档里专有名词、ID 类查询多:关键词检索权重可调高到 0.4-0.5
    • 主要是自然语言问答:向量检索权重可给到 0.7-0.8
  • 调参技巧:准备一批有标注的测试集,跑不同权重组合,观察召回率和准确率的变化,找到最优点;线上还可以做 A/B 测试持续优化。

  1. RRF 算法(Reciprocal Rank Fusion)
    不看分数只看排名,对每个文档计算 1/(k+rank)(k 一般取 60),然后把两路的分数加起来。
    • 好处:不用关心两路检索分数的量纲差异,直接用排名计算,避免了分数归一化的问题。

一些追问

1. 向量检索和关键词检索的权重一般怎么定?有什么调参技巧?

没有万能的黄金比例,得根据业务场景调:

  • 文档里专有名词、ID 类查询多:关键词检索权重可调高到 0.4-0.5。
  • 主要是自然语言问答:向量检索权重可给到 0.7-0.8
  • 调参技巧:准备一批有标注的测试集,跑不同权重组合,看召回率和准确率的变化,找到最优点;线上还可以做 A/B 测试持续优化

2. 混合检索和 Rerank 是什么关系?能一起用吗?

能一起用,而且建议一起用:

  • 混合检索解决的是召回阶段的问题,让召回的候选文档更全面。
  • Rerank 解决的是精排阶段的问题,让最终送给大模型的文档更精准。
  • 典型流程:向量检索召回 Top 50,关键词检索召回 Top 50,RRF 融合后取 Top 100,然后用 Rerank 模型精排,最后取 Top 5 喂给大模型。两者是互补关系,不是替代关系。

3. 如果关键词检索和向量检索的结果完全没有交集,怎么处理?

这种情况说明两路检索的视角差异很大,需要分情况处理:

  • 如果用户 Query 明显是搜专有名词或 ID:关键词检索的结果更可信,可以给关键词检索更高权重甚至只用关键词检索的结果。
  • **如果用户 Query 是自然语言问题:**向量检索的结果更可信。
  • 进阶方案:做个简单的 Query 分类器,判断 Query 类型后动态调整两路的权重
相关推荐
猿小路2 小时前
SVN安装及IDEA集成详细使用教程
java·svn·intellij-idea
羸弱的穷酸书生2 小时前
跟AI学一手之渗透测试智能体
网络·人工智能
CCC:CarCrazeCurator2 小时前
MCP(Model Context Protocol)应用案例解析
人工智能
spencer_tseng2 小时前
ojdbc6-1.0.0.jar xmlworker-1.0.0.jar
java·maven·jar
智算菩萨2 小时前
AGI的定义:基于CHC认知理论的量化评估框架深度解析
论文阅读·人工智能·深度学习·ai·agi
鬓戈2 小时前
大模型Qwen3企业业务数据微调之模型导出
人工智能
@不误正业2 小时前
OpenHarmony集成AI Agent实战:打造鸿蒙智能助理
人工智能·华为·harmonyos