Static Pruning Across Sparse Retrieval Regimes: What Transfers, What Breaks, and What Still Helps
Organizations: Amazon Web Services Shanghai, China
Abstract
Static pruning is widely used to accelerate sparse neural retrieval, yet existing studies each validate their conclusions within a single custom pipeline, leaving it unclear which findings transfer to modern engines with different index organizations and dynamic pruning mechanisms. We present the first cross-engine pruning portability study, evaluating static pruning strategies across three engines - a controlled C++ pipeline (exhaustive inverted index), BMP (block-max pruning), and SEISMIC (clustered inverted indexes) - on two benchmarks (MS MARCO, Natural Questions) with two encoders spanning opposite query-density regimes (SPLADE: 44 avg. query terms; V3-GTE: 7 avg. query terms), totaling 1,140 experimental configurations, with an additional deep-judgment validation on TREC DL 2019/2020. We find that index-side pruning (document and posting-list) is portable: it consistently reduces latency (1.2-6.6) and index size (18-82%) across all engines because sparse retrieval is memory-bound - a conclusion we support with cache-miss, TLB, and IPC profiling. In contrast, query pruning is already internalized by modern engines: it yields 4-11 speedup on the exhaustive pipeline but is subsumed by BMP's and SEISMIC's query_cut. Static pruning complements dynamic pruning: on BMP, combining document and query reduction yields 2.5 speedup with NDCG@10 within 0.003 of the exact baseline. Finally, NDCG@10 saturates while Recall@10 is still in the 85-95% range across all three engines, providing a portable stopping criterion: practitioners can push pruning to this knee without visible ranking degradation. Together, these findings answer what transfers (index-side pruning), what breaks (query pruning), and what still helps (static atop dynamic pruning).
Figures & tables
| Configuration | Query nnz | Doc nnz | Docs | NDCG@10 | DL’19/20 |
|---|---|---|---|---|---|
| MS MARCO + SPLADE | 43.95 | 119.96 | 8.8M | 0.449 | 0.726 |
| MS MARCO + V3-GTE | 6.89 | 180.41 | 8.8M | 0.428 | 0.720 |
| NQ + SPLADE | 46.97 | 147.52 | 2.7M | 0.539 | — |
| NQ + V3-GTE | 7.20 | 185.00 | 2.7M | 0.582 | — |
| Dataset+Enc. | Pruning | Lat. (ms) | Spd. | Idx (GB) | R@10 | NDCG | MRR |
|---|---|---|---|---|---|---|---|
| MS+SPL | Baseline | 70.1 | 1.0 | 8.15 | 1.000 | 0.449 | 0.383 |
| Q AM 0.50 | 11.5 | 6.1 | 8.15 | 0.964 | 0.448 | 0.383 | |
| Doc AM 0.50 | 11.7 | 6.0 | 1.53 | 0.928 | 0.443 | 0.379 | |
| Doc MR 0.30 | 18.1 | 3.9 | 2.16 | 0.974 | 0.447 | 0.381 | |
| Post MR 0.30 | 15.6 | 4.5 | 2.00 | 0.979 | 0.447 | 0.382 | |
| MS+GTE | Baseline | 29.5 | 1.0 | 12.23 | 1.000 | 0.428 | 0.362 |
| Speedup | Recall@10 | NDCG@10 | MRR@10 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Config | Pruning | C++ | C++ † | BMP | SEIS. | C++ | C++ † | BMP | SEIS. | C++ | C++ † | BMP | SEIS. | C++ | C++ † | BMP | SEIS. |
| MS+SPL | Doc AM 0.90 | 1.49 | 1.48 | 1.43 | 1.18 | 1.000 | .946 | .948 | .868 | .000 | .003 | .003 | .005 | .000 | .003 | .002 | .005 |
| Post MR 0.10 | 1.56 | 1.54 | 1.47 | 1.17 | 1.000 | .947 | .948 | .871 | .000 | .002 | .001 | .004 | .000 | .002 | .002 | .004 | |
| Query MR 0.10 | 1.68 | 1.65 | 1.91 ∗ | 1.17 | 1.000 | .945 | .935 | .924 | .000 | .000 | .000 | +.001 | .000 | .001 | .000 | .000 | |
| MS+GTE | Doc AM 0.90 | 1.78 | 1.61 | 1.23 | 1.42 | 1.000 | .969 | .969 | .937 | .000 | .001 | .001 | .002 | .000 | .000 | .001 | .001 |
| Post MR 0.10 | 1.86 | 1.68 | 1.27 | 1.58 | 1.000 | .970 | .969 | .939 | .000 | .002 | .002 | .002 | .000 | .001 | .002 | .002 | |
| Index | Query | Lat. ( s) | Spd. | R@10 | NDCG | MRR | Idx |
|---|---|---|---|---|---|---|---|
| Full | Full | 8,915 | 1.00 | 1.000 | 0.449 | 0.382 | 15.7 |
| Full | Q MR 0.10 | 4,680 | 1.91 | 0.935 | 0.449 | 0.382 | 15.7 |
| Pruned | Full | 6,235 | 1.43 | 0.948 | 0.446 | 0.380 | 10.1 |
| Pruned | Q MR 0.10 | 3,537 | 2.52 | 0.917 | 0.446 | 0.379 | 10.1 |
| Index | Query | Lat. ( s) | Spd. | R@10 | NDCG | MRR | Idx |
|---|---|---|---|---|---|---|---|
| Full | Full | 185 | 1.00 | 0.977 | 0.443 | 0.379 | 8.1 |
| Full | Q MR 0.10 | 161 | 1.15 | 0.924 | 0.444 | 0.379 | 8.1 |
| Pruned | Full | 158 | 1.17 | 0.868 | 0.438 | 0.374 | 6.0 |
| Pruned | Q MR 0.10 | 133 | 1.39 | 0.856 | 0.440 | 0.376 | 6.0 |
| Engine | Config | IPC | Cache% | dTLB% | CacheMiss/Q |
|---|---|---|---|---|---|
| C++ | scatter-add | 1.58 | 30.0 | 97.0 | 740,000 |
| C++ | window-switch | 2.50 | 2.7 | 2.6 | 67,000 |
| BMP | =1.0 | 3.37 | 1.3 | 28.4 | 114,000 |
| BMP | =0.5 | 3.37 | 1.8 | 25.0 | 89,000 |
| SEISMIC | qc=20 | 3.01 | 10.9 | 40.9 | 12,500 |
| SEISMIC | qc=5 | 3.29 | 7.7 | 37.7 | 6,500 |
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
| Config | Pruning | Idx (GB) | Lat ( s) | R@10 | NDCG | MRR | Spdup |
| MS+SPL | None | 15.7 | 8,915 | 1.000 | 0.449 | 0.382 | 1.00 |
| AM 0.50 | 4.3 | 2,869 | 0.685 | 0.398 | 0.335 | 3.11 | |
| AM 0.70 | 6.4 | 4,166 | 0.832 | 0.431 | 0.366 | 2.14 | |
| AM 0.90 | 10.1 | 6,235 | 0.948 | 0.446 | 0.380 | 1.43 | |
| AM 0.95 | 11.7 | 7,111 | 0.972 | 0.448 | 0.381 | 1.25 | |
| MR 0.10 | 10.4 | 6,281 | 0.951 | 0.446 | 0.380 | 1.42 |
| Config | Pruning | Idx (GB) | Lat ( s) | R@10 | NDCG | MRR |
|---|---|---|---|---|---|---|
| MS+SPL | None | 8.1 | 186 | 0.977 | 0.443 | 0.379 |
| AM 0.70 | 4.3 | 140 | 0.769 | 0.424 | 0.361 | |
| AM 0.90 | 6.0 | 158 | 0.868 | 0.438 | 0.374 | |
| AM 0.95 | 6.7 | 167 | 0.889 | 0.441 | 0.378 | |
| NQ+SPL | None | 7.0 | 234 | 0.937 | 0.533 | 0.485 |
| AM 0.70 | 4.5 | 167 | 0.727 | 0.505 | 0.460 |
| SPLADE | V3-GTE | ||||||
|---|---|---|---|---|---|---|---|
| Config | C++ | BMP | SEIS. | C++ | BMP | SEIS. | |
| Baseline | .726 | .726 | .721 | .720 | .718 | .721 | |
| Doc AM 0.90 | .717 | .719 | .707 | .721 | .721 | .718 | |
| Post MR 0.10 | .720 | .723 | .716 | .720 | .719 | .721 | |
| Doc AM 0.50 | .680 | .691 | .675 | .688 | .685 | .676 | |
| Query prune | .728 | .728 | .722 | .723 | .620 | .720 | |
Learned Sparse Retrieval
Learned sparse retrieval trains models to expand queries and documents into weighted, indexable terms for efficient semantic search.
See all 18 papers