Skip to content

JevRanker

Open Jev-style 0.6B decision model plugged into BlitzRank and Reranker-Guided Search, scoring k candidates per match in one pass.

Serviceresearch

Overview

JevRanker studies what changes when the comparison step inside search-based rerankers is a Jev-style decision model instead of a generative LLM. Rerankers differ in which documents they compare and in what order, but all need one primitive: order a small window of candidates for a query. A Jev-style model answers that with one forward pass over k candidate paths, zero decoded tokens and a calibrated distribution.

The repository trains one shared model, based on NanoJev's Qwen3-0.6B trained on T2Ranking, and plugs it into BlitzRank's tournament graph and Reranker-Guided Search (RGS) through a common decide() interface. No hosted API is called. On 100 T2Ranking dev queries with BM25 top-100 pools, the README reports nDCG@10 of 0.6309 with the trained model in the tournament versus 0.3845 for BM25 alone and 0.2162 for the same 0.6B model decoding a RankGPT listwise prompt, at about 34 ms per match instead of roughly 790 ms. Documentation is in English and Chinese.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich of these k candidate passages is most relevant to the query?—

How it works

  1. First stage retrieves a candidate pool (e.g. BM25 top-100)
  2. Reranker algorithm (BlitzRank or RGS) selects windows of k candidates
  3. Decision model scores the window in one forward pass
  4. Algorithm aggregates match outcomes into a final ranking

Strengths

  • No decoded tokens and much lower latency per match than generative listwise prompting
  • Self-hosted small model, no API cost
  • Shared interface makes reranker algorithms comparable

Caveats

  • Evaluated on one dataset (T2Ranking, Chinese passages)
  • RGS gains over simple sliding window are small in reported tables
  • Research code

At a glance

Type
Service
Status
research
Language
Python
Runtime
PyTorch research code
Has code
yes

Use cases and integrations

How curated lists describe it

  • Retrieval and RAG: an open-source port of Jev's typed-decision format ([NanoJev](https://github.com/TianyuCodings/NanoJev)'s Qwen3-0.6B, trained on T2Ranking, no hosted API call) that replaces the LLM comparator inside two published search rerankers, BlitzRank's tournament graph and Reranker-Guided Search, where each match is one `Choice` scored over k candidate paths in a single forward pass with zero decoded tokens, reaching 0.6309 nDCG@10 on T2Ranking dev against 0.2162 for the same 0.6B decoding a RankGPT listwise prompt, at 34 ms instead of 752 ms per match and 8.6-9.4x lower per-query latency inside RGS.

    yibie/awesome-jev

Frequently asked questions

Does it call TypeSafe's Jev?

No. It uses an open 0.6B Jev-style model trained on T2Ranking, run locally.

How much better is it than generative reranking?

On the reported setup, nDCG@10 0.6309 versus 0.2162 for the same model size decoding a RankGPT prompt, and much faster per match.

Which rerankers does it support?

BlitzRank's tournament graph and Reranker-Guided Search.

Related projects

  • Training-free local decision layer fusing four readings from two frozen Qwen models, auto-releasing only when readings agree.

    BenchmarkresearchPython
  • Jev as a calibrated reranker: query plus up to 30 documents in one call, one relevance Noul per document, benchmarked on BEIR.

    ProjectbetaPython
  • Milvus-based multi-hop graph RAG library where two-stage Jev Noul scoring selects relations and reranks passages.

    LibrarybetaPython
  • Compares Jev's zero-shot reranking with specialist rerankers on MS MARCO passage and document benchmarks and a TREC WSJ transfer test.

    ProjectresearchPython
  • Local-first knowledge search with BM25 shortlisting and Jev Noul reranking by default, seven selectable pipelines and cited answers.

    AppbetaPython
  • Profile matching that encodes preference criteria as Clef or Jev decision vectors, retrieves with HNSW and checks rules both ways.

    BenchmarkresearchPython