Instructions to use GoktugD/DUSUNEN-Rota-270M-v2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use GoktugD/DUSUNEN-Rota-270M-v2 with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("GoktugD/DUSUNEN-Rota-270M-v2") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
language:
- tr
license: mit
library_name: sentence-transformers
pipeline_tag: sentence-similarity
base_model: GoktugD/DUSUNEN-Rota-270M-v1
datasets:
- GoktugD/DUSUNEN-HardNegatives-50K-v1
tags:
- sentence-transformers
- semantic-search
- information-retrieval
- turkish
- hard-negatives
DUSUNEN Rota 270M v2
A 268.1M-parameter Turkish dense retriever continued from DUSUNEN Rota v1 on 50,000 model-mined difficult negatives. The release is designed as a transparent hard-negative experiment: it publishes positive, neutral and negative evidence.
Five-task measured results
| Model | Params | Dim | TurHist | XQuAD | WebFAQ | MKQA | Belebele | Macro |
|---|---|---|---|---|---|---|---|---|
| multilingual E5 base | 278.0M | 768 | 0.49726 | 0.95335 | 0.65032 | 0.07213 | 0.92503 | 0.619618 |
| DUSUNEN Rota 270M v2 | 268.1M | 640 | 0.42198 | 0.86393 | 0.56886 | 0.10331 | 0.88493 | 0.568602 |
| DUSUNEN Rota 270M v1 | 268.1M | 640 | 0.42196 | 0.85832 | 0.56402 | 0.10296 | 0.88222 | 0.565896 |
| DUSUNEN Pusula 118M v0 | 117.7M | 384 | 0.25299 | 0.81123 | 0.46307 | 0.04855 | 0.82451 | 0.480070 |
v2 improves v1 on all five tasks, with a macro change of +0.002706 points (about +0.48% relative). The hard-negative triplet validation score itself was unchanged at 0.8935. The appropriate claim is a small, consistent held-out gain—not a major jump. E5 remains the overall suite leader; DUSUNEN Rota v2 exceeds it only on MKQA in this matrix.
Use
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("GoktugD/DUSUNEN-Rota-270M-v2")
task = "Given a Turkish web search query, retrieve relevant passages that answer the query"
query = f"Instruct: {task}\nQuery: Hard negative neden önemlidir?"
query_vector = model.encode(query, normalize_embeddings=True)
document_vectors = model.encode(
["Zor negatifler karar sınırını güçlendirir.", "Ankara Türkiye'nin başkentidir."],
normalize_embeddings=True,
)
print(document_vectors @ query_vector)
Queries require the instruction format shown above. Documents are plain text.
Mining and training
- Base:
GoktugD/DUSUNEN-Rota-270M-v1 - Mined data: 50,000 train / 2,000 validation triplets
- Candidate pool: 70,172 source-labeled negatives; search depth: 32
- Successful mined rows: 50,000; fallbacks: 0; mean cosine: 0.550376
- Exact normalized TurHistQuad overlap: 0
- Objective: Cached Multiple Negatives Ranking Loss
- Sequence length: 256; effective batch: 64; learning rate:
8e-6 - One epoch, BF16, seed 3407, one local RTX 5060 Laptop GPU
- Training time: 2,528 seconds
Limitations
- The measured improvement is small and may not transfer to a target corpus.
- A source-labeled negative can still be semantically relevant to a query.
- The upstream corpus is machine translated.
- Similarity is not a probability or a factuality score.
- Five retrieval tasks do not cover every Turkish domain, dialect or intent.
The repository ships raw per-task MTEB objects, checksums, training state, environment metadata, the mining audit and the exact evaluation code.