FP32(基线)
fp32 把每个坐标按 32 位 IEEE-754 浮点存储——与输入向量布局一致。它是
VSAG 中唯一完全无损的选项,作为所有其他量化器对比的参考基线。
实现:
src/quantization/fp32_quantizer.cpp,参数文件fp32_quantizer_parameter.cpp。
何时使用
- 重排 / 精确存储。 当
use_reorder: true时,precise_quantization_type: "fp32"是默认的精确存储;图上游走使用便宜 的基础量化器,对 top-K 候选再用 fp32 精确重打分。 - 参考 / 基准真值。 用
base_quantization_type: "fp32"构建索引能拿 到该索引类型可达的最高召回,是其他量化器对比的标准基线 (docs/docs/en/src/resources/eval.md)。 - 小规模数据集,内存不是瓶颈时。
- BruteForce 原始向量取回。 仅当
base_quantization_type为fp32且度量允许时,SUPPORT_GET_RAW_VECTOR_BY_IDS才会被广播 (src/index/brute_force.cpp)。
内存代价
仅码本身的开销为每向量 4 × dim 字节。当 fp32 作为某个基础量化器之上的
精确存储时,每向量代价为 base 码 + 4 × dim。
参数
fp32 没有量化器专属的 JSON 参数。
{
"dtype": "float32",
"metric_type": "l2",
"dim": 128,
"index_param": {
"base_quantization_type": "fp32",
"max_degree": 32,
"ef_construction": 300
}
}
训练
不需要。fp32 不设置 NEED_TRAIN。
度量兼容性
l2、ip、cosine——全部支持,无特殊处理。