Hybrid Retrieval Benchmark — msmarco
500 sampled queries, seed 42, warmup 10, concurrency 8. Dense: all-MiniLM-L6-v2.
Sparse: Qdrant/bm25. Colbert: answerai-colbert-small-v1. Cross-encoder: local fastembed
rerank (Xenova/ms-marco-MiniLM-L-6-v2). Dataset: jordane95/msmarco-passage-corpus-with-query,
100K passages, real associated search queries (no synthetic/LLM-generated queries).
recall@20 by quantization config × rescorer (hybrid prefetch, prefetch_limit=100)
| config | colbert | cross-encoder | rrf |
| no-quant (f32) | 96.8 | 97.4 | 95.2 |
| no-quant (f16) | 96.8 | 97.4 | 95.2 |
| no-quant (turbo4) | 96.6 | 97.4 | 95.4 |
| scalar int8 | 97.0 | 97.4 | 95.2 |
| product x16 | 96.6 | 97.6 | 95.6 |
| binary (f32) | 96.6 | 97.4 | 95.2 |
| binary (f16) | 96.8 | 97.4 | 95.2 |
| turbo4 tq1 | 96.4 | 97.2 | 95.4 |
recall / mrr / ndcg by rescorer
recall@20
mrr@20
ndcg@20
(opacity = metric; hue = rescorer)
throughput by rescorer
recall@20 vs prefetch_limit, by rescorer (hybrid, k=20)
colbert · recall@20
cross-encoder · recall@20
rrf · recall@20
throughput vs prefetch_limit, by rescorer (hybrid, k=20)
colbert · qps (log)
cross-encoder · qps (log)
rrf · qps (log)
colbert & cross-encoder, hybrid vs sparse-only prefetch (k=20, prefetch_limit=100)
recall@20
mrr@20
ndcg@20
(opacity = metric; hue = rescorer)
hybrid prefetch
colbertmrr 0.710ndcg 0.772
cross-encodermrr 0.717ndcg 0.779
sparse-only prefetch
colbertmrr 0.699ndcg 0.754
cross-encodermrr 0.701ndcg 0.757
recall@20 vs prefetch_limit, colbert & cross-encoder (sparse-only, k=20)
colbert · recall@20
cross-encoder · recall@20
throughput vs prefetch_limit, colbert & cross-encoder (sparse-only, k=20)
colbert · qps (log)
cross-encoder · qps (log)
mrr@20 by config, colbert rescorer (bold outline = turbo4 datatype)
hybridsparse-only
ndcg@20 by config, colbert rescorer (bold outline = turbo4 datatype)
hybridsparse-only
exact values, colbert rescorer, k=20 prefetch_limit=100
| config | hybrid mrr | hybrid ndcg | sparse-only mrr | sparse-only ndcg |
| no-quant (f32) | 0.7151 | 0.7763 | 0.7006 | 0.7558 |
| no-quant (f16) | 0.7148 | 0.7760 | 0.6995 | 0.7550 |
| no-quant (turbo4) | 0.7056 | 0.7688 | 0.6925 | 0.7491 |
| scalar int8 | 0.7097 | 0.7727 | 0.7069 | 0.7607 |
| product x16 | 0.6987 | 0.7630 | 0.7000 | 0.7549 |
| binary (f32) | 0.7150 | 0.7758 | 0.7003 | 0.7552 |
| binary (f16) | 0.7152 | 0.7763 | 0.6995 | 0.7551 |
| turbo4 tq1 | 0.7050 | 0.7679 | 0.6926 | 0.7492 |