decider-4b-tr: Türkçe kararlar, kalibre olasılıklar, 1 epoch

English summary. A Turkish LoRA fine-tune (rank 64, merged into the bf16 weights) of Mapika/decider-4b v2.1, a 4.2B decision model on Qwen3.5-4B-Base that returns a calibrated probability for every option of typed choice / noul / score questions in one forward pass, without generating text. Trained for one epoch on 63.990 rows of Turkish decision data (machine-translated bev-decision-150K and SQuAD 2.0, native Turkish MASSIVE, XNLI and movie reviews) plus English replay rows trained toward the base model's own answers. On 101.716 held-out test decisions accuracy goes from 0.689 to 0.796, ECE from 0.028 to 0.020; answerability on Turkish SQuAD 2.0 from 0.683 to 0.862 (AUROC 0.809 → 0.940). The independent jev-bench sets are unchanged. FP8 serving (DECIDER_FP8=1) costs no measurable accuracy here.

Bu model, Mapika/decider-4b'nin (v2.1, Apache-2.0) Türkçe karar verisiyle LoRA ince ayarı yapılmış halidir. decider metin üretmez: bir durum (state) ve tipli sorular alır, her sorunun her seçeneği için kalibre edilmiş bir olasılığı tek ileri geçişte döndürür. Sorular Laya ve TypeSafe Jev ile aynı şemadadır:

  • choice: seçeneklerden biri (ör. hangi birim, hangi niyet),
  • noul: bir ifadenin doğru olma olasılığı (evet/hayır),
  • score: sıralı seviyelerden biri (her seviye ayrı bir evet/hayır satırında değerlendirilir).

Kullanım

Çıkarım kodu (decider/) bu repoda; torch, transformers>=5 ve flash-linear-attention gerekir (hız için causal-conv1d önerilir). Ağırlıklar bf16'da 8,4 GB.

import sys
from huggingface_hub import snapshot_download

path = snapshot_download("hayriyigit/decider-4b-tr", token="hf_...")   # private repo: okuma yetkili bir token
sys.path.insert(0, path)
from decider.infer import Decider

d = Decider(path)
state = "Siparişim iki haftadır gelmedi, kargo takip numarası da çalışmıyor. Paramı geri istiyorum."
questions = {
    "birim": {"type": "choice", "instructions": "Bu talebi hangi birim ele almalı?",
              "criteria": {"fatura": "ödeme, iade, fatura", "kargo": "teslimat ve takip", "teknik": "uygulama veya site hataları"}},
    "iade": {"type": "noul", "instructions": "Müşteri para iadesi istiyor."},
    "memnuniyet": {"type": "score", "instructions": "Müşteri ne kadar memnun?",
                   "criteria": ["Çok memnuniyetsiz", "Memnuniyetsiz", "Nötr", "Memnun", "Çok memnun"]},
}
answers = d.system_one(state, questions)["answers"]

Bu modelin bu örnekteki cevabı:

Soru Cevap Olasılık
birim fatura (kargo 0,353) 0,644
iade evet 0,986
memnuniyet Çok memnuniyetsiz (seviye 0) 0,887

"birim" sorusunda model iadeyi öne çıkarıyor: müşteri parasını geri istiyor ve "iade" fatura biriminin açıklamasında geçiyor. İki seçenek de makul olduğunda olasılıklar bunu gösterir (0,64 / 0,35).

FP8: DECIDER_FP8=1 (ya da Engine(path, fp8=True)) büyük lineer katmanları yüklerken e4m3 FP8'e çevirir (ağırlıklar kanal, aktivasyonlar token bazında ölçeklenir); ayrı bir dosya gerekmez. Ayrıntılar aşağıda.

Sıcaklıklar (soru türü başına, decider_config.json) eğitimde görülmemiş Türkçe kararlarda kalibre edildi: choice 0,936, noul 1,146, score 1,093.

Değerlendirme

Test, laya-tr-karar'ın test setinin aynısıdır (101.716 karar): iki model ailesi satır satır karşılaştırılabilir. "Önce" ince ayar öncesi Mapika/decider-4b'dir. Metni bir test satırında da geçen eğitim satırları eğitimden çıkarılmıştı.

Kaynağa göre

Test seti Karar Doğruluk (önce) Doğruluk (sonra) Fark (puan) ECE (önce) ECE (sonra) laya-tr-karar
bev-decision-150K-tr (makine çevirisi) 46.320 0,669 0,838 +16,9 0,027 0,009 0,774
bev-decision-150K, İngilizce orijinal 5.766 0,720 0,754 +3,4 0,021 0,013 0,772
jev-bench-tr (benchmark, makine çevirisi) † 22.773 0,710 0,708 −0,2 0,031 0,051 0,496
jev-bench, İngilizce orijinal † 2.000 0,768 0,770 +0,2 0,034 0,035 0,584
MASSIVE tr-TR (ana dili Türkçe) 2.974 0,829 0,871 +4,2 0,036 0,036 0,773
XNLI Türkçe test (insan çevirisi) 5.010 0,813 0,832 +1,9 0,036 0,015 0,733
beyazperde film yorumları (ana dili Türkçe) 5.000 0,520 0,634 +11,3 0,050 0,040 0,533
SQuAD 2.0 dev, cevaplanabilirlik (makine çevirisi) 11.873 0,683 0,862 +17,9 0,049 0,017 0,703
Hepsi 101.716 0,689 0,796 +10,7 0,028 0,020 0,686

† Train bölümü eğitimde kullanılmayan, bağımsız test setleri. Diğerlerinin train bölümlerinden eğitime satır girdi (test satırları hariç).

Soru türüne göre

Tür Karar Doğruluk (önce) Doğruluk (sonra) ECE (önce) ECE (sonra)
choice 39.616 0,717 0,814 0,056 0,021
noul 39.371 0,783 0,875 0,007 0,018
score 22.729 0,478 0,630 0,032 0,024

Cevaplanabilirlik (SQuAD 2.0 dev, Türkçe)

Soru: "Verilen document, question sorusunun TÜM kısımlarını doğru ve eksiksiz şekilde cevaplamak için yeterli bilgiyi açıkça içeriyor mu? …" (noul), state {"question": …, "document": …}; 11.873 soru, yarısı cevaplanamaz.

Model Doğruluk AUROC Cevaplanabilirde doğru Cevaplanamazda doğru
decider-4b (önce) 0,683 0,809 0,918 0,439
decider-4b-tr 0,862 0,940 0,938 0,783

Konusu aynı ama istenen bilgiyi içermeyen belgeler, P(evet):

Belge ("Türksat 6A hangi tarihte uzaya fırlatıldı?") laya-tr-karar decider-4b (önce) decider-4b-tr
Belgedeki tarih başka bir olaya (bir toplantıya) ait 0,920 0,354 0,025
Belgede hiç tarih yok 0,917 0,066 0,027
Fırlatma tarihi yazıyor 0,919 0,926 0,996

Nasıl okunmalı

  • Kazancın çoğu eğitim verisinin geldiği kaynaklarda: bev-tr, SQuAD-tr, beyazperde, MASSIVE ve XNLI. Bağımsız jev-bench setleri (†) yerinde kaldı (0,710 → 0,708); yani model bu veri ailelerini öğrendi, genel bir "Türkçe karar" sıçraması ölçülmedi.
  • İngilizce unutulmadı: İngilizce bev doğruluğu arttı, İngilizce jev-bench aynı kaldı.
  • Kalibrasyon zaten iyiydi ve iyi kaldı: toplam ECE 0,028 → 0,020. noul'da biraz kötüleşti (0,007 → 0,018).
  • Kötüleşen jev-bench alt setleri: civil_comments −7,5, sst5 −4,9, strategyqa_grounded −3,6, helpsteer2_helpfulness −2,9, sms_spam −1,7, mmlu −1,6, ledgar −1,6, arc_challenge −1,1, strategyqa_closed −1,0 puan. Nedeni ayrıca incelenmedi.
  • laya-tr-karar ile: bu model 14 kat büyük ve İngilizce bev dışında her kaynakta onun üzerinde; özellikle bağımsız jev-bench'te (Laya 0,496) ve kalibrasyonda (Laya ECE 0,083). Laya çok daha hızlıdır: aynı test setini aynı GPU'da Laya ~2 dakikada, bu model ~1 saatte (eager, CUDA graph'sız) değerlendirdi.

bev-decision alanları (Türkçe test)

Alan Karar Doğruluk (önce) Doğruluk (sonra)
Sentiment, emotion, and moderation 11.526 0,727 0,865
Spatial and logical reasoning 8.384 0,508 0,783
Retail, product, and shopping 6.601 0,695 0,936
Response preference and quality 3.176 0,511 0,638
Support and intent routing 2.858 0,866 0,971
Tool and workflow decisions 2.307 0,952 0,987
Software security 2.240 0,516 0,688
Game-state decisions 2.039 0,701 0,879
Software engineering and code 2.039 0,671 0,723
Financial reporting and banking 1.740 0,573 0,826
Reading comprehension 1.422 0,860 0,864
Scientific and paper understanding 508 0,671 0,835
Contract evidence 320 0,700 0,838
Browser interaction 286 0,762 0,850
Spam detection 271 0,985 0,978
Civic and safety operations 261 0,460 0,770
Sensory quality rating 260 0,269 0,400
Engagement and ranking 82 0,573 0,646

jev-bench-tr alt setleri (bağımsız)

Alt set Karar Doğruluk (önce) Doğruluk (sonra) Fark (puan)
arc_challenge 1.000 0,844 0,833 −1,1
banking77 1.000 0,786 0,810 +2,4
boolq 1.000 0,862 0,877 +1,5
chaosnli 1.599 0,594 0,637 +4,4
civil_comments 2.000 0,938 0,863 −7,5
clinc150 1.000 0,877 0,873 −0,4
fever_evidence 1.000 0,909 0,926 +1,7
go_emotions 1.000 0,486 0,496 +1,0
helpsteer2_helpfulness 1.000 0,432 0,403 −2,9
helpsteer2_verbosity 1.000 0,668 0,661 −0,7
ledgar 1.000 0,694 0,678 −1,6
massive 1.000 0,832 0,867 +3,5
measuring_hate_speech 1.000 0,460 0,534 +7,4
mmlu 1.000 0,631 0,615 −1,6
mnli 1.000 0,821 0,832 +1,1
paws 1.000 0,665 0,694 +2,9
sms_spam 800 0,976 0,959 −1,7
sst5 1.000 0,477 0,428 −4,9
strategyqa_closed 687 0,553 0,543 −1,0
strategyqa_grounded 687 0,841 0,805 −3,6
stsb 1.000 0,509 0,510 +0,1
yelp5 1.000 0,652 0,643 −0,9

FP8

Aynı 13.371 test kararında (rastgele 10.000 satır), RTX 5090:

bf16 FP8 (DECIDER_FP8=1)
Doğruluk 0,797 0,796
ECE 0,021 0,021
NLL 0,522 0,524
İstek başına gecikme, medyan (CUDA graph + torch.compile) 23,5 ms 14,7 ms

FP8 doğruluğa ölçülebilir bir maliyet getirmedi; medyan gecikme %37 düştü. Gecikme 300 gerçek test isteğinde, istekler tek tek gönderilerek ölçüldü. Bu isteklerin uzunlukları farklı olduğu için yeni şekillerde CUDA graph yakalaması da ölçüme girdi: %90'lık gecikme (83,2 / 90,2 ms) ve toplam hız bu yüzden temsil edici değildir. Toplu (batch) sunumda hız ölçülmedi.

Eğitim

Kaynak Satır
bev-decision-150K-tr train (alan ağırlıklı, örtüşmesi temizlenmiş) 27.000
SQuAD 2.0-tr train (cevaplanabilirlik) 20.000
MASSIVE tr-TR train 5.000
beyazperde train 5.000
XNLI Türkçe validation 2.490
bev-decision-150K train, İngilizce (replay) 6.000

Satırlar laya-tr-karar'ın veri hazırlığından alındı. 1.500 Türkçe satır (metne göre gruplanmış) doğrulama ve sıcaklık kalibrasyonu için ayrıldı; kalan 63.990 satırdan decider'ın kendi prompt koduyla 169.657 prompt satırı çıktı (56.858.516 token): her soru ayrı satırda, her score seviyesi ayrı bir evet/hayır satırında, seçenek sırası karıştırılarak.

Taban model Mapika/decider-4b v2.1 (eb5fbdf), Qwen3.5-4B-Base
Yöntem LoRA rank 64, alpha 128; attention (q/k/v/o, linear attention in_proj_qkv/in_proj_z/out_proj) ve MLP (gate/up/down); 121,9M eğitilen parametre; eğitimden sonra bf16 ağırlıklara birleştirildi
Kayıp Türkçe satırlarda gold dağılımına cross-entropy; İngilizce satırlarda donuk taban modelin kendi cevap dağılımına (KL), decider-4b v2.1'in unutmaya karşı tarifi
Program 1 epoch, 786 adım × 65.536 token; öğrenme hızı 1e-4, %5 ısınma, cosine; AdamW, gradient clip 1,0
Donanım ve süre 1 × RTX 5090 (32 GB), bf16, gradient checkpointing, causal-conv1d ile; eğitim 3 sa 56 dk (~4.400 token/s)
Doğrulama (eğitim sonu) 3.826 satırda slot doğruluğu 0,891, cross-entropy 0,260
Sıcaklık decider.calibrate.fit_by_type, 2.118 ayrılmış Türkçe cevapta: choice 0,936, noul 1,146, score 1,093

Eğitim ve değerlendirme kayıtları (config, eğitim kaydı, önce/sonra raporları, FP8 ölçümleri) training/ klasöründe.

Sınırlamalar

  • Eğitim verisinin çoğu makine çevirisidir; bağımsız Türkçe testlerde (jev-bench) iyileşme görülmedi.
  • Kalibrasyon Türkçe veriyle yapıldı; farklı bir alanda kullanmadan önce eşikleri kendi verinizle kontrol edin.
  • Taban modelin sınırlamaları geçerlidir (bkz. decider-4b kartı): RL aşaması yok, zor çok adımlı sorularda fazla emin olabilir.
  • Yalnızca Türkçe ve İngilizce değerlendirildi.
  • FP8 hızı yalnızca tek tek isteklerde, medyan gecikme olarak ölçüldü.

Lisans

Taban model Apache-2.0'dır. Eğitim verilerinin lisansları farklıdır; ayrıntılar LICENSE.md'de.

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

Model tree for hayriyigit/decider-4b-tr

Adapter
(1)
this model

Datasets used to train hayriyigit/decider-4b-tr