news 2026/4/26 20:18:37

多路召回(Multi-Route Retrieval)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多路召回(Multi-Route Retrieval)

核心原理与技术架构

多路召回通过并行执行多个检索策略,覆盖不同语义维度(关键词、语义、多模态等),再通过融合算法(如 RRF、加权排名)生成最终结果,解决单一检索的 “漏检” 和 “错配” 问题。其技术架构包含三大模块:

  1. 多策略并行检索
    • 稀疏检索:基于 BM25/TF-IDF 的关键词匹配,适合精准定位含特定术语的文档(如医疗指南中的 “胰岛素类似物”)。
    • 稠密检索:通过 Embedding 模型(如 BERT、text-embedding-3-large)生成语义向量,支持跨模态关联(如 “红色运动鞋” 匹配 “crimson sneakers”)。
    • 多模态检索:结合 CLIP 等模型处理图像、音频,例如通过 “白色耳机” 检索匹配的产品图片。
  1. 智能融合算法
    • RRF(互惠排名融合):根据各路径排名位置计算综合得分,公式为:

      其中,k= 60为默认平滑参数,N为检索路径数,ranki(d)为文档d在第i条路径中的排名。
    • 加权排名:对各路径得分归一化后分配权重(如 BM25 占 40%,稠密向量占 60%),适用于需突出特定模态的场景(如电商优先展示销量高的商品)。
  1. 动态调优机制
    • 粗排 - 精排流程:先通过轻量级模型(如 BM25)过滤低相关文档,再用精排模型(如 Sentence-BERT)重排序,降低计算成本。
    • 衰减排名器:结合时间、距离等标量字段调整排名,例如新闻检索中优先展示近 3 天的内容。

Milvus 多模态混合检索实战

Milvus 作为高性能向量数据库,支持稀疏向量、稠密向量、多模态向量的混合检索,以下为典型实现步骤:

  1. 数据预处理与索引构建
    • 文本处理:使用RecursiveCharacterTextSplitter分块(chunk_size=500,overlap=50),结合 BM25 分词器(中文需配置zh_core_web_sm)生成稀疏向量,同时用 OpenAI Embeddings 生成稠密向量。
    • 图像处理:通过 CLIP 模型将图像编码为 512 维向量,与文本向量存储在同一 Collection 的不同字段(如image_densetext_dense)。
  1. 多策略并行检索
from pymilvus import MilvusClient, Collection, SearchResult from langchain.embeddings import OpenAIEmbeddings from PIL import Image from sentence_transformers import CLIP # 初始化Milvus客户端 client = MilvusClient(uri="http://localhost:19530", token="user:pass") collection = Collection(client, "multimodal_products") # 文本检索(BM25+稠密向量) query_text = "白色耳机,安静舒适" sparse_search = { "vector_field_name": "text_sparse", "query": query_text, "params": {"drop_ratio_search": 0.2}, "top_k": 5 } dense_search = { "vector_field_name": "text_dense", "query_embeddings": OpenAIEmbeddings().embed_query(query_text), "params": {"nprobe": 10}, "top_k": 5 } # 图像检索(CLIP) image = Image.open("query_image.jpg") clip_model = CLIP("clip-ViT-B-32") image_embedding = clip_model.encode(image).tolist() image_search = { "vector_field_name": "image_dense", "query_embeddings": image_embedding, "params": {"nprobe": 10}, "top_k": 5 } # 执行多路召回 results = collection.search( data=[sparse_search, dense_search, image_search], output_fields=["product_id", "price"], rerank_config={ "reranker": "RRF", "params": {"k": 60} # 可根据场景调整 } )
  1. 关键参数调优
    • 稀疏检索(BM25)
      • drop_ratio_search:控制稀疏向量检索时的剪枝比例(0.2 表示保留前 20% 候选)。
    • 稠密检索(HNSW)
      • nprobe:增加检索时访问的聚类中心数(10-20 可平衡速度与精度)。
    • 图像检索(CLIP)
      • 若图像向量维度与 CLIP 输出不一致,需通过 PCA 降维至 256 维以提升索引效率。

排名器

RRF Ranker(Reciprocal Rank Fusion,互易排名融合)

  • 核心依据:各路召回结果的排名位置(rank),而非原始相似度分数。
  • 公式
  • 优点
    • 无需调权重,开箱即用;
    • 天然兼容异构得分(如 L2、IP、BM25、稀疏/稠密向量);
    • 鲁棒性强,避免某一路异常分数主导结果。
  • 适用场景
    • 多路召回同等重要
    • 稠密向量 + 稀疏向量混合检索;
    • 快速原型验证或不确定权重分配时。

