shrinkvec report

glove-100. GloVe word vectors, 1.18M words (ann-benchmarks). PDDL (GloVe).

vectors 100,000dimensions 100metric cosinequeries 1,000k 10seed 42
Recommendation for recall@10 ≥ 0.95

tq-mse-8 keeps recall@10 at 0.989 with 104 bytes per vector to search (3.8x smaller than float32). In Postgres: pg_turbovec.

Codec lab: what the codes can do

Every option scans all codes exactly, so recall reflects the compression itself, not an index. Ground truth is exact search in float64. Hollow markers rerank the best candidates with a more precise codec.

Recall@10 against bytes per vector for every compression option0.40.50.60.70.80.91.050100bytes per vector to search (log scale)recall@10target 0.95TurboQuant 8-bit (mse) recall@10 0.989 104 B/vector (3.8x)TurboQuant 9-bit (prod) recall@10 0.983 117 B/vector (3.4x)TurboQuant 5-bit (mse) recall@10 0.925 67 B/vector (6.0x)TurboQuant 4-bit (mse) recall@10 0.867 54 B/vector (7.4x)TurboQuant 5-bit (prod) recall@10 0.806 67 B/vector (6.0x)TurboQuant 3-bit (mse) recall@10 0.753 42 B/vector (9.5x)TurboQuant 4-bit (prod) recall@10 0.667 55 B/vector (7.3x)TurboQuant 2-bit (mse) recall@10 0.559 29 B/vector (13.8x)TurboQuant 3-bit (prod) recall@10 0.478 42 B/vector (9.5x)tq-mse-8tq-prod-9tq-mse-5tq-mse-4tq-prod-5tq-mse-3tq-prod-4tq-mse-2tq-prod-3TurboQuant+ rerankbest per size
pipelinewhat it isrecall@10true top-10 in candidatesbytes/vector searchedbytes/vector storedvs float32in Postgres
tq-prod-9TurboQuant 9-bit (prod)0.9831171173.4xpg_turbovec
tq-prod-5TurboQuant 5-bit (prod)0.80667676.0xpg_turbovec
tq-prod-4TurboQuant 4-bit (prod)0.66755557.3xpg_turbovec
tq-prod-3TurboQuant 3-bit (prod)0.47842429.5xpg_turbovec
tq-mse-8TurboQuant 8-bit (mse)0.9891041043.8xpg_turbovec
tq-mse-5TurboQuant 5-bit (mse)0.92567676.0xpg_turbovec
tq-mse-4TurboQuant 4-bit (mse)0.86754547.4xpg_turbovec
tq-mse-3TurboQuant 3-bit (mse)0.75342429.5xpg_turbovec
tq-mse-2TurboQuant 2-bit (mse)0.559292913.8xpg_turbovec

Reproduce

pip install 'shrinkvec[pg,datasets]'
shrinkvec lab --dataset glove-100 -n 100000 --pipelines tq-prod-9,tq-prod-5,tq-prod-4,tq-prod-3,tq-mse-8,tq-mse-5,tq-mse-4,tq-mse-3,tq-mse-2 --out docs/results/glove-100k-turboquant-bits