🪣 Kalbur — Türkçe reranker

BAAI/bge-reranker-v2-m3 üzerine Türkçe ince ayar: iki öğretmenden (bge-reranker-v2-m3 + Qwen3-Reranker-4B) liste düzeyinde damıtma ve bozuk sorgularla eğitim (BÜYÜK HARF, Türkçe karaktersiz, mobil yazım, yazım hatası). 568M parametre; taban modelle aynı hızda.

🚀 Demo: cihatyldz/kalbur · 🧭 Benchmark: Pusula

Kullanım

from sentence_transformers import CrossEncoder

model = CrossEncoder("cihatyldz/kalbur-reranker", max_length=512)
model.rank("ev sahibi kirayı ne kadar artırabilir", ["pasaj 1", "pasaj 2", "pasaj 3"], return_documents=True)

# Küçük indirme (~570 MB, fp32'nin dörtte biri), aynı kalite: ONNX int8
model = CrossEncoder("cihatyldz/kalbur-reranker", backend="onnx", model_kwargs={"file_name": "onnx/model_quint8_avx2.onnx"}, max_length=512)

int8 sürüm: benchmark alt kümesinde (1000 sorgu) nDCG@10 farkı +0.0000 (%95 GA [-0.0035, +0.0035]); Hız işlemciye bağlı: avx2 profili 12 çekirdekli test CPU'sunda fp32'den hızlı değildi (3 → 2 çift/sn, ×0.7); asıl kazanç dosya boyutu ve bellek. torch'suz kullanım için Space'teki kalbur_onnx.py (onnxruntime + tokenizers) örneğine bakın.

Sonuçlar

Pusula'nın 4 Türkçe veri seti + Arzuhal hukuk soruları. İlk aşama bge-m3 her sorgu için ilk 100 adayı bir kez üretti ve aday listeleri donduruldu (parmak izi becd8faab2ad20e7); her reranker ilk 30 adayı yeniden sıraladı. nDCG@10; ortalama quora-tr, fiqa-tr, dmm, arzuhal üzerinden (msmarco-tr sıralama dışı: bge reranker'ları MS MARCO ile eğitildi). Grup: komşu modelle fark %95 GA'da anlamsızsa aynı grup (veri seti dengeli eşleştirilmiş bootstrap, temiz sorgular). Koruma: bozulmanın değiştirdiği sorgularda bozuk / temiz skor.

Grup Model Param Temiz BÜYÜK HARF Türkçe karaktersiz Mobil Koruma: BÜYÜK HARF Koruma: Türkçe karaktersiz Koruma: Mobil
1 Qwen3-Reranker-4B 4.0B 0.785 0.752 0.751 0.731 %94.1 %94.2 %90.9
2 Kalbur (bu model) 568M 0.774 0.741 0.753 0.738 %94.3 %96.4 %93.7
3 seroe/bge-reranker-v2-m3-turkish-triplet 568M 0.768 0.733 0.741 0.728 %94.0 %95.4 %93.1
3 BAAI/bge-reranker-v2-m3 568M 0.767 0.730 0.739 0.725 %93.9 %95.3 %93.0
4 Qwen3-Reranker-0.6B 600M 0.742 0.706 0.707 0.686 %93.5 %93.8 %90.4
4 bge-m3 (rerank yok) 568M 0.736 0.679 0.690 0.666 %89.9 %92.0 %87.9
5 BAAI/bge-reranker-base 278M 0.656 0.581 0.587 0.590 %85.9 %87.2 %87.7

Veri seti bazında (temiz):

Model msmarco-tr * quora-tr fiqa-tr dmm arzuhal
Qwen3-Reranker-4B 0.905 0.955 0.430 0.909 0.844
Kalbur (bu model) 0.926 0.969 0.402 0.906 0.822
seroe/bge-reranker-v2-m3-turkish-triplet 0.929 0.965 0.396 0.894 0.818
BAAI/bge-reranker-v2-m3 0.930 0.965 0.396 0.895 0.811
Qwen3-Reranker-0.6B 0.872 0.929 0.355 0.908 0.778
bge-m3 (rerank yok) 0.887 0.958 0.368 0.896 0.721
BAAI/bge-reranker-base 0.766 0.832 0.270 0.880 0.643

Eşleştirilmiş karşılaştırmalar (20 hücre = 5 veri seti × 4 koşul):

