在信息检索领域,随着数据量的爆炸式增长,如何高效存储和检索海量信息成为亟待解决的问题。传统的单向量嵌入方法虽然简单,但无法满足精准检索的需求。近年来,晚期交互模型如Wholembed v3的出现,通过生成多个向量来保留文档的细粒度信息,显著提升了检索的精度。然而,这种方法也带来了新的挑战:每个文档可能生成数百甚至数千个向量,导致存储成本大幅上升。面对这一问题,Mixedbread团队提出了非对称量化技术,通过将查询向量保持较高精度,而将文档向量量化为1比特符号,实现了近无损检索的同时,将每个文档的存储空间压缩了97%。非对称量化的核心思想是基于查询和文档向量在存储和计算中的不同特性。
文档向量需要长期存储,因此压缩它们可以显著降低存储成本、减少I/O操作、节省缓存空间,并缩短冷启动时间。而查询向量是短暂的,仅在查询时存在,因此保持较高精度可以确保检索质量。Mixedbread的实验表明,将文档向量量化为1比特符号,查询向量保持int8精度,可以将每个文档的存储空间从393 KiB降低到12.28 KiB,即32倍的压缩比,同时仅损失0.61 NDCG@10的检索质量。这种非对称量化的实现依赖于巧妙的计算技巧。在传统的int8 × int8点积计算中,现代ARM CPU通过NEON指令集提供了直接支持。而对于int8 × 二进制的计算,可以利用一个简单的数学恒等式:如果文档向量的每个维度存储为符号位,即b_i ∈ {-1, +1},那么点积q·b可以简化为2倍的正文档位选择的查询值之和减去查询总和。
这种计算方式避免了每个维度的乘法操作,显著提高了计算效率。在检索质量方面,Mixedbread团队对多种精度组合进行了评估。实验结果显示,int8查询与二进制文档的组合,平均NDCG@10为89.65,仅比全精度的90.26低0.61分,而文档向量的存储空间却减少了32倍。这种微小的性能损失部分得益于Wholembed v3在训练时考虑了量化的影响,使其对量化具有较强的鲁棒性。此外,int8 × int8的组合在检索质量上甚至略优于全精度,同时将文档存储空间减少了4倍,运行速度提高了3.2倍。非对称量化技术的应用不仅限于存储空间的压缩。
在大规模检索系统中,文档向量的存储、复制、缓存、淘汰和重新加载等操作都会产生巨大的成本。通过非对称量化,可以显著降低这些操作的开销,使得晚期交互检索在生产环境中更加实用。此外,这种技术还可以提高查询吞吐量,因为减少了数据移动的时间,使得系统能够花更多时间在实际的计算上。Mixedbread的研究表明,非对称量化是一种平衡检索质量和存储成本的有效方法。通过保持查询向量的精度,同时压缩文档向量,可以在保持高检索质量的同时,实现显著的存储空间和计算效率的提升。这种技术的应用不仅有助于降低大规模检索系统的运营成本,还能推动晚期交互模型在更广泛的场景中的应用。
随着信息检索技术的不断发展,非对称量化技术将为构建更高效、更精准的检索系统提供重要的参考和借鉴。 。