结果
以下展示基于 CPU 和 GPU 的 3 组性能测试结果。该测试使用了 Milvus 的 HNSW(仅 CPU)和IVF_PQ(CPU 和 GPU)索引类型。
-
商品向量间相似度搜索
对于给定的参数组合,将 50% 的商品向量作为查询向量,并从剩余的向量中查询出 top-100 个相似向量。我们发现,在测试的参数设置范围内,HNSW 和 IVF_PQ 的召回率很高,分别在 0.958-1.0 和 0.665-0.997 之间。这表明 HNSW 在召回率方面表现更好,但是 IVF_PQ 在 nlist 较小的情况下也能得到非常高的召回率。此外,召回率的值随着索引和查询参数的变化也会发生很大的变化。报告结果在对一般参数范围进行初步实验并进一步深入选择子集之后获得的。
在给定参数组合下,使用 HNSW 在 CPU 上执行所有查询的总时间范围在 5.22 到 5.33 秒之间(在 ef不变的情况下,随着 m 的增大而更快),而使用 IVF_PQ 在 13.67 到 14.67 秒之间(随着 nlist 和 nprobe 的增大而变慢)。如图 3 所示,GPU 加速确实效果更明显。
图 3 显示了在 CPU 和 GPU 上,使用 IVF_PQ 和这个小数据集时召回率和吞吐量之间的 tradeoff。我们发现,GPU 在所有测试的参数组合下都实现了 4 到 15 倍的加速(随着 np