milvus基础
nlist和nprobe
- nlist 是调用 create_index 时设置的参数,nprobe 则是调用 search 时设置的参数。
- IVFLAT 和 SQ8 索引都是通过聚类算法把大量的向量划分成很多‘簇’(也可以叫‘桶’),
- nlist 指的就是聚类时划分桶的总数。
- 通过索引查询步骤
- 第一步先找到和目标向量最接近的若干个桶(nprobe:若干个桶的数量)
- 若干个桶里通过比较向量距离查找出最相似的 k 条向量。
- nlist越大,也就是建立索引时,划分桶的数量越多,同时每个桶中的向量数量越少
- 查询时,比较的向量越少,结果就是:性能和速度越好;准确率越低
- nlist官方推荐为 4*sqrt(n),其中,n表示向量的个数
- nprobe越大,则比较的桶和向量越多,结果就是:性能和速度相对越低,准确率越高
本文来自博客园,作者:柯南小海盗,转载请注明原文链接:https://www.cnblogs.com/knxhd/p/18371392
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步