PYTHON+AI LLM DAY EIGHTY-SEVEN

📅 2026/6/26 6:15:49
PYTHON+AI LLM DAY EIGHTY-SEVEN
今天简单介绍一下milvus向量库中的混合检索方法.混合检索的目的也就是从不同向量场实现对问题的精准查询,这也是milvus向量库的一大优点.milvus向量库支持的混合检索的方式有两种.也是常说的排序器.分别是加权排名策略WeightedRanker和重排序策略RRFRanker.它们的区别在于对最后向量场的上分配的权重上的区别.WeightedRanker对不同的向量场使用不同的权重(重要性),所有向量场的权重的和为1.RRFRanker对待每个向量场则没有权重限制,也就是每个向量场是等权重.这里说的向量场.大致意思就是说:先回顾一下milvus向量库存储的数据,主要是向量形式.就是各种非结构化数据转化成一串数字存入milvus向量库(向量存储).每一个milvus表里面最多只能有4种类型向量.这里不同类型的向量就是不同的向量场.混合检索就是在不同向量场上进行检索的.前面也提到过的bge-m3模型是既可以编码稀疏向量,也可以编码稠密向量.当然也还有其他嵌入(向量)模型.这里的稀疏向量和稠密向量就是不同的向量场.在这里就是顺带介绍一下混合检索的大致过程:先是对拿到的问题.编码成不同的向量场(可以是同一个向量模型,例如bge-m3).比如稀疏向量和稠密向量.然后在这两个向量场上分别去milvus向量库的相应向量字段上去计算相似度(例如使用BM25算法,使用统一的IP距离,如果是不同距离,结果应当转化)然后分别在不同的向量场上召回topk个语义最相关的语句.最后就是根据向量场上的权重的区别,选择混合检索方式(排序器)确定最后的排序结果.