首页/AI/RAG 与向量库速查/Qdrant 量化配置

Qdrant 量化配置

Qdrant 支持标量量化(int8)、乘积量化(PQ)与二值量化:量化向量常驻内存作为粗筛,原始向量可留在磁盘用于精排,用较小内存支撑更大集合。

RAG 与向量库速查AI更新于 2026-10-13

Qdrant 量化配置是什么

Qdrant 提供标量量化(int8)、乘积量化(PQ)与二值量化三种向量压缩手段:量化后的向量体积更小,可以常驻内存做粗筛,原始向量则留在磁盘用于重排(rescoring),从而用较小的内存支撑更大的集合。代价是量化引入精度损失,并且会改变分数的分布尺度,因此相似度阈值、重排门限这类依赖具体分数的逻辑必须重新校准。它属于内存成本与召回率之间的显式取舍。

基本信息

支持类型标量量化(int8)、乘积量化(PQ)、二值量化
典型压缩比int8 约 1/4;二值量化约 1/32
放置策略量化向量常驻内存,原始向量可放磁盘
关键参数quantile 控制量化覆盖范围,always_ram 控制是否常驻
适用规模内存受限的大集合;小集合收益有限
上线要求用固定评测集对比量化前后的召回与延迟

典型使用场景

  • 内存吃紧:集合规模增长到单机内存放不下全量向量时启用
  • 成本优化:用少量召回损失换取内存占用大幅下降
  • 高维模型压缩:1024 维 embedding 用二值量化压到约三十二分之一
  • 磁盘模式配合重排:原始向量落盘,粗筛命中后再精排保精度
  • 灰度验证:先在一个集合上开启,评测通过再推全量

建集合时启用标量量化

建集合时启用标量量化
client.create_collection(
    collection_name="kb_big",
    vectors_config=models.VectorParams(size=1024, distance=models.Distance.COSINE,
                                       on_disk=True),   # 原始向量放磁盘
    quantization_config=models.ScalarQuantization(
        scalar=models.ScalarQuantizationConfig(type=models.ScalarType.INT8,
                                               quantile=0.99, always_ram=True)),
)   # 量化向量常驻内存,用于粗筛

量化方式对照

方式压缩比典型用法
标量量化 int8约 1/4通用首选,配合原始向量重排
乘积量化 PQ更小内存极紧时使用,需要调参
二值量化约 1/32高维模型加重排,召回损失必须先评测
量化加落盘最小用磁盘 IO 换内存,注意延迟变化
量化会改变分数分布:阈值、重排门限等依赖分数的逻辑需要重新校准,否则会出现「召回变差但代码没改」的困惑。
上线前对比同一评测集的 recall@k 与 P95 延迟:量化带来的内存收益是确定的,召回损失必须实测而不是猜。

易错点

  • 小集合就上量化:内存收益有限,反而无谓牺牲召回精度
  • 开启量化后不做效果对比:答案质量变化无法归因,出问题也找不到回滚依据
  • 沿用旧的相似度阈值:量化后的分数尺度不同,阈值把本该召回的结果挡在外面
  • 放置策略配置不当:量化向量与原始向量都常驻内存,内存占用反而比不量化更高

数据来源与参考

  • Qdrant 官方文档(Quantization / Binary Quantization)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