My binary vector search is better than your FP32 vectors

💡 原文中文,约4000字,阅读约需10分钟。
📝

内容提要

二进制向量搜索通过减少内存消耗取得了30倍的减少,但准确性有争议。实验发现,使用二进制向量搜索和优化技术可以保持准确性。自适应检索方法可以提高准确性。与缩短向量相比,二进制向量明显优于缩短向量。自适应检索配合1024维索引实现了更高的准确率。通过利用自适应检索技术,二进制向量可以在减少内存使用量的同时保持高水平的准确性。

🎯

关键要点

  • 二进制向量搜索通过减少内存消耗取得了30倍的减少。

  • 二进制向量搜索的准确性有争议,但实验显示可以保持与原始向量相似的准确性。

  • 二进制向量只需占用一个bit存储每个元素,显著减少内存需求。

  • 实验使用dbpedia-entities-openai3-text-embedding-3-large-3072-1M数据集进行基准测试。

  • 二进制向量搜索的每秒请求数(RPS)约为3000,而原始向量搜索的RPS仅约为300。

  • 二进制向量搜索的准确性降低到约80%,在某些情况下可能不可接受。

  • 自适应检索方法可以提高准确性,结合二进制向量搜索的效率和KNN重新排序的准确性。

  • 通过自适应检索,准确率可提高至高达95%,且RPS保持在约1700。

  • 与缩短向量相比,二进制向量明显优于缩短向量。

  • 1024维索引在每秒1000个请求的情况下实现约85%的准确率,而二进制向量在每秒3000个请求的情况下实现约80%的准确率。

  • 自适应检索配合1024维索引实现了更高的准确率(99%),但请求速率较低,内存使用量增加了12倍。

  • 通过自适应检索技术,二进制向量可以在减少30倍内存使用量的同时保持高水平的准确性。

➡️

继续阅读