1个不稳定版本
0.1.0 | 2022年6月22日 |
---|
#19 in #knn
12KB
247 行
bfes
暴力搜索嵌入搜索
给定一组嵌入和一个查询嵌入,该算法搜索每个查询的最邻近嵌入。由于它是暴力搜索,因此不需要重新生成索引,并且可以随时向索引添加新的嵌入。算法在时间和空间上都是O(n)。
性能
搜索100,000个512维嵌入的暴力搜索时间
Windows 11, AMD Ryzen 9 5950x @ 3.4 GHz
test tests::bench_cosine_similarity ... bench: 20,018,120 ns/iter (+/- 2,042,521)
Mac OS X, M1 Max MacbookPro18,4
test tests::bench_cosine_similarity ... bench: 11,302,216 ns/iter (+/- 185,505)
Mac OS X, M1 Macmini9,1
test tests::bench_cosine_similarity ... bench: 9,559,170 ns/iter (+/- 592,620)
Ubuntu 18.04, AWS c6i.large
test tests::bench_cosine_similarity ... bench: 25,452,715 ns/iter (+/- 848,001)
Ubuntu 22.04, AWS c6a.large
test tests::bench_cosine_similarity ... bench: 17,306,132 ns/iter (+/- 78,319)
Ubuntu 22.04, AWS c6g.medium
test tests::bench_cosine_similarity ... bench: 30,262,326 ns/iter (+/- 64,509)
依赖关系
~4MB
~84K SLoC