跳转到主要内容

可扩展矢量搜索(SVS)是一个矢量相似度搜索的性能库。

项目描述

可扩展矢量搜索

可扩展矢量搜索(SVS) 是一个矢量相似度搜索的性能库。得益于局部自适应矢量量化[ABHT23]及其高度优化的索引和搜索算法,SVS提供了矢量相似度搜索

  • 数十亿高维 向量上,
  • 高精度
  • 最先进的速度
  • 同时使用比其替代品更少的内存。

这使应用程序和框架开发者能够在Intel® Xeon CPU(第二代及更高版本)上释放相似度搜索的性能。

SVS 提供了一个功能全面且简单易用的 Python API,兼容大多数标准库。SVS 使用 C++ 编写,以便将其集成到性能关键型应用中。

性能

SVS 在标准基准测试中提供了最先进的性能和准确性,适用于百亿规模的相似性搜索[ABHT23]

例如,对于标准的百亿规模数据集Deep-1B,SVS 的不同配置比其他替代方案(以每秒查询次数,QPS 计量)提供了显著提高的性能,同时内存占用更小(水平轴)[^1]

SVS 主要针对大规模相似性搜索进行了优化,但在百万规模上仍提供最先进的性能。

通过使用英特尔(R) AVX-512 指令,在第四代(Sapphire Rapids)上可以获得最佳性能,同时第二代和第三代英特尔® 至强® 处理器(Cascade Lake 和 Ice Lake)也能获得出色的结果。

如果系统不支持英特尔(R) AVX-512 指令,性能将会降低。当加载 SVS Python 模块时,如果系统不支持英特尔(R) AVX-512 指令,将会出现警告信息。

关键特性

SVS 支持

  • 相似性函数:欧几里得距离、内积、余弦相似性。
  • 将向量值编码为:float32、float16、uint8、int8。
  • 向量压缩(包括局部自适应向量量化[ABHT23]
  • 针对英特尔® 至强® 处理器的优化
    • 第二代(Cascade Lake)
    • 第三代(Ice Lake)
    • 第四代(Sapphire Rapids)

查看路线图以获取即将推出的功能。

文档

SVS 文档包括入门教程、Python 和 C++ 的安装说明、逐步搜索示例、API 参考,以及一些指南和基准比较。

参考文献

在研究论文中使用 SVS 时应引用的参考文献

@article{aguerrebere2023similarity,
        title={Similarity search in the blink of an eye with compressed indices},
        volume = {16},
        number = {11},
        pages = {3433--3446},
        journal = {Proceedings of the VLDB Endowment},
        author={Cecilia Aguerrebere and Ishwar Bhati and Mark Hildebrand and Mariano Tepper and Ted Willke},
        year = {2023}
}

[ABHT23] Aguerrebere, C.; Bhati I.; Hildebrand M.; Tepper M.; Willke T.: 以压缩索引在眨眼间进行相似性搜索。在:VLDB 奖励会论文集,16,11,3433 - 3446。(2023)

法律

有关详细信息,请参阅LICENSE 文件

[^1]: 性能因使用、配置和其他因素而异。更多信息请访问www.Intel.com/PerformanceIndex。性能结果基于截至配置中显示的日期的测试,可能不反映所有公开可用的更新。没有任何产品或组件可以绝对安全。您的成本和结果可能有所不同。英特尔技术可能需要启用硬件、软件或服务激活。© 英特尔公司。英特尔、英特尔标志和其他英特尔标志是英特尔公司或其子公司的商标。其他名称和品牌可能是其他人的财产。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源代码发行版

此版本没有可用的源代码发行版文件。请参阅生成发行版存档的教程。

构建发行版

scalable_vs-0.0.5-0-cp312-cp312-manylinux_2_28_x86_64.whl (9.7 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.28+ x86-64

scalable_vs-0.0.5-0-cp311-cp311-manylinux_2_28_x86_64.whl (9.7 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.28+ x86-64

scalable_vs-0.0.5-0-cp310-cp310-manylinux_2_28_x86_64.whl (9.7 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.28+ x86-64

scalable_vs-0.0.5-0-cp39-cp39-manylinux_2_28_x86_64.whl (9.7 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.28+ x86-64

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面