Milvus
Milvus 开源向量相似度检索引擎,向量数据库
https://github.com/milvus-io/milvus
向量索引
https://milvus.io/cn/docs/v2.0.x/index.md
FLAT 无索引100%召回
FLAT 是指对向量进行原始文件存储,是唯一可以保证精确的检索结果的索引。FLAT 的结果也可以用于对照其他召回率低于 100% 的索引产生的结果。
对于每个查询,目标输入都要与数据集中的每个向量进行比较。
IVF_FLAT 聚类
IVF_FLAT 索引通过聚类方法把空间里的点划分至 nlist 个单元,然后比较目标向量与所有单元中心的距离,选出 nprobe 个最近单元。然后比较这些被选中单元里的所有向量,得到最终的结果,极大地缩短了查询时间。
IVF_FLAT 索引不会对原始向量进行压缩,IVF_FLAT 索引文件的大小与原始数据文件大小相当。
建索引参数
nlist 聚类单元数,取值范围 [1, 65536]
查询参数
nq 输入向量个数
nprobe 查询取的单元数,取值范围 [1, 65536]
IVF_SQ8 聚类+压缩
IVF_SQ8 索引在 IVF_FLAT 基础上进行向量压缩。
IVF_SQ8 通过对向量进行标量量化(scalar quantization),能把原始向量中每个FLOAT(4 字节)转为UINT8(1 字节),从而可以把磁盘及内存、显存资源的消耗量减少为原来的 1/4 至 1/3。同样以 sift-1b 数据集为例,生成的 IVF_SQ8 索引文件只有 140 GB。
性能测试报告
https://milvus.io/cn/docs/v2.0.x/benchmark.md
100 万 128 维 SIFT 向量,建立 IVF_FLAT 索引,nlist=2048,1比n检索返回top1,入参 nprobe=16,并发检索,可达 440 qps、120 ms 平响
5000 万 128 维 SIFT 向量,建立 IVF_FLAT 索引,nlist=4096,1比n检索返回top1,入参 nprobe=16,并发检索,10个 query nodes 可达 90qps,216 ms 平响
距离计算方式
https://milvus.io/cn/docs/v2.0.x/metric.md
上一篇 2022年7月装机
下一篇 Arthas
页面信息
location:
protocol
: host
: hostname
: origin
: pathname
: href
: document:
referrer
: navigator:
platform
: userAgent
: