Where does the accuracy actually go?
Quantization compresses the space between vectors, so documents with genuinely different similarities start to tie. For the clear winners, the passages obviously close to the query, the ordering survives even harsh compression. For the marginal candidates ranked 50–200, ties break randomly. Naively returning quantized scores as final rankings surfaces that tail noise; using them only to build a candidate set hides it.
Why does rescoring fix it?
Rescoring works because the candidate set only needs to contain the right documents, not order them. If the true top-10 reliably lands somewhere in the quantized top-100, exact rescoring of 100 vectors (trivial compute) reconstructs the true order. You keep quantized speed on the expensive full-corpus scan and pay full precision only on a shortlist.
Whole corpus
quantized scan, fast
Candidate top-100
right docs present, order noisy
Rescore at full precision
True top-10
How far can you push it?
You can push surprisingly far: binary quantization stores one bit per dimension (a 32× reduction over float32), and Hamming distance over binary codes is fast enough to scan huge candidate sets, with rescoring cleaning up the ranking. TopK's production kernel makes the point concrete: hand-optimized ARM NEON code sustains nearly 350 GB/s of Hamming-distance throughput (measured July 2025, ~15× the scalar baseline on a single thread), which is what makes brute-force scanning of binary candidates viable at billion scale.
When should you be careful?
Measure recall on your data before trusting any compression level: out-of-distribution embeddings and very anisotropic spaces quantize worse than benchmark datasets suggest, and the fix (a larger candidate set) costs some of the speed back. The knob is candidate-set size; tune it against a fixed recall target, not by feel.