RDS PostgreSQL 在 pgvector 上实现 RaBitQ 量化,新增 IVF-RaBitQ 与 HNSW-RaBitQ 两类索引
在 RDS PostgreSQL 中实现 RaBitQ 量化
概述
在 pgvector 已支持的索引类型上拓展框架结构以接入量化方式,并实现 RaBitQ:IVF-RaBitQ 以 KMeans 聚类中心为 RaBitQ 质心、聚类内向量经随机旋转后做 1bit 量化写入索引,查询时把查询向量做 SQ4 量化,用位运算+POPCOUNT 算估计距离初筛,再按理论误差界挑选候选用原始向量算精确距离重排序;HNSW-RaBitQ 的图的构建仍基于原始向量,上层用估计距离快速定位,Level 0 只对估计距离接近的候选算精确距离。用户用 CREATE INDEX ... USING ivfflat/hnsw (embedding rabitq_vector_cosine_ops) 语法即可开启,与社区版语法兼容。压测环境为 RDS PostgreSQL 17(20260330 小版本)、pgvector 0.8.0.2、pg.x2.12xlarge.2c、ann-benchmark:dbpedia-openai-1M 上索引空间由 IVF-FLAT 7820MB、HNSW 7918MB 降至 IVF-RaBitQ 248MB、HNSW-RaBitQ 510MB,创建时间 95.32s→78.72s、281.42s→251.97s;1024 维 100M 业务数据集上索引空间 16GB 对 HNSW 689GB、创建 4h23min17s 对 4d1h13min47s、写入 6.41ms 对 469.41ms、top100 查询 359.19ms 对 1789.22ms。文中同时说明其优势在大规模内存受限场景,小结果集 top10 延迟(342.08ms 对 27.65ms)不如 HNSW。