Downloads · 30 days
66
11% of all-time downloads
magibu/embeddingmagibu-152m
embeddingmagibu-152m is a sentence similarity model from magibu. 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 mit.
Downloads · 30 days
66
11% of all-time downloads
All-time downloads
578
Public
Parameters
152M
1.3 GB on disk
Likes
2
Public
Click a slice to open those files.
.safetensors626 MB · 98%
From the Hugging Face model README

Bu model, Türkçe odaklı uzun bağlam (2048 token) sentence embedding üretmek için eğitilmiş bir SentenceTransformer modelidir. 768 boyutlu normalize vektör uzayına projeksiyon yapar ve özellikle:
gibi görevlerde kullanılabilir.
Model, sıfırdan rastgele başlatılmak yerine iki aşamalı bir yaklaşımla geliştirilmiştir:
Bu sayede, büyük modellerle yarışan kaliteyi hedeflerken parametre sayısı yaklaşık 152M seviyesinde yakalamıştır.
Bu model SentenceTransformers formatında aşağıdaki boru hattını kullanır:
SentenceTransformer(
(0): Transformer({'max_seq_length': 2048, 'do_lower_case': False}) with Transformer model: Gemma3TextModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
(2): Dense({'in_features': 768, 'out_features': 3072, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
(3): Dense({'in_features': 3072, 'out_features': 768, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
(4): Normalize()
)
Bu bölüm, modelin “nasıl üretildiğini” mümkün olduğunca tekrarlanabilir ve teknik şekilde anlatır.
Amaç: Türkçe metinler için daha uygun alt-parça dağılımı elde ederek vocab’ı küçültmek ve embedding tablosu parametrelerini düşürmek.
transformer-clonerSıfırdan model başlatmak yerine, teacher modelin (EmbeddingGemma) ağırlıklarını mümkün olduğunca koruyarak yeni tokenizer’a adapte edebilmek için transformer-cloner adlı bir Python kütüphanesi kullanılmıştır:
Teacher modeldeki transformer katmanları (attention/MLP/LayerNorm vb.) olduğu gibi korunur; asıl sorun, tokenizer değiştiğinde token embedding tablosunun (vocab_size × hidden_size) uyumsuz hale gelmesidir.
transformer-cloner, yeni tokenizer’daki her token için teacher tokenizer tarafında bir token-id eşlemesi oluşturur:
build_token_id_map() yeni vocab’daki her target_token_id için teacher tarafında bir veya birden çok source_token_id döner: {target_id: [source_ids...]}clone() aşamasında embedding’ler hesaplanarak aktarılır.Yeni token birden fazla teacher token’a parçalanıyorsa, teacher embedding’leri birleştirilir. transformer-cloner bu birleşimi EmbeddingStrategy ile tanımlar (MEAN, WEIGHTED, FIRST, LAST, vb.).
Bu projede kullanılan yaklaşım:
Bu sayede:
distil-trainer (dataset üretimi)Teacher model distillation sırasında her adımda çalıştırılmasın diye, teacher embedding’leri önceden hesaplanıp bir Hugging Face dataset’i olarak kaydedilmiştir.
Bu aşamada TeacherEmbeddingsGenerator kullanılır:
Generator şu çıktıları üretebilir:
teacher_embedding_final: SentenceTransformer pipeline’ının final embedding’i (Normalize dahil encode çıktısı)teacher_embedding_pre_dense: Dense katmanlarından önceki embedding (Dense varsa)Bu projede teacher embedding’leri 300,000 örnek üzerinde hesaplanıp şu dataset’e yazılmıştır:
text, teacher_embedding_final ve Dense varsa teacher_embedding_pre_denseNot: Dataset preview’ında embedding kolonlarının float dizileri olduğu görülür.
Student model, teacher’ın embedding uzayına yaklaşacak şekilde eğitilmiştir.
Bu eğitimde kullanılan ana bileşen:
EmbeddingDistillationTrainer ve EmbeddingTrainerConfigBu projenin raporlanan ayarları (özet):
final (teacher final embedding’i hedefleniyor)Eğitim donanımı:
Deney takibi:
Bu bölümde iki seviyede sonuç raporlanmıştır:
Her 100 adım checkpoint alındıktan sonra, figenfikri/stsb_tr üzerinde Pearson/Spearman korelasyonları takip edilmiştir.
Örnek bir kayıt (timestamp: 2026-01-02):
| Model | Pearson | Spearman |
|---|---|---|
| intfloat/multilingual-e5-large-instruct | 0.8275 | 0.8129 |
| trmteb/turkish-embedding-model-fine-tuned | 0.8215 | 0.8061 |
| ytu-ce-cosmos/turkish-e5-large | 0.8090 | 0.7906 |
| sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 | 0.7884 | 0.7659 |
| embeddingmagibu-152m (bu model) | 0.7512 | 0.7305 |
| google/embeddinggemma-300m (teacher) | 0.7391 | 0.7194 |
Bu gözlem, distillation ilerledikçe student modelin teacher’ı geçebildiğini ve güçlü Türkçe embedding modellerine yaklaştığını göstermektedir.
TR-MTEB, Türkçe embedding modellerini çok görevli bir ölçekte değerlendiren bir benchmark’tır:
| Model | Ortalama |
|---|---|
| intfloat/multilingual-e5-large-instruct | 72.77 |
| intfloat/multilingual-e5-large | 72.28 |
| ytu-ce-cosmos/turkish-e5-large | 72.22 |
| google/embeddinggemma-300m | 70.97 |
| selmanbaysan/turkish embedding model fine tuned | 70.47 |
| embeddingmagibu-152m (bu model) | 69.68 |
| Model | Ortalama |
|---|---|
| intfloat/multilingual-e5-large | 65.59 |
| ytu-ce-cosmos/turkish-e5-large | 64.84 |
| intfloat/multilingual-e5-large-instruct | 64.72 |
| alibaba-NLP/gte-multilingual-base | 63.25 |
| intfloat/multilingual-e5-base | 63.00 |
| embeddingmagibu-152m (bu model) | 62.57 |
| selmanbaysan/turkish embedding model fine tuned | 62.17 |
Yorum: Bu model, bazı görevlerde çok daha büyük / çok daha pahalı şekilde eğitilmiş modellere yaklaşırken, daha küçük boyut + 2048 bağlam uzunluğu ile pratik bir denge hedefler.
Kurulum:
pip install -U sentence-transformers
Basit kullanım:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("alibayram/embeddingmagibu-152m", trust_remote_code=True)
sentences = [
"Bugün hava çok güzel.",
"Dışarısı güneşli.",
"Stadyuma arabayla gitti.",
]
embeddings = model.encode(sentences, normalize_embeddings=True)
print(embeddings.shape) # (3, 768)
Benzerlik hesaplama:
import numpy as np
sim = embeddings @ embeddings.T # normalize edilmişse cosine == dot
print(sim)
EmbeddingGemma ailesi, query/document ayrımı için prompt formatlarını destekler. Bu modelin Pooling konfigürasyonunda include_prompt=True olduğu için SentenceTransformers tarafında encode_query / encode_document kullanımına uygundur.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("alibayram/embeddingmagibu-152m", trust_remote_code=True)
query = "Mars neden kırmızı gezegen olarak bilinir?"
docs = [
"Mars, yüzeyindeki demir oksit nedeniyle kırmızı görünür.",
"Venüs atmosferi çok yoğundur.",
]
q = model.encode_query(query)
d = model.encode_document(docs)
scores = model.similarity(q, d)
print(scores)
EmbeddingGemma aktivasyonları float16 ile sorun yaşayabilir; mümkünse bfloat16 veya float32 tercih edin.
Model, küçük boyutu ve uzun bağlam desteği nedeniyle bf16 formatında GGUF’a dönüştürülüp Ollama üzerinden paylaşılacak şekilde paketlenmiştir.
Bu çalışmanın üretim hattı:
transformer-cloner ile yeni vocab’e embedding map et ve modeli klonladistil-trainer ile teacher embedding’lerini dataset’e yaz (teacher_embedding_final, teacher_embedding_pre_dense)Eğer bu modeli veya eğitim hattını akademik çalışmada kullanırsanız, aşağıdaki referansları kullanmanız önerilir.
@misc{embeddingmagibu_152m_2025,
title={embeddingmagibu-152m: A Turkish-Focused Long-Context Sentence Embedding Model},
author={Bayram, M. Ali},
year={2025},
url={https://huggingface.co/alibayram/embeddingmagibu-152m}
}
EmbeddingGemma model kartında verilen BibTeX:
@article{embedding_gemma_2025,
title={EmbeddingGemma: Powerful and Lightweight Text Representations},
author={Schechter Vera, Henrique* and Dua, Sahil* and Zhang, Biao and Salz, Daniel and Mullins, Ryan and Raghuram Panyam, Sindhu and others},
year={2025},
url={https://arxiv.org/abs/2509.20354}
}
PyPI sayfasında önerilen referans:
@software{distil_trainer,
title = {Distil Trainer: A Comprehensive Knowledge Distillation Framework},
author = {Bayram, M. Ali},
year = {2025},
url = {https://github.com/malibayram/distil-trainer}
}
@software{transformer_cloner,
title = {Transformer Cloner: Clone and prune transformer models with new tokenizers},
author = {Bayram, M. Ali},
year = {2025},
url = {https://github.com/malibayram/transformer-cloner}
}
@article{muennighoff2022mteb,
title = {MTEB: Massive Text Embedding Benchmark},
author = {Muennighoff, Niklas and Tazi, Nouamane and Magne, Loic and Reimers, Nils},
year = {2022},
url = {https://arxiv.org/abs/2210.07316}
}
inproceedings{baysan-gungor-2025-tr,
title = "{TR}-{MTEB}: A Comprehensive Benchmark and Embedding Model Suite for {T}urkish Sentence Representations",
author = "Baysan, Mehmet Selman and Gungor, Tunga",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2025",
month = nov,
year = "2025",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2025.findings-emnlp.471/",
doi = "10.18653/v1/2025.findings-emnlp.471",
pages = "8867--8887",
ISBN = "979-8-89176-335-7",
}