VectorChord:高效向量搜索的 PostgreSQL 扩展

VectorChord:高效向量搜索的 PostgreSQL 扩展

VectorChord Scalable, fast, and disk-friendly vector search in Postgres, the successor of pgvecto.rs. VectorChord 项目地址: https://gitcode.com/gh_mirrors/ve/VectorChord

项目介绍

VectorChord 是一个为 PostgreSQL 设计的向量相似度搜索扩展,具有高可扩展性、高性能和磁盘效率。该项目允许用户在 AWS i4i.xlarge 实例上轻松托管超过250GB的768维向量(100百万个),每月仅需250美元。VectorChord 通过优化的数据结构和算法,在保证搜索质量的同时,显著降低了基础设施成本。

项目技术分析

VectorChord 采用了多种先进技术来提升向量搜索的性能和效率:

  • RaBitQ 压缩:利用 RaBitQ[^3] 压缩算法,VectorChord 能够在保持搜索质量的同时,高效存储向量。
  • IVF 索引:VectorChord 使用 IVF(Inverted File)索引,该索引将向量分为多个列表,搜索时仅查询与查询向量最近的列表,从而加速搜索过程。
  • 长向量支持:VectorChord 能够存储和搜索高达60,000维的向量,满足高维模型的需求。

[^3]: Gao, Jianyang, and Cheng Long. "RaBitQ: Quantizing High-Dimensional Vectors with a Theoretical Error Bound for Approximate Nearest Neighbor Search." Proceedings of the ACM on Management of Data 2.3 (2024): 1-27.

项目及技术应用场景

VectorChord 适用于需要高效向量搜索的场景,如:

  • 文本搜索:在处理大规模文本数据时,VectorChord 可以快速检索相似的文本向量。
  • 推荐系统:通过向量搜索,推荐系统能够找到与用户兴趣最匹配的项。
  • 图像识别:在大规模图像数据集中,VectorChord 可以用于快速查找相似的图像特征向量。

项目特点

VectorChord 在以下方面具有显著特点:

  • 性能提升:与 pgvector 相比,VectorChord 提供了高达5倍的查询速度和16倍更高的插入吞吐量。
  • 成本效益:在相同的成本下,VectorChord 可以存储比 Pinecone 多6倍的向量,比 pgvector/pgvecto.rs 多26倍。
  • 无缝集成:完全兼容 pgvector 数据类型和语法,无需手动参数调整即可提升性能。
  • 快速索引构建:利用外部 IVF 索引构建,结合 RaBitQ 压缩,VectorChord 能够实现快速的索引构建。

下面是关于 VectorChord 的详细探讨:

性能对比

根据 MyScale Benchmark^1 的测试结果,VectorChord 在768维向量上的查询速度和索引构建时间均优于 pgvector 的 HNSW 实现。

存储和索引

VectorChord 使用与 pgvector 类似的数据类型,使得迁移过程更加便捷。用户可以轻松创建带有向量列的表,并插入数据:

CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
INSERT INTO items (embedding) SELECT ARRAY[random(), random(), random()]::real[] FROM generate_series(1, 1000);

创建索引时,用户可以根据需要选择不同的距离度量方法和索引参数:

CREATE INDEX ON items USING vchordrq (embedding vector_l2_ops) WITH (options = $$
residual_quantization = true
[build.internal]
lists = [1000]
spherical_centroids = false
$$);

使用场景

VectorChord 的设计使其适用于多种场景,包括但不限于:

  • 大规模向量数据库:在大规模向量数据集中快速搜索相似向量。
  • 云服务:利用云服务的高性能计算资源,实现快速的向量搜索。
  • 机器学习模型:在机器学习模型训练和推理过程中,快速检索相关向量。

结论

VectorChord 是一个功能强大、性能卓越的 PostgreSQL 扩展,适用于各种需要向量搜索的应用场景。其高效的索引构建和查询性能,以及对长向量的支持,使其成为处理大规模高维数据的理想选择。对于追求性能和成本效益的用户来说,VectorChord 是一个值得尝试的开源项目。

VectorChord Scalable, fast, and disk-friendly vector search in Postgres, the successor of pgvecto.rs. VectorChord 项目地址: https://gitcode.com/gh_mirrors/ve/VectorChord

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时闯虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值