Karşılaştırma Anlamlı üstün Fark yok Anlamlı geride
Kalbur vs seroe/bge-reranker-v2-m3-turkish-triplet 12 8 0
Kalbur vs BAAI/bge-reranker-v2-m3 13 6 1
Kalbur vs Qwen3-Reranker-4B 6 9 5
  • seroe'ya karşı anlamlı üstün: msmarco-tr/Mobil (+0.012), quora-tr/Temiz (+0.004), quora-tr/Türkçe karaktersiz (+0.006), quora-tr/Mobil (+0.011), fiqa-tr/Türkçe karaktersiz (+0.013), dmm/Temiz (+0.012), dmm/BÜYÜK HARF (+0.016), dmm/Türkçe karaktersiz (+0.010), dmm/Mobil (+0.006), arzuhal/BÜYÜK HARF (+0.013), arzuhal/Türkçe karaktersiz (+0.018), arzuhal/Mobil (+0.020).
  • Tabana (v2-m3) karşı anlamlı geride: msmarco-tr/Temiz (-0.004).

Eğitim

  • Pasajlar: 7.599 Türkçe Vikipedi (20231101.tr) + mevzuat pasajı; zor negatif havuzu 108.000 pasaj.
  • Sorgular: Qwen3-8B ile pasaj başına bir soru + bir arama ifadesi → 14.755 sorgu (kopya / meta atıf / yabancı yazı / benchmark tekrarı elendi).
  • Adaylar: pozitif + bge-m3'ün havuzda bulduğu ilk 15 pozitif-dışı pasaj.
  • Hedef: iki öğretmenin sorgu içi z-puan ortalaması (dev setinde ikisi ayırt edilemedi), öğrencinin logit ölçeğinde softmax; KL kaybı.
  • Dayanıklılık: her listenin bozuk sorgulu kopyası (hedef: temiz sorgunun dağılımı; seed benchmark'tan farklı).
  • 17.428 liste, 1 epoch, LR 1e-05, etkin 16 sorgu/adım, en iyi dev ara noktası (adım 1050).

Sızıntı önlemleri

Pusula'nın veri setleri (msmarco-tr, quora-tr, fiqa-tr, dmm) ve Arzuhal'in 5 test kanunu (TBK, TMK, İş K., TKHK, KMK) eğitime girmedi. Benchmark metinleriyle 8 kelimelik ortak dizisi olan pasajlar ve benchmark sorgularının tekrarları atıldı. Öğretmen ve ara nokta seçimi, eğitim verisinden ayrılan dev setinde benchmark'a bakılmadan yapıldı.

Sınırlamalar

  • Eğitim sorguları sentetik (Qwen3-8B); bir kısmının cevabı pasajda tam değil — sert etiket yerine öğretmen puanı kullanılmasının nedeni bu.
  • Eğitimde mevzuat dili var (test kanunları hariç): Arzuhal'deki kazancın bir kısmı alan uyumu olabilir.
  • seroe'nun modeli telekom alanı için eğitildi; o alanda karşılaştırılmadı.
  • Tek ilk aşama (bge-m3, ilk 30 aday) ile ölçüldü; başka ilk aşamalarla sonuçlar değişebilir.

Lisans

Apache-2.0 (taban model gibi). Eğitim verisi: Türkçe Vikipedi (CC BY-SA 4.0) ve hasankursun/turkish-legislation-corpus (CC BY 4.0).

Geliştirici: Cihat Yıldız · @cihatyldz

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

Model tree for cihatyldz/kalbur-reranker

Quantized
(74)
this model

Datasets used to train cihatyldz/kalbur-reranker

Space using cihatyldz/kalbur-reranker 1

Evaluation results

  • nDCG@10 (Temiz) on Pusula quora-tr (bge-m3 top-30)
    self-reported
    0.969
  • nDCG@10 (Mobil) on Pusula quora-tr (bge-m3 top-30)
    self-reported
    0.940
  • nDCG@10 (Temiz) on Pusula fiqa-tr (bge-m3 top-30)
    self-reported
    0.402
  • nDCG@10 (Mobil) on Pusula fiqa-tr (bge-m3 top-30)
    self-reported
    0.337
  • nDCG@10 (Temiz) on Pusula dmm (bge-m3 top-30)
    self-reported
    0.905
  • nDCG@10 (Mobil) on Pusula dmm (bge-m3 top-30)
    self-reported
    0.896
  • nDCG@10 (Temiz) on Pusula arzuhal (bge-m3 top-30)
    self-reported
    0.822
  • nDCG@10 (Mobil) on Pusula arzuhal (bge-m3 top-30)
    self-reported
    0.779