Module quantizer

Source
Expand description

Distance acceleration through vector quantization.

The Quantizer trait abstracts over different strategies for accelerating distance computations in high-dimensional spaces. The HNSW graph stores both full-precision vectors (for exact operations like trajectories and signatures) and compact codes (for fast approximate distance during graph construction/search).

§Two-Phase Distance Computation

  1. Candidate selection: Use fast approximate distance on compact codes
  2. Final ranking: Use exact distance on full vectors

This mirrors production systems like Qdrant (Scalar Quantization), Faiss (Product Quantization), and Weaviate (Binary Quantization).

§Available Strategies

StrategyCode size (D=768)SpeedupRecall impact
NoQuantizer0 bytesNone
Scalar (SQ8)768 bytes~4×< 1%
Product (PQ96)96 bytes~8×1-3%
Binary (BQ)96 bytes~32×5-10%

§Example

use cvx_core::traits::quantizer::{Quantizer, NoQuantizer, L2Fn};

// No acceleration (default, exact distances)
let q = NoQuantizer::new(L2Fn);
let code = q.encode(&[1.0, 2.0, 3.0]);

Structs§

L2Fn
Simple L2 distance function for use with quantizers.
NoQuantizer
Identity quantizer — no acceleration, exact distances only.
ScalarQuantizer
Scalar Quantization: compress each float32 dimension to uint8.

Traits§

Quantizer
Acceleration strategy for distance computations.