Model reference · open weights
modernbert-tr-reranker is an open-weight embedding model from ytu-ce-cosmos. modernbert-tr-reranker (FP32) weighs 299 MB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the ytu-ce-cosmos/modernbert-tr-reranker model card, 2026-10-01
What it is
| Released by | ytu-ce-cosmos |
|---|---|
| Released | 2026-06-30 |
| Parameters | 149M |
| VRAM | 299 MB for the weights |
What it runs on
| Card | Runs | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
A 150M-parameter Turkish cross-encoder reranker to score (query, document) relevance.
ytu-ce-cosmos/modernbert-tr-base.Qwen/Qwen3-Reranker-8B.Reranking the top-100 of a first-stage retriever (ytu-ce-cosmos/modernbert-tr-embed) at max_seq=512. The uplift (Δ) is the reranker's contribution.
| Task | First-stage NDCG@10 | + Reranker | Δ |
|---|---|---|---|
| ArguAnaTR | 37.01 | 54.75 | +17.74 |
| SquadTRRetrieval | 75.94 | 90.11 | +14.17 |
| SciFactTR | 77.07 | 86.34 | +9.27 |
| TQuadRetrieval | 87.48 | 94.00 | +6.52 |
| CQADupstackGamingRetrievalTR | 56.44 | 61.10 | +4.66 |
| XQuADRetrieval | 95.03 | 97.86 | +2.83 |
| Mean Δ | +9.20 |
Question answering and counter argument distillation of Qwen3-Reranker-8B relevance scores into the 150M cross-encoder over Turkish question answering / information retrieval data using listwise KL.
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
tok = AutoTokenizer.from_pretrained("ytu-ce-cosmos/modernbert-tr-reranker")
model = AutoModelForSequenceClassification.from_pretrained("ytu-ce-cosmos/modernbert-tr-reranker").eval()
query = "Türkiye'nin başkenti neresidir?"
docs = ["Ankara, Türkiye'nin başkentidir.", "İstanbul en kalabalık şehirdir."]
enc = tok([query] * len(docs), docs, padding=True, truncation="longest_first",
max_length=8192, return_tensors="pt")
with torch.no_grad():
scores = model(**enc).logits.squeeze(-1)
ranking = sorted(zip(docs, scores.tolist()), key=lambda x: x[1], reverse=True)
from sentence_transformers import CrossEncoder
model = CrossEncoder("ytu-ce-cosmos/modernbert-tr-reranker")
scores = model.predict([(query, d) for d in docs])
The onnx/ folder has the full graph, the output is the relevance logit:
import onnxruntime, numpy as np
sess = onnxruntime.InferenceSession("onnx/model.onnx")
feed = {k: v.numpy() for k, v in enc.items() if k in {i.name for i in sess.get_inputs()}}
logits = sess.run(None, feed)[0].squeeze(-1)
text-embeddings-router --model-id ytu-ce-cosmos/modernbert-tr-reranker --dtype float16
# POST /rerank {"query": "soru", "texts": ["aday 1", "aday 2"]}
We used Turkish datasets msmarco-tr, squad-tr, fiqa-tr, nfcorpus-tr, quora-tr, scifact-tr for distillation by Qwen3-Reranker-8B, and Turkish counter-argument pairs from ArguAna machine-translated with TranslateGemma-27B. All training data was text-hash chceked against every MTEB(Turkish) test split.
apache-2.0.Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
Benchmarks
As published on the model card: the maker's own numbers, not measured by AxForge.
| Task | Dataset | Metric | Score |
|---|---|---|---|
| ArguAnaTR | MTEB ArguAnaTR | ndcg_at_10 | 54.750 |
| CQADupstackGamingRetrievalTR | MTEB CQADupstackGamingRetrievalTR | ndcg_at_10 | 61.100 |
| SciFactTR | MTEB SciFactTR | ndcg_at_10 | 86.340 |
| SquadTRRetrieval | MTEB SquadTRRetrieval | ndcg_at_10 | 90.110 |
| TQuadRetrieval | MTEB TQuadRetrieval | ndcg_at_10 | 94 |
| XQuADRetrieval | MTEB XQuADRetrieval | ndcg_at_10 | 97.860 |