典型用例:文本语义搜索 + 关键词 BM25 检索的融合。

Weighted Ranker(加权排名器)

  • 核心依据:各路召回的原始相似度分数,经归一化后加权求和。
  • 公式(简化)
  • 流程
    1. 收集各路得分;
    2. 归一化到 [0,1](如用 arctan);
    3. 按预设权重加权(如 w₁=0.7, w₂=0.3);
    4. 合并排序。
  • 优点
    • 显式控制各模态重要性
    • 适合业务目标明确的场景。
  • 缺点
    • 需要调参(权重 + 归一化方式);
    • 若各路相似度度量不同(如 L2 vs IP),归一化不当会导致偏差。
  • 适用场景
    • 某一模态明显更重要(如电商中图像 > 文本);
    • 各路得分分布稳定且可比。

典型用例:图像检索(权重 0.6)+ 商品描述语义(权重 0.4)。

Boost Ranker(提升排名器,Milvus v2.6.2+起正式支持)

  • 核心依据标量元数据字段(如publish_time,rating,price,click_count)。
  • 机制
    • 不依赖向量相似度;
    • 直接根据业务字段值提升或调整最终排名;
    • 可实现“时间越新越靠前”“评分越高越优先”等逻辑。
  • 优点
    • 引入业务上下文信号
    • 支持复杂规则组合(如时间衰减函数 + 热度加成)。
  • 适用场景
    • 需要融合非向量特征(时效性、热度、距离、用户偏好等);
    • 新闻、电商、推荐等强业务导向场景。

典型用例

  • 新闻搜索:boost = exp(-0.01 * (now - publish_time))
  • 商品推荐:final_score = vector_score + 0.2 * log(rating + 1)

三者对比

排名器

依据

是否需要调参

处理异构得分

引入业务信号

典型用途

RRF Ranker

排名位置

否(仅 k 可选)

天然支持

稠密+稀疏融合

Weighted Ranker

原始分数

是(权重+归一化)

需归一化

模态重要性可控

Boost Ranker

标量字段

是(定义 boost 规则)

支持(独立于向量)

时效/热度/评分等

典型应用场景与策略组合

领域

核心需求

多路召回策略

Milvus 关键配置

医疗健康

权威指南 + 相似病例 + 最新文献,规避过时信息

1. BM25 检索药典术语(如 “胰岛素类似物”)

2. 稠密向量匹配相似病例文本

3. 时间衰减检索近 5 年文献

- 稀疏向量字段启用 BM25 分词器- 稠密向量字段使用 HNSW 索引(nprobe=15)

- 添加publication_year

字段进行衰减排序

电子商务

商品属性匹配 + 语义关联 + 视觉特征 + 口碑参考

1. BM25 检索规格(如 “1TB 硬盘”)

2. 稠密向量匹配用户需求(如 “轻薄笔记本”)

3. 图像向量检索同款商品4. 销量字段降序排序

- 稀疏向量字段启用 TF-IDF

- 图像向量字段使用 IVF-PQ 索引(m=16)

- 加权排名(BM25:30%,稠密:50%,图像:20%)

法律实务

法条原文 + 司法解释 + 相似判例 + 地域时效性

1. 结构化检索法条编号(如 “刑法第 232 条”)

2. 稠密向量匹配案情描述

3. 地域过滤本地案例

4. 时间过滤现行法条

- 稀疏向量字段启用倒排索引

- 添加jurisdiction

effective_date

字段进行标量过滤

- RRF 融合(k=40)

企业知识库

流程规范 + 历史案例 + 岗位适配,减少重复检索

1. 关键词检索流程标题(如 “报销流程”)

2. 稠密向量匹配问题描述

3. 用户画像字段(如 “部门 = 销售”)过滤

- 稀疏向量字段启用中文分词器(jieba)

- 添加department

字段进行联合过滤

- 衰减排名器(访问频次降序)

性能优化与工程实践

  1. 索引选择与压缩
    • 大规模数据(>100 万向量):使用 IVF-PQ 索引(m=16,nlist=1024),压缩率达 16 倍,内存占用降低 80%。
    • 高维多模态:图像向量采用 HNSW 索引(ef=100,M=32),文本向量采用 HNSW+PQ 混合索引。
  1. 实时性与扩展性
    • 流式数据:使用 Milvus 的 CDC(Change Data Capture)功能,实时同步更新至向量索引,支持毫秒级延迟。
    • 分布式部署:通过 Proxy 节点实现负载均衡,支持水平扩展至 100 + 节点,处理亿级向量检索。
  1. 成本控制
    • 冷热分离:将高频访问向量存储在 SSD,低频向量迁移至 HDD,结合 Milvus 的 Tiered Storage 功能降低存储成本。
    • 缓存策略:对 TOP 1% 的热门查询结果进行内存缓存,减少重复检索压力。

阶段

建议

召回路数

控制在 2–4 路,避免 I/O 和计算爆炸;优先选择正交性高的路径(如文本+图像+行为)

粗排

对每路结果用简单规则(如 BM25 阈值、向量相似度 > 0.6)快速过滤

精排

使用 RRF 或 WeightedRanker 融合;若需更高精度,可引入 Cross-Encoder 重排

成本控制

在 Milvus 中,多路 ANN 是并行执行的,但总topK * 路数会影响内存与延迟,需压测调优

选型与调优建议

  • 小规模场景(<10 万向量):优先稠密向量 + BM25,无需复杂索引。
  • 中大规模场景(10 万 - 1 亿向量):采用 HNSW+PQ 混合索引,结合 RRF 融合。
  • 超大规模场景(>1 亿向量):使用 IVF-PQ+DiskANN,部署分布式集群。

总结

多路召回通过 “多路径检索 + 智能融合” 显著提升 RAG 系统的召回率和准确性,其核心优势包括:

  1. 覆盖多维度语义:关键词、语义、多模态、时空属性等全方位匹配。
  2. 动态适配场景:不同领域可灵活组合策略(如医疗侧重专业数据库,电商侧重视觉与行为数据)。
  3. 工程化落地成熟:Milvus 等工具支持开箱即用的多模态检索与混合排序,降低开发门槛。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 17:56:48

EmotiVoice语音合成在图书馆自助服务系统中的便捷应用

EmotiVoice语音合成在图书馆自助服务系统中的便捷应用 在一座现代化的智慧图书馆里&#xff0c;一位视障读者轻轻触碰自助终端屏幕&#xff0c;询问&#xff1a;“《平凡的世界》在哪里&#xff1f;”几秒钟后&#xff0c;一个温和、清晰且略带关切语气的声音响起&#xff1a;“…

作者头像 李华
网站建设 2026/4/25 10:26:09

02.生成式人工智能和大型语言模型简介

生成式人工智能和大型语言模型简介 生成式人工智能是一种能够生成文本、图像及其他类型内容的人工智能技术。它的神奇之处在于&#xff0c;它让人工智能变得更加普及&#xff0c;任何人只需输入一个文本提示&#xff0c;即用自然语言写的一句话&#xff0c;就可以使用它。你不需…

作者头像 李华
网站建设 2026/4/25 15:34:44

03.探索和比较不同类型AI模型

探索和比较不同的LLM 在上一课中&#xff0c;我们已经了解了生成式人工智能如何改变技术格局&#xff0c;了解了大型语言模型&#xff08;LLM&#xff09;的工作原理&#xff0c;以及企业&#xff08;例如我们的初创公司&#xff09;如何将其应用于实际案例并实现增长&#xff…

作者头像 李华
网站建设 2026/4/21 10:13:07

HTML插槽与Shadow DOM:Web Components基础

HTML插槽与Shadow DOM&#xff1a;Web Components基础 引言 在Web开发领域&#xff0c;随着项目复杂度的不断提升&#xff0c;代码复用与组件化开发的需求愈发迫切。Web Components作为一项原生支持的技术&#xff0c;为开发者提供了创建可复用、封装性强的自定义组件的能力。其…

作者头像 李华
网站建设 2026/4/22 4:44:45

HTML导入与模块化:`link rel=“import“`的替代方案深度解析

HTML导入与模块化&#xff1a;link rel"import"的替代方案深度解析 在Web开发的早期阶段&#xff0c;HTML导入&#xff08;<link rel"import">&#xff09;作为Web Components规范的一部分&#xff0c;曾被视为模块化HTML内容的重要解决方案。该特性…

作者头像 李华