我正在使用Python中的库hnswlib
(https://github.com/nmslib/hnswlib
)库来实现快速的KNN搜索。我想知道大型数据集的参数。
我正在使用官方存储库中的这个基准测试大型数据集上的库行为( 256+的向量维数为100万vectors+) https://github.com/nmslib/hnswlib/blob/master/examples/example.py
用几个100 K的小数据集进行测试这个基准的召回结果很好,通常是围绕着.9。增加到百万,下降到.7
库的作者概述了库参数(https://github.com/nmslib/hnswlib/blob/master/ALGO_PARAMS.md
)的一些一般属性,但是找到一个对大数据具有较高召回率的设置是很耗时的,因为索引构建时间需要几个小时,并且随着参数选择更大的值而进一步增加。
对于某些数据维度或数据点的数量,是否有一些最佳实践值?我知道这个库很受欢迎,但是我找不到任何有价值的建议。
发布于 2021-12-10 12:36:04
我相信这个GitHub问题回答了你的问题。这里概述的用于发现用例最佳参数的步骤如下:
M=16
和ef_construction=200
开始。ef
上迭代,直到您得到一个召回>= 0.95。ef_construction
设置为步骤2中发现的值来重新索引。ef_construction
> 1,000,则增加M.https://stackoverflow.com/questions/65379421
复制相似问题