Web Scale on a Budget: Tail-Aware Retrieval Evaluation
Organizations: Tel Aviv University
Abstract
A common practice in instance retrieval is to grow the gallery size to improve a benchmark's discrimination capability. One prominent example is ILIAS, which adds up to 100 million distractor images. The prevailing assumption is that faithful evaluation demands web scale, and that indexing all 100M images through the backbone is the unavoidable price of a comparable number. That price is steep: hundreds of GPU-hours and ~200 GB of descriptors per model, paid again for every method or ablation. We show the web-scale indexing price is largely avoidable: evaluation itself obeys a scaling law. The number of distractors that outrank a positive is Binomial in the gallery size. We define the per-query retrieval hardness, a gallery-scale agnostic quantity that yields a retrieval metric at any scale, and demonstrate it can be derived from a small random sample. The underlying sampled-rank machinery is long established in recommender-system and biometric evaluation, but to our knowledge has never been adapted to visual retrieval. We make the law per-query and estimable, and validate it at true 100M scale on ILIAS and INSTRE, and on the full 759k-distractor Google Landmarks v2 pool. Concretely, within a 5% sample (a flat 20x less indexing), every backbone's tail-aware (EVT) estimate has converged onto the large-scale mAP, to within ~0.01 (mean absolute error 0.005), across five backbones, three benchmarks, and two distractor pools (mAP@1000 at 100M on ILIAS/INSTRE; the official mAP@100 at the full 759k pool on GLDv2); the recommender-systems count baseline over-predicts everywhere (+0.037 to +0.068). This is an order of magnitude better than naively reporting the metric on the same subset (+0.08 to +0.13). We release code and the per-query hardness to facilitate faster, cheaper, and greener retrieval evaluation.
Figures & tables
| estimate from a ( M) sample | |||||
| backbone | true mAP@100M | official 5M | naive 5M | count | EVT (ours) |
| (hard-mined) | (random) | ||||
| DINOv3-L | 0.266 | 0.311 | 0.374 | 0.317 | 0.260 |
| PE-core-L | 0.223 | 0.271 | 0.355 | 0.287 | 0.225 |
| SigLIP2-L | 0.213 | 0.253 | 0.341 | 0.280 | 0.221 |
| SigLIP-L | 0.200 | 0.242 | 0.324 | 0.268 | 0.208 |
Appendix figures & tables15 assets
Supplementary material from the paper’s appendix.
Appendix
| backbone | fit | med | med | endpt | |
|---|---|---|---|---|---|
| fail | (cap) | endpt | |||
| DINOv2-L | 0.0% | 10% | -0.14 | 0.77 | 22% |
| SigLIP-L | 0.0% | 29% | -0.06 | 0.86 | 22% |
| SigLIP2-L | 0.0% | 30% | -0.06 | 0.89 | 20% |
| PE-core-L | 0.0% | 21% | -0.09 | 0.84 | 25% |
| DINOv3-L | 0.0% | 14% | -0.11 | 0.75 | 31% |
| estimator | mAP@100 MAE |
|---|---|
| raw / evaluate-at- | 0.038 |
| count (K-R) | 0.038 |
| log-linear | 0.111 |
| log-quadratic | 0.095 |
| power-law | 0.117 |
| log-uniform fit | 0.075 |
| backbone | true@100M | EVT-at- | count-at- |
|---|---|---|---|
| PE-core-L | 0.613 | 0.607 ( ) | 0.621 ( ) |
| DINOv3-L | 0.547 | 0.540 ( ) | 0.555 ( ) |
| SigLIP-L | 0.532 | 0.528 ( ) | 0.541 ( ) |
| SigLIP2-L | 0.460 | 0.454 ( ) | 0.469 ( ) |
| DINOv2-L | 0.355 | 0.352 ( ) | 0.363 ( ) |
| mean err | — |
| dataset | pool | metric @full pool | EVT err |
|---|---|---|---|
| ILIAS | YFCC-100M | 0.266 | 0.005 |
| INSTRE | YFCC-100M | 0.547 | |
| GLDv2 | index-759k |
| backbone | true mAP@100M | count ( ) | EVT ( ) |
|---|---|---|---|
| DINOv2-L | 0.154 [0.141,0.167] | 0.191 [0.177,0.205] | 0.153 [0.140,0.166] |
| SigLIP-L | 0.200 [0.185,0.214] | 0.268 [0.252,0.285] | 0.208 [0.193,0.222] |
| SigLIP2-L | 0.213 [0.199,0.228] | 0.280 [0.263,0.297] | 0.221 [0.207,0.236] |
| PE-core-L | 0.223 [0.209,0.238] | 0.287 [0.271,0.304] | 0.225 [0.211,0.240] |
| DINOv3-L | 0.266 [0.250,0.283] | 0.317 [0.300,0.335] | 0.260 [0.244,0.277] |
| backbone | true mAP@100M | query-only 95% | full 95% (q+samp+fit) | |
|---|---|---|---|---|
| DINOv3-L | 0.266 | [0.240, 0.273] | [0.243, 0.277] | 0.002 |
| DINOv2-L | 0.154 | [0.140, 0.166] | [0.139, 0.167] | 0.003 |
| SigLIP-L | 0.200 | [0.193, 0.221] | [0.192, 0.223] | 0.003 |
| SigLIP2-L | 0.213 | [0.207, 0.238] | [0.203, 0.236] | 0.004 |
| PE-core-L | 0.223 | [0.209, 0.238] | [0.209, 0.240] | 0.003 |
| backbone | eval-at-5M | EVT-at-5M | true@100M |
|---|---|---|---|
| DINOv2-L | 0.230 ( ) | 0.153 ( ) | 0.154 |
| SigLIP-L | 0.324 ( ) | 0.208 ( ) | 0.200 |
| SigLIP2-L | 0.341 ( ) | 0.221 ( ) | 0.213 |
| PE-core-L | 0.355 ( ) | 0.225 ( ) | 0.223 |
| DINOv3-L | 0.374 ( ) | 0.260 ( ) | 0.266 |
| mean err | — |
| backbone | true | mean pred | MAE | std | worst | cover |
|---|---|---|---|---|---|---|
| mAP@100M | (5%) | err | err | |||
| DINOv2-L | 0.154 | 0.153 | 0.002 | 0.002 | 0.007 | 20/20 |
| SigLIP-L | 0.200 | 0.208 | 0.008 | 0.003 | 0.013 | 20/20 |
| SigLIP2-L | 0.213 | 0.221 | 0.008 | 0.003 | 0.012 | 20/20 |
| PE-core-L | 0.223 | 0.225 | 0.002 | 0.003 | 0.008 | 20/20 |
| DINOv3-L | 0.266 | 0.260 | 0.006 | 0.002 | 0.010 | 20/20 |
| fraction | draws | mean MAE | worst | mean std | |
|---|---|---|---|---|---|
| (disjoint) | (5 bb) | err | |||
| 0.5% | 0.50M | 12 | 0.020 | 0.039 | 0.003 |
| 1.0% | 0.99M | 12 | 0.015 | 0.031 | 0.003 |
| 2.0% | 1.98M | 12 | 0.010 | 0.023 | 0.003 |
| 5.0% | 4.96M | 20 | 0.005 | 0.013 | 0.003 |
IR Evaluation
Information Retrieval (IR) Evaluation measures how well search systems find, rank, and cover useful evidence across queries, collections, and settings.
See all 185 papers