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.
| pipeline | what it is | recall@10 | true top-10 in candidates | bytes/vector searched | bytes/vector stored | vs float32 | in Postgres |
|---|---|---|---|---|---|---|---|
tq-prod-9 | TurboQuant 9-bit (prod) | 0.983 | 117 | 117 | 3.4x | pg_turbovec | |
tq-prod-5 | TurboQuant 5-bit (prod) | 0.806 | 67 | 67 | 6.0x | pg_turbovec | |
tq-prod-4 | TurboQuant 4-bit (prod) | 0.667 | 55 | 55 | 7.3x | pg_turbovec | |
tq-prod-3 | TurboQuant 3-bit (prod) | 0.478 | 42 | 42 | 9.5x | pg_turbovec | |
tq-mse-8 | TurboQuant 8-bit (mse) | 0.989 | 104 | 104 | 3.8x | pg_turbovec | |
tq-mse-5 | TurboQuant 5-bit (mse) | 0.925 | 67 | 67 | 6.0x | pg_turbovec | |
tq-mse-4 | TurboQuant 4-bit (mse) | 0.867 | 54 | 54 | 7.4x | pg_turbovec | |
tq-mse-3 | TurboQuant 3-bit (mse) | 0.753 | 42 | 42 | 9.5x | pg_turbovec | |
tq-mse-2 | TurboQuant 2-bit (mse) | 0.559 | 29 | 29 | 13.8x | pg_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