Model reference · open weights
modernbert-tr-embed is an open-weight embedding model from ytu-ce-cosmos. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | ytu-ce-cosmos |
|---|---|
| Type | Embedding models |
| Task | Embeddings |
| Parameters (lead) | 149M |
| Context | 8k tokens |
| Runs with | sentence-transformers |
| Based on | ytu-ce-cosmos/modernbert-tr-base |
| Released | 2026-06-28 |
| Popularity | 1k downloads / month |
| Licence | Open weights |
About
A 150M-parameter Turkish text-embedding model.
ytu-ce-cosmos/modernbert-tr-base.Qwen/Qwen3-Embedding-8B.| Model | Params | Retr | Classif | PairCls | Cluster | STS | Bitext | Mean |
|---|---|---|---|---|---|---|---|---|
| ModernBERT-TR-Embed (ours) | 150M | 59.4 | 76.5 | 69.2 | 63.3 | 77.6 | 94.1 | 68.14 |
| ytu-ce-cosmos/turkish-e5-large | 560M | 61.5 | 72.6 | 62.8 | 60.9 | 80.0 | 99.3 | 67.17 |
| microsoft/harrier-oss-v1-0.6b | 600M | 60.1 | 71.1 | 58.6 | 63.3 | 74.5 | 98.6 | 65.57 |
| intfloat/multilingual-e5-large | 560M | 61.7 | 69.2 | 65.6 | 60.8 | 81.0 | 99.0 | 66.56 |
| Qwen/Qwen3-Embedding-4B | 4B | 63.1 | 70.2 | 60.1 | 61.3 | 77.0 | 97.8 | 66.69 |
We embedded ~7.9M Turkish passages with the teacher, then trained our model to reproduce those embeddings. A projector maps the teacher's 4096-d vectors down to our model's 768 dimensions. Following Jasper/Stella distillation recipe, a three-term loss aligns the embeddings from both: a per-passage cosine loss, a similarity-matrix loss matching the student's and teacher's Gram matrices within batch, and a CoSENT-style hinge that reproduces the teacher's pairwise-similarity ordering.
From the distilled model we ran three fine-tunings, all supervised by teacher embeddings:
We weight-average the checkpoints described above into a single model.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("mrbesher/modernbert-tr-embed")
emb = model.encode(["bir cümle", "başka bir cümle"], normalize_embeddings=True)
q = model.encode(["soru"], prompt_name="query", normalize_embeddings=True)
d = model.encode(["döküman"], normalize_embeddings=True)
The retrieval (see config_sentence_transformers.json):
Instruct: Given a web search query, retrieve relevant passages that answer the query\nQuery:{text}.
The onnx/ folder has the grapgh for the token embeddings, it includes 3 graphs: token embeddings, mean-pool and L2-norm.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("mrbesher/modernbert-tr-embed", backend="onnx",
model_kwargs={"file_name": "onnx/model_fp16.onnx"})
TEI is L2-normalizes by default. Pass per-request prompts for retrieval queries.
text-embeddings-router --model-id mrbesher/modernbert-tr-embed --dtype float16
See the companion encoderfile repo.
Turkish retrieval (msmarco-tr, Squad-TR train/dev), Turkish NLI (boun-tabi/nli_tr train), Turkish STS-B (train), and Turkish classification-domain text (product reviews, news, social), all teacher-supervised. We check for leaks with text-hash against every MTEB(Turkish) test split.
apache-2.0.From the published model card. Full card on the HuggingFace links in the sidebar.
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 | 50.010 |
| CQADupstackGamingRetrievalTR | MTEB CQADupstackGamingRetrievalTR | ndcg_at_10 | 56.370 |
| FiQA2018TR | MTEB FiQA2018TR | ndcg_at_10 | 46.200 |
| MSMarcoTRRetrieval | MTEB MSMarcoTRRetrieval | ndcg_at_10 | 57.870 |
| MnliTr | MTEB MnliTr | max_ap | 65.920 |
| NFCorpusTR | MTEB NFCorpusTR | ndcg_at_10 | 9.470 |
| QuoraRetrievalTR | MTEB QuoraRetrievalTR | ndcg_at_10 | 95.180 |
| SCIDOCSTR | MTEB SCIDOCSTR | ndcg_at_10 | 3.370 |
| STSbTR | MTEB STSbTR | cosine_spearman | 77.620 |
| SciFactTR | MTEB SciFactTR | ndcg_at_10 | 77.060 |
| SnliTr | MTEB SnliTr | max_ap | 67.290 |
| SquadTRRetrieval | MTEB SquadTRRetrieval | ndcg_at_10 | 75.930 |
| THYSentimentClassification | MTEB THYSentimentClassification | accuracy | 68.140 |
| TQuadRetrieval | MTEB TQuadRetrieval | ndcg_at_10 | 87.140 |
| TSTimelineNewsCategoryClassification | MTEB TSTimelineNewsCategoryClassification | accuracy | 67.910 |
| Turkish75NewsClassification | MTEB Turkish75NewsClassification | accuracy | 93.330 |
| TurkishAbstractCorpusClustering | MTEB TurkishAbstractCorpusClustering | v_measure | 62.220 |
| TurkishColumnWritingClustering | MTEB TurkishColumnWritingClustering | v_measure | 64.420 |
| TurkishIronyClassification | MTEB TurkishIronyClassification | accuracy | 57.670 |
| TurkishMovieSentimentClassification | MTEB TurkishMovieSentimentClassification | accuracy | 89.340 |
| TurkishNewsCategoryClassification | MTEB TurkishNewsCategoryClassification | accuracy | 93.640 |
| TurkishOffensiveLanguageClassification | MTEB TurkishOffensiveLanguageClassification | accuracy | 71.510 |
| TurkishProductSentimentClassification | MTEB TurkishProductSentimentClassification | accuracy | 70.510 |
| WMT16BitextMining | MTEB WMT16BitextMining | f1 | 94.090 |
Using it via the API
Once AxForge deploys modernbert-tr-embed for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (modernbert-tr-embed below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/embeddings \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"modernbert-tr-embed","input":"text to embed"}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.