File size: 2,768 Bytes
73b2156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---
language:
  - tr
license: apache-2.0
library_name: sentence-transformers
pipeline_tag: sentence-similarity
base_model: microsoft/harrier-oss-v1-270m
datasets:
  - newmindai/ms-marco-turkish-triplets
tags:
  - sentence-transformers
  - feature-extraction
  - semantic-search
  - information-retrieval
  - turkish
  - retrieval
  - distillation
  - werea
---

# DUSUNEN Rota 270M v3 — Türkçe Dense Retriever 🔍🇹🇷

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.

## Ölçülen sonuçlar

Sabit [`mteb/TurHistQuadRetrieval`](https://huggingface.co/datasets/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.

## Eğitim

- **Taban:** microsoft/harrier-oss-v1-270m · **Öğretmen:** intfloat/multilingual-e5-large
- **Veri:** 308K doğal çift (220K MS MARCO-TR + 88K DUSUNEN); yalnız doğal, sentetik yok
- **Kayıp:** in-batch InfoNCE + 0,1·margin-MSE (öğretmen skorları) · 2 epoch · bf16
- **Not:** Bu mimari **bf16** ile çalıştırılmalıdır (fp16 gömme çıktısında NaN üretir).

## Kullanım

```python
import torch, torch.nn.functional as F
from transformers import AutoModel, AutoTokenizer

tok = AutoTokenizer.from_pretrained("Werea-co/DUSUNEN-Rota-270M-v3")
model = AutoModel.from_pretrained("Werea-co/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((q@d.T).item())
```

## Lisans

Apache-2.0. Taban: Harrier-OSS-270M. Eğitim: [Werea](https://werea.co).

<div align="center"><sub>💜 <a href="https://werea.co">werea.co</a> — Fikirden üretime.</sub></div>