A compact, fast English cross-encoder reranker. It scores a (query, passage) pair directly and
reorders the top-k candidates from a first-stage retriever — the second stage of a search / RAG
pipeline. At ~22.7M parameters it runs comfortably on a single modest GPU or CPU, and recovers most of
the ranking quality of rerankers an order of magnitude larger.
Training: fine-tuned on olaverse/reranker-general-en-llm-judged
(pairs-graded, 844k pairs) with a hybrid objective — binary cross-entropy on the LLM-judge relevance
label, plus an auxiliary term distilling the continuous teacher score from BAAI/bge-reranker-v2-m3.
🏃 How to run
Install sentence-transformers:
pip install -U sentence-transformers
This is a 2-class head, so relevance is the positive-class probability, softmax(logits)[:, 1]:
python
1import torch
2from sentence_transformers import CrossEncoder
34model = CrossEncoder("olaverse/mist-reranker-22.7M")56query ="who wrote hamlet"7passages =[8"Hamlet is a tragedy written by William Shakespeare around 1600.",9"The capital of France is Paris.",10"Macbeth is one of Shakespeare's shortest tragedies.",11]1213logits = model.predict([[query, p]for p in passages], convert_to_tensor=True)14scores = torch.softmax(logits, dim=-1)[:,1]# relevance = P(relevant)1516for p, s insorted(zip(passages, scores.tolist()), key=lambda x:-x[1]):17print(f"{s:.4f}{p}")
To rerank a retrieved candidate list, score every candidate against the query and sort by the
relevance score descending. Keep query first and passage second in each pair — the model is trained
on that order.
📈 Performance
NanoBEIR (NanoNQ, NanoHotpotQA, NanoFEVER), NDCG@10. Every reranker reorders the same candidate
sets; the candidate order before reranking (first-stage floor) scores 0.7126.
Model
Params
NDCG@10
BAAI/bge-reranker-v2-m3
~568M
0.9058
cross-encoder/ms-marco-MiniLM-L12-v2
~33M
0.8670
mist-reranker-22.7M
~22.7M
0.8543
cross-encoder/ms-marco-MiniLM-L6-v2
~22.7M
0.8495
BAAI/bge-reranker-base
~278M
0.8238
mixedbread-ai/mxbai-rerank-xsmall-v1
~70M
0.8184
first-stage floor (no reranker)
—
0.7126
At ~22.7M it lifts NDCG@10 by +0.14 over the first-stage candidate order, beats bge-reranker-base
(~12× larger) and mxbai-rerank-xsmall-v1, and closes most of the gap to its bge-reranker-v2-m3
teacher.
License
Released under Apache-2.0.
Citation
@misc{mist-reranker-22.7M,
title = {mist-reranker-22.7M},
author = {Olaverse},
year = {2026},
url = {https://huggingface.co/olaverse/mist-reranker-22.7M}
}