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

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

2026-01-30 05:25:26作者:尤辰城Agatha

项目介绍

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 是一个值得尝试的开源项目。

登录后查看全文
热门项目推荐
相关项目推荐