检索精度指的是系统返回的查询结果与用户预期结果的匹配程度。在向量数据库中,优化精度主要涉及向量量化、模型选择、索引参数调整等方面。
采用 float 量化,保留更多信息,提高向量检索精度。
量化方式 | 描述 | 场景 |
|---|---|---|
int8 | 将4字节的 float 压缩为单个字节,以获取内存和计算延迟的收益,会造成微小的损失精度,比如 cosine 距离会出现大于1的分值。 | 适用于hnsw、hnsw_hybrid、flat索引算法,距离方式为ip、consine。 |
float | 全精度,未做压缩量化。 | 适用于hnsw、hnsw_hybrid、flat、diskann索引算法,距离方式为ip、l2、consine。 |
fix16 | 将4字节的 float 压缩为两个字节,以获取内存和计算延迟的收益,会造成微小的损失精度。通过损失一定的检索精度,提升检索性能,节约资源成本。 | 适用于hnsw、hnsw_hybrid、flat索引算法,距离方式为ip、l2、consine。 |
pq | 将高维向量转换为低维码本向量,以减少内存占用并提高搜索效率。 | 适用于diskann、ivf索引算法,距离方式为ip、l2、consine。 |
选择向量维度更大的模型,增加表示能力,提高检索匹配效果。
调整索引参数,适当调大索引构建参数,以提高检索精度。
数据量较小时(≤50W 条),建议使用暴力索引(Brute Force),确保最高精度。
根据业务场景选择最佳 embedding 模型与向量化方法,以获得最佳检索效果。
采用 dense + sparse 结合,提升查询结果的相关性和覆盖度。