timescale/pgvectorscale
Postgres extension for vector search (DiskANN), complements pgvector for performance and scale. Postgres OSS licensed.
解决的问题
pgvectorscale 是一个 PostgreSQL 扩展,旨在提高向量嵌入搜索的性能和存储效率。它通过为大规模 AI 应用提供更高的查询吞吐量、更低的延迟和更具成本效益的存储,来补充 pgvector。
工作原理
它为 PostgreSQL 引入了三项主要的技术创新:
- StreamingDiskANN Index:一种受 DiskANN 算法启发的全新索引类型,可实现高效的近似最近邻 (ANN) 搜索。
- Statistical Binary Quantization (SBQ):由 Timescale 开发的一种压缩方法,与标准二值量化相比,减少了向量数据的存储占用。
- 基于标签的过滤搜索:基于 Filtered DiskANN 研究的实现,允许用户将向量相似性搜索与元数据标签过滤(使用
smallint[]数组)相结合,从而获得高性能、精确的结果。
该扩展使用 PGRX 框架通过 Rust 编写,为基于 C 的 pgvector 提供了一个现代化的替代方案。
适用对象
- 应用开发人员:需要在 PostgreSQL 数据库中实现高性能向量搜索的人员。
- 数据库管理员 (DBA):希望优化现有 PostgreSQL 环境中向量工作负载成本和性能的人员。
- 贡献者:有兴趣使用 Rust 为 PostgreSQL 的向量支持做出贡献的开发人员。
亮点
- 高性能:基准测试显示,在大型数据集上,与 Pinecone 的存储优化索引相比,p95 延迟降低了高达 28 倍,查询吞吐量提高了 16 倍。
- 成本效益:在 AWS EC2 上自托管时,可降低高达 75% 的成本。
- 灵活的过滤:支持高性能的基于标签的过滤以及任意 SQL
WHERE子句的后过滤。 - 调优能力:提供构建时参数(例如
num_neighbors、storage_layout)和查询时参数(例如query_rescore),以平衡准确性和速度。
相关
- 项目
- 项目
- 项目
- 项目
- 项目