Jev as a reranker

September 17, 2026 · View on GitHub

Generated 2026-09-17. Jev model jev-1.13.0.

BM25 top-K shortlist per query (rank_bm25, stopworded), every reranker permutes the same shortlist. nDCG@10 via ir_measures. Latency is per query (one API call for the single-state shapes; per pair call for the pair shape). Cost is the run's actual token usage at list price ($0.042/M input for Jev; Cohere $2/1k searches; Claude list prices).

scifact / test — 300 queries

systemnDCG@10P@1MRR@10p50p95cost/run
jev_pair_generic0.7720.7100.756122 ms236 ms$0.28
jev_batch_generic0.7680.6970.749224 ms1758 ms$0.18
jev_choice0.7620.7100.754
jev_choice_generic0.7600.6930.746192 ms1621 ms$0.15
llm_opus5_low0.7560.6830.7404950 ms7473 ms$28.40
jev_batch0.7560.6830.739
jev_pair0.7550.6800.740
rerank_voyage0.7550.6570.734187 ms286 ms$0.21
rerank_voyage30.7550.6600.734192 ms288 ms$0.21
rerank_mixedbread0.7490.6700.731379 ms460 ms$1.05
llm_gpt56_luna_none0.7470.6530.7293223 ms5824 ms$0.71
rerank_cohere0.7450.6600.728277 ms698 ms$0.60
llm_haiku450.7230.6330.7012899 ms11562 ms$4.18
local_mxbai-rerank-base-v10.7160.6330.6938148 ms9933 ms
local_ms-marco-MiniLM-L-6-v20.6820.5700.653211 ms242 ms
bm250.6670.5400.634

scifact / train — 300 queries

systemnDCG@10P@1MRR@10p50p95cost/run
jev_choice_generic0.7760.7130.766253 ms1157 ms$0.26
jev_batch_generic0.7740.6830.751298 ms1721 ms$0.30
jev_pair_generic0.7730.6730.754117 ms221 ms$0.28
jev_pair0.7670.6930.740126 ms239 ms$0.28
jev_choice0.7560.6900.747202 ms1657 ms$0.16
jev_batch0.7520.6670.732242 ms1738 ms$0.18
ce_minilm0.7080.5730.671
bm250.6700.5670.640

nfcorpus / test — 323 queries

systemnDCG@10P@1MRR@10p50p95cost/run
jev_batch_generic0.3580.5110.581238 ms1716 ms$0.19
jev_pair_generic0.3580.5230.590144 ms295 ms$0.30
rerank_voyage30.3570.5140.587191 ms285 ms$0.23
rerank_voyage0.3570.5170.584183 ms300 ms$0.23
llm_gpt56_luna_none0.3550.5080.5893062 ms4521 ms$0.76
rerank_cohere0.3390.4830.561170 ms404 ms$0.65
ce_minilm0.3360.4920.567
rerank_mixedbread0.3240.4240.528380 ms452 ms$1.13
jev_choice_generic0.3150.5140.580212 ms1724 ms$0.17
bm250.3100.4400.521

fiqa / test — 300 queries

systemnDCG@10P@1MRR@10p50p95cost/run
rerank_voyage30.4020.4900.522173 ms288 ms$0.15
rerank_voyage0.3950.4830.517177 ms255 ms$0.15
jev_pair_generic0.3760.4400.486128 ms238 ms$0.23
jev_batch_generic0.3760.4430.483208 ms785 ms$0.13
rerank_cohere0.3740.4300.482129 ms267 ms$0.60
llm_gpt56_luna_none0.3630.3930.4623131 ms3774 ms$0.49
jev_choice_generic0.3580.4200.480191 ms772 ms$0.10
rerank_mixedbread0.3540.3800.447322 ms374 ms$1.05
ce_minilm0.3230.3300.407
bm250.2340.2000.279

Validation (scifact/test)

  • Determinism: 30 batch requests re-issued, 900 Noul pairs: mean |Δ| 0.004, max 0.14, zero top-1 changes.
  • Position bias: reversed candidate order, per-doc Spearman 0.83 (30-Noul state) / 0.92 (Choice); nDCG@10 within 0.005.
  • Calibration (pair Nouls): p≥0.9 → 76% judged relevant; p<0.1 → 0.5%.
  • Random permutation of the shortlist: nDCG@10 0.12 (floor).
  • Claude Opus 5 refused 12/300 claims (safety classifier); scored as zero in the table, 0.778 with BM25 order substituted on those queries.
  • Jev rate limit: two concurrent jobs (~24 in flight) drew sustained 429s; runs were serialized at 6-wide.