内容提要
VectorChord是PostgreSQL的新向量搜索扩展,采用IVF和RaBitQ量化,大幅降低成本与内存。仅需1美元即可存储40万向量,1亿向量月成本约250美元,远低于Pinecone等竞品。相比HNSW,它索引构建快16倍,插入快14倍,支持单机扩展至10亿向量,在保持高召回率时仍具高查询性能。
延伸解读
成本优势的量化对比
文章通过具体数据展示了VectorChord在成本上的显著优势:存储1亿个768维向量,每月成本约250美元,而Pinecone为1600美元,Qdrant为4374美元,pgvector/pgvecto.rs则高达6580美元。这意味着VectorChord的成本仅为Pinecone的约六分之一,为pgvector的约二十六分之一。这种成本差异主要源于其磁盘友好的索引设计,使得在相同预算下能存储更多向量。
IVF与RaBitQ的技术权衡
VectorChord采用IVF与RaBitQ量化结合,将32位向量压缩为1位,大幅减少距离计算量。虽然原始IVF通常需要扫描1%-5%的数据,但RaBitQ的快速扫描优化使计算速度提升百倍以上。同时,通过自适应重排序阶段保留全精度计算,确保高召回率。文章强调RaBitQ提供严格的理论误差界限,但实际应用中仍需关注压缩带来的精度损失,尤其在极端场景下。
索引构建与扩展性的实际考量
在AWS i4i.large实例上,VectorChord构建GIST 1M索引耗时186秒,比pgvector快16倍,插入速度快14倍。其支持外部KMeans聚类,允许在更强机器上构建索引后导入较小机器,从而在单机上支持数十亿向量。但文章也指出,扩展性依赖于磁盘容量,增加磁盘可成比例提升容量,但实际部署时需权衡存储成本与查询性能。
Q&A
VectorChord是什么?它如何实现低成本存储?
VectorChord是一个PostgreSQL的向量搜索扩展,通过采用IVF(倒排文件索引)和RaBitQ量化技术,将32位向量压缩为紧凑的位表示,大幅降低存储和计算成本,从而能以1美元存储40万个向量。
VectorChord相比Pinecone、pgvector等竞品在成本上有何优势?
VectorChord存储1亿个向量的月成本约为250美元,而Pinecone(存储优化实例)为1600美元,Qdrant为4374美元,pgvector/pgvecto.rs为6580美元。相比Pinecone,相同成本可存储6倍向量;相比pgvector/pgvecto.rs,相同成本可存储26倍向量。
VectorChord采用什么索引和量化技术?为什么比HNSW更快?
VectorChord采用IVF(倒排文件索引)和RaBitQ量化。RaBitQ将32位向量压缩为1位,大幅减少距离计算量,通过快速扫描优化实现比传统距离计算快100倍以上的速度。同时,通过自适应重排序保证召回率,因此IVF在速度上优于HNSW。
VectorChord的索引构建和插入速度如何?
在GIST 1M数据集上,VectorChord构建索引耗时186秒,比pgvector快16倍;插入时间比pgvector快14倍。
VectorChord能否在单台机器上支持大规模向量?
可以。由于磁盘友好的索引设计,增加磁盘容量可成比例提升向量容量,单机可支持10亿甚至更多向量。例如,在AWS i4i.xlarge实例(4 vCPU, 32GB内存, 937GB SSD)上,VectorChord成功存储了1亿个768维向量,并实现了QPS 16.2(top 10, recall 0.95)的查询性能。
VectorChord在保持高召回率时的查询性能如何?
在LAION 5M数据集上,VectorChord在召回率提高时仍能保持高QPS,优于其他平台。在LAION 100M数据集上,单线程查询top 10的QPS为16.2,top 100为4.3,召回率均大于0.95。多线程测试显示QPS可随线程数线性提升。