🔎 Neural Passage Search
See what changes when a neural ranker replaces, or re-orders, a lexical one.
MS MARCO passages100,000 passages indexed
Running on ZeroGPU (on demand)TF-IDF · BM25 · Bi-encoder · Cross-encoder
3 20
10 200
Ask anything
Pick an example above or type a question, then compare how each ranking system answers it.
OFFLINE EVALUATION
No local benchmark results
Run the evaluation commands to populate artifacts/results/comparison_table.csv. No fallback or fabricated metrics are displayed.
Mark passages explicitly as relevant or irrelevant. Feedback is session-local and updates a TF-IDF ranking with Rocchio's formula.
Select a held-out, qrels-judged test query. Live search queries have no inferred labels and are not included in this benchmark analysis.
Query filter
Judged test query
Prepared test queries and qrels are required for this analysis.
How the systems differ
| System | Idea | Strength | Weakness |
|---|---|---|---|
| TF-IDF | Weight terms by frequency and rarity, cosine similarity | Fast, transparent | No length normalisation, exact words only |
| BM25 | TF-IDF refinement with saturation and length normalisation | Strong lexical baseline | Vocabulary mismatch (synonyms, paraphrase) |
| Bi-encoder | Embed query and passage independently, compare vectors | Very fast at query time, semantic | Single vector per passage loses detail |
| Hybrid RRF | Fuse BM25 and bi-encoder ranks with Reciprocal Rank Fusion | Combines complementary lexical and semantic candidates | Adds dense retrieval cost; needs evaluation |
| BM25 → Cross-encoder | Re-score BM25's top-N by reading query and passage together | Most precise per pair | Slow; capped by BM25's recall |
| Hybrid RRF → Cross-encoder | Re-score a fused BM25+dense candidate pool | Combines broad recall and interaction scoring | Higher latency and candidate costs |
Reading the result cards
- Coloured bar: the score, scaled within that column. Scores from different systems are on different scales, so compare ranks, not raw values.
- â–² / â–¼ chips: how far a passage moved relative to BM25's ranking.
- ✨ outside BM25 top-N: the system found a passage BM25's candidate list never contained. For the cross-encoder this can't happen (it only re-orders BM25 candidates), which is exactly why a dense first stage helps.
- Highlighted words: query terms, so you can see when a system retrieves without lexical overlap.
Metrics
- MRR@10: average of 1/rank of the first relevant passage in the top 10.
- NDCG@10: rewards putting relevant passages higher, with a log discount.
- Recall@100: share of relevant passages found in the top 100.