Mogan-ColBERT-TR

Paper Blog Model Collection Buy Me a Coffee

Mogan-ColBERT-TR

Mogan-ColBERT-TR is a 148.9M-parameter Turkish multi-vector retriever with late interaction. Instead of one vector per text, it keeps the representation at the token level through a 768→128 projection and scores with MaxSim. Queries are padded to 32 tokens with [MASK]; documents are encoded up to 512.

It is initialized from MoganBERT-Embed — a ModernBERT trained from scratch on an entirely Turkish corpus, not a fine-tune of a foreign base.

Usage

pip install -U pylate
from pylate import indexes, models, retrieve

model = models.ColBERT(model_name_or_path="moganai/Mogan-ColBERT-TR")
index = indexes.PLAID(index_folder="pylate-index", index_name="index", override=True)

documents_ids = ["1", "2", "3"]
documents = ["birinci belge metni", "ikinci belge metni", "üçüncü belge metni"]

index.add_documents(
    documents_ids=documents_ids,
    documents_embeddings=model.encode(documents, batch_size=32, is_query=False),
)

retriever = retrieve.ColBERT(index=index)
queries_embeddings = model.encode(["örnek sorgu"], batch_size=32, is_query=True)
print(retriever.retrieve(queries_embeddings=queries_embeddings, k=10))

For reranking use pylate.rank.rerank. A multi-vector index is tens of times larger than a dense one, so in production the recommended setup is two-stage: candidate generation with MoganBERT-Embed, reranking with this model.

Training

Single-epoch KL distillation from the bge-reranker-v2-m3 cross-encoder over 1 positive and 7 mined hard negatives, on 1×H100. The optimizer uses two parameter groups — encoder 1e-5, projection 1e-4 — since the projection starts random while the encoder does not.

Training data is title→passage pairs carved out of our pretraining corpus plus two Turkish question-based retrieval sets. Passages are split in the character domain at sentence boundaries rather than by decoding cut token lists. Negatives are mined in the MoganBERT-Embed embedding space and filtered by three rules together: skip the top 10, drop candidates sharing the query's group identifier, and drop anything above 0.95 cosine. The group mask matters — a second passage from the same document ranks high for the same title and is not a negative.

Results

TurkColBERT, official pipeline (PLAID index, exact MaxSim, document_length=300, k=100). None of the five datasets appears in the training pool, so all results are clean zero-shot.

TurkColBERT

Averaged over the five datasets: 31.81 nDCG@10, 35.53 nDCG@100, 56.98 Recall@100, 25.13 mAP. The benchmark evaluates at document_length=300 while the model was trained at 512, so these are a lower bound.

Model Family

Model Params Purpose
MoganBERT-TR 149.4M Base encoder
MoganBERT-Embed 149M Single-vector embeddings
Mogan-ColBERT-TR 148.9M Multi-vector retrieval (this model)

Citation

@article{yilmaz2026mogancolbert,
  title   = {MoganColBERT-TR: A Late-Interaction Multi-Vector Retrieval Model for Turkish},
  author  = {Furkan Yilmaz and Habibe Aleyna Tasdemir and Muhammed Faruk Gozay},
  year    = {2026}
}


Mogan-ColBERT-TR (Türkçe)

Mogan-ColBERT-TR, geç etkileşimli, 148.9M parametreli bir Türkçe çok vektörlü retriever'dır. Metin başına tek vektör yerine temsili 768→128 izdüşümü ile token seviyesinde tutar ve MaxSim ile skorlar. Sorgular [MASK] ile 32 tokena tamamlanır, belgeler 512'ye kadar kodlanır.

MoganBERT-Embed'den başlatılmıştır — tamamen Türkçe bir külliyat üzerinde sıfırdan eğitilmiş bir ModernBERT; yabancı bir modelin ince ayarı değil.

Kullanım

pip install -U pylate
from pylate import indexes, models, retrieve

model = models.ColBERT(model_name_or_path="moganai/Mogan-ColBERT-TR")
index = indexes.PLAID(index_folder="pylate-index", index_name="index", override=True)

belge_idleri = ["1", "2", "3"]
belgeler = ["birinci belge metni", "ikinci belge metni", "üçüncü belge metni"]

index.add_documents(
    documents_ids=belge_idleri,
    documents_embeddings=model.encode(belgeler, batch_size=32, is_query=False),
)

retriever = retrieve.ColBERT(index=index)
sorgu_gommeleri = model.encode(["örnek sorgu"], batch_size=32, is_query=True)
print(retriever.retrieve(queries_embeddings=sorgu_gommeleri, k=10))

Yeniden sıralama için pylate.rank.rerank kullanın. Çok vektörlü indeks yoğun bir indeksten onlarca kat büyüktür; üretimde önerilen kurulum iki aşamalıdır: aday üretimi MoganBERT-Embed ile, yeniden sıralama bu model ile.

Eğitim

1×H100 üzerinde, bge-reranker-v2-m3 çapraz kodlayıcısından 1 pozitif ve 7 zor negatif üzerinde tek epoch'luk KL damıtma. Optimizasyon iki parametre grubu kullanır — encoder 1e-5, izdüşüm 1e-4 — çünkü izdüşüm rastgele başlarken encoder başlamaz.

Eğitim verisi, ön-eğitim külliyatımızdan çıkarılan başlık→pasaj çiftleri ve iki Türkçe soru tabanlı retrieval kümesidir. Pasajlar, kesilmiş token listeleri decode edilerek değil, karakter alanında cümle sınırlarından bölünür. Negatifler MoganBERT-Embed gömme uzayında çıkarılır ve üç kural birlikte uygulanarak filtrelenir: ilk 10'u atla, sorgunun grup kimliğini paylaşan adayları düşür, 0.95 kosinüsün üstündekileri düşür. Grup maskesi önemlidir — aynı belgeden çıkan ikinci pasaj aynı başlık için üst sıralara çıkar ve negatif değildir.

Sonuçlar

TurkColBERT, resmî hat (PLAID indeksi, tam MaxSim, document_length=300, k=100). Beş veri kümesinin hiçbiri eğitim havuzunda yer almaz, dolayısıyla tüm sonuçlar temiz sıfır-atıştır.

TurkColBERT

Beş veri kümesinin ortalaması: 31.81 nDCG@10, 35.53 nDCG@100, 56.98 Recall@100, 25.13 mAP. Kıyaslama document_length=300 ile ölçüm yapar, model ise 512 ile eğitildi; bu sayılar bir alt sınırdır.

Model Ailesi

Model Parametre Amaç
MoganBERT-TR 149.4M Temel encoder
MoganBERT-Embed 149M Tek vektörlü gömme
Mogan-ColBERT-TR 148.9M Çok vektörlü retrieval (bu model)

Atıf

@article{yilmaz2026mogancolbert,
  title   = {MoganColBERT-TR: A Late-Interaction Multi-Vector Retrieval Model for Turkish},
  author  = {Furkan Yilmaz and Habibe Aleyna Tasdemir and Muhammed Faruk Gozay},
  year    = {2026}
}

Support MoganAI
If our open Turkish models and datasets are useful to you, you can support our work.
Açık Türkçe modellerimiz ve veri setlerimiz işinize yarıyorsa çalışmalarımıza destek olabilirsiniz.

Buy Me a Coffee

Downloads last month
108
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for moganai/Mogan-ColBERT-TR

Finetuned
(1)
this model

Collection including moganai/Mogan-ColBERT-TR

Paper for moganai/Mogan-ColBERT-TR