Downloads · 30 days
59
100% of all-time downloads
girenit/DUSUNEN-Rota-270M-v3
DUSUNEN-Rota-270M-v3 is a sentence similarity model from girenit. Use it when you need a score for how close two texts are. It is set up for sentence-transformers. The card lists the license as apache-2.0.
Kompakt (270M) Türkçe dense retriever. v3, öğretmen damıtması (E5-large) ve tamamı doğal veri ile eğitildi: 220K MS MARCO-TR + 88K DUSUNEN çifti (sentetik şablon yok), çapraz in-batch negatifler ve margin-MSE damıtma.
Downloads · 30 days
59
100% of all-time downloads
All-time downloads
59
Public
Parameters
268M
570 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors536 MB · 94%
From the Hugging Face model README
Kompakt (270M) Türkçe dense retriever. v3, öğretmen damıtması (E5-large) ve tamamı doğal veri ile eğitildi: 220K MS MARCO-TR + 88K DUSUNEN çifti (sentetik şablon yok), çapraz in-batch negatifler ve margin-MSE damıtma.
Sabit mteb/TurHistQuadRetrieval
(1.024 sorgu / 1.213 belge), aynı değerlendirici, bf16:
| Model | Params | nDCG@10 | MRR@10 | Recall@10 | Recall@100 |
|---|---|---|---|---|---|
| multilingual-e5-base | 278M | 0.499 | 0.697 | 0.531 | 0.728 |
| DUSUNEN Rota 270M v3 | 270M | 0.454 | 0.662 | 0.470 | 0.573 |
| Harrier OSS 270M (taban) | 270M | 0.434 | 0.631 | 0.459 | 0.535 |
v3, tabanı geçti (+%4,6 nDCG) ve E5-base'e yaklaştı; e-ticaret-dışı genel Türkçe RAG/arama için kompakt bir alternatiftir. Not: tam recall@100'de E5 hâlâ öndedir; v3 birinci-aşama aday üretimi için tasarlanmıştır.
import torch, torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer
tok = AutoTokenizer.from_pretrained("girenit/DUSUNEN-Rota-270M-v3")
model = AutoModel.from_pretrained("girenit/DUSUNEN-Rota-270M-v3", torch_dtype=torch.bfloat16).cuda().eval()
def embed(texts, prefix):
e = tok([prefix+t for t in texts], padding=True, truncation=True, max_length=192, return_tensors="pt").to("cuda")
with torch.inference_mode():
h = model(**e).last_hidden_state
m = e["attention_mask"].unsqueeze(-1).float()
return F.normalize((h.float()*m).sum(1)/m.sum(1), dim=-1)
q = embed(["Türkiye'nin başkenti neresi?"], "query: ")
d = embed(["Ankara, Türkiye'nin başkentidir."], "passage: ")
print(([email protected]).item())