当知识库规模达到百万甚至数亿级文档时,向量索引的存储和查询效率成为关键瓶颈。向量量化是一类用较低比特表示近似向量的方法,大幅压缩内存占用并加速相似度计算。PQ(Product Quantization)是其中最著名的方法之一,被Faiss等库广泛实现。PQ的思想是将高维向量划分为多个子向量,然后分别对每个子空间进行K-Means聚类,用簇中心索引代表原向量该部分的取值。比如将128维拆成8个16维子向量,各自训练256个质心,那么每个子向量就可以用一个256大小的代码本索引(8位)来表示。整条向量就由8个字节拼成(共表示128维的近似值),相比原始128×4字节(float32)压缩了约97%。两个向量的距离可通过预先计算好的查表快速得出近似值,无需逐维计算。实验证明,使用PQ能在基本不损失召回率的前提下,将向量存储压缩几十倍,并使搜索速度提高数倍。特别是结合分段式倒排(IVF)进一步减少比较次数,实现对非量化索引上百倍的加速。
另一项优化是高效的近似算法