--- language: - tr - en license: other license_name: mixed-training-data license_link: LICENSE.md base_model: convaiinnovations/laya-multilingual pipeline_tag: text-classification library_name: laya tags: - laya - decision-model - calibration - turkish - choice - noul - score datasets: - hayriyigit/bev-decision-150K-tr - avbiswas/bev-decision-150K - mteb/amazon_massive_intent - facebook/xnli - turkish-nlp-suite/beyazperde-all-movie-reviews - hayriyigit/jev-bench-tr - hayriyigit/squad_v2-tr - rajpurkar/squad_v2 --- # Laya TR v2: Türkçe karar modeli (cevaplanabilirlik eklendi) **English summary.** A Turkish fine-tune of [`convaiinnovations/laya-multilingual`](https://huggingface.co/convaiinnovations/laya-multilingual), the non-autoregressive "System 1" decision model of [Laya](https://github.com/NandhaKishorM/laya): it answers typed `choice`, `noul` (yes/no) and `score` questions about a text in a single forward pass and returns calibrated probabilities. Trained for 2 epochs on 305,812 decisions (machine-translated bev-decision-150K, its English originals, machine-translated SQuAD 2.0 for answerability, and native Turkish MASSIVE, XNLI and movie reviews). On 101,716 held-out test decisions accuracy goes from 0.443 to 0.686 and ECE from 0.282 to 0.083. Compared with [`hayriyigit/laya-tr-test`](https://huggingface.co/hayriyigit/laya-tr-test), answerability on the Turkish SQuAD 2.0 dev set (can the document answer the question?) improves from 0.565 to 0.703 accuracy (AUROC 0.596 → 0.794); the other test sets stay within about one point. Bu model, [Laya](https://github.com/NandhaKishorM/laya)'nın çok dilli kontrol noktası [`convaiinnovations/laya-multilingual`](https://huggingface.co/convaiinnovations/laya-multilingual) (mmBERT tabanlı) üzerine Türkçe karar verisiyle fine-tune edilmiş halidir. [`hayriyigit/laya-tr`](https://huggingface.co/hayriyigit/laya-tr)'in ikinci sürümüdür: aynı veriye SQuAD 2.0'ın Türkçe çevirisi eklendi, böylece model bir belgenin bir soruyu gerçekten cevaplayıp cevaplayamadığına (cevaplanabilirlik) daha iyi karar veriyor. Laya metin üretmez: bir metin (state) ve tipli sorular alır, her soru için tek forward pass'te kalibre edilmiş olasılıklar döndürür. - **choice:** seçeneklerden biri (ör. hangi departman, hangi niyet), - **noul:** bir ifadenin doğru olma olasılığı (evet/hayır), - **score:** sıralı seviyelerden biri (ör. 1-5 memnuniyet). ## Kullanım ```python import laya agent = laya.load("hayriyigit/laya-tr-karar") 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 = agent.predict(state, questions)["answers"] ``` Bu modelin bu örnekteki cevabı: | Soru | Cevap | Olasılık | |---|---|---:| | birim | `kargo` | 0,958 | | iade | evet | 0,909 | | memnuniyet | Çok memnuniyetsiz (seviye 0) | 0,791 | Her cevapta tüm seçeneklerin olasılıkları (`probabilities`) ve threshold koymak için `answer_confidence` da döner. Soru başına bağlam 8.192 token (soru ve seçenekler için 768); kısa girdiler yalnızca kendi uzunlukları kadar işlenir. Temperature değerleri (choice, score, noul) eğitimde görülmemiş Türkçe kararlarda kalibre edildi: 0,898, 1,078, 0,950. ## Değerlendirme Test kararlarının hiçbiri eğitimde görülmedi; metni bir test satırında da geçen eğitim satırları, İngilizce orijinaller üzerinden eşleştirilerek eğitimden çıkarıldı (aşağıda). "Önce" sütunu fine-tune öncesi `laya-multilingual`'dır. ### Kaynağa göre | Test seti | Karar | Doğruluk (önce) | Doğruluk (sonra) | Fark (puan) | ECE (önce) | ECE (sonra) | |---|---:|---:|---:|---:|---:|---:| | bev-decision-150K-tr test (makine çevirisi) | 46.320 | 0,444 | **0,774** | +33,1 | 0,275 | **0,049** | | bev-decision-150K test, İngilizce orijinal | 5.766 | 0,473 | **0,772** | +29,9 | 0,243 | **0,068** | | jev-bench-tr (benchmark, makine çevirisi) | 22.773 | 0,402 | **0,496** | +9,4 | 0,295 | **0,175** | | jev-bench, İngilizce orijinal | 2.000 | 0,499 | **0,584** | +8,4 | 0,246 | **0,109** | | MASSIVE tr-TR (ana dili Türkçe) | 2.974 | 0,353 | **0,773** | +42,0 | 0,286 | **0,069** | | XNLI Türkçe test (insan çevirisi) | 5.010 | 0,691 | **0,733** | +4,2 | 0,212 | **0,097** | | beyazperde film yorumları (ana dili Türkçe) | 5.000 | 0,180 | **0,533** | +35,4 | 0,330 | **0,119** | | SQuAD 2.0 dev, cevaplanabilirlik (makine çevirisi) | 11.873 | 0,520 | **0,703** | +18,3 | 0,319 | **0,133** | | **Hepsi** | **101.716** | 0,443 | **0,686** | +24,3 | 0,282 | **0,083** | ### Soru türüne göre | Tür | Karar | Doğruluk (önce) | Doğruluk (sonra) | ECE (önce) | ECE (sonra) | |---|---:|---:|---:|---:|---:| | choice | 39.616 | 0,448 | **0,660** | 0,247 | **0,098** | | noul | 39.371 | 0,575 | **0,797** | 0,292 | **0,060** | | score | 22.729 | 0,204 | **0,538** | 0,325 | **0,108** | ### 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; dev ile train farklı Vikipedi makalelerinden gelir. | Model | Doğruluk | AUROC | Cevaplanabilirde doğru | Cevaplanamazda doğru | Ort. P(evet): cevaplanabilir / cevaplanamaz | |---|---:|---:|---:|---:|---:| | Temel model | 0,520 | 0,540 | 0,858 | 0,182 | 0,785 / 0,749 | | laya-tr-test (v1) | 0,565 | 0,596 | 0,473 | 0,657 | 0,496 / 0,401 | | **Bu model (v2)** | 0,703 | 0,794 | 0,869 | 0,537 | 0,783 / 0,465 | Model artık iki tür soruyu ayırt ediyor, ama hâlâ kolay "evet" diyor: cevaplanamaz soruların yaklaşık yarısını yakalıyor. Threshold 0,5 yerine 0,790 alınırsa doğruluk 0,722 olur. Cevaplanabilirlik kararlarında yüksek bir threshold kullanın. ### Önceki sürümle karşılaştırma | Test seti | Doğruluk (v1) | Doğruluk (v2) | ECE (v1) | ECE (v2) | |---|---:|---:|---:|---:| | bev-decision-150K-tr test (makine çevirisi) | 0,771 | 0,774 | 0,031 | 0,049 | | bev-decision-150K test, İngilizce orijinal | 0,775 | 0,772 | 0,036 | 0,068 | | jev-bench-tr (benchmark, makine çevirisi) | 0,490 | 0,496 | 0,171 | 0,175 | | jev-bench, İngilizce orijinal | 0,578 | 0,584 | 0,105 | 0,109 | | MASSIVE tr-TR (ana dili Türkçe) | 0,781 | 0,773 | 0,063 | 0,069 | | XNLI Türkçe test (insan çevirisi) | 0,738 | 0,733 | 0,095 | 0,097 | | beyazperde film yorumları (ana dili Türkçe) | 0,531 | 0,533 | 0,067 | 0,119 | | SQuAD 2.0 dev, cevaplanabilirlik (makine çevirisi) | – | 0,703 | – | 0,133 | v1'in test setinde SQuAD yoktu; SQuAD için v1 değeri yukarıdaki tablodadır (aynı soru ve aynı dev seti). Toplam ECE v1'de 0,070, v2'de 0,083: temperature değerleri yalnızca 1.571 kararlık bir validation split'inde ayarlandığı için sonuç gürültülüdür; en çok `score` sorularının kalibrasyonu kötüleşti. ### Nasıl okunmalı - **Kalibrasyon** en büyük kazanç: ECE 0,282 → 0,083. Modelin verdiği olasılıklar threshold koymak için kullanılabilir hale geldi. - **İngilizce unutulmadı**: eğitime İngilizce orijinallerin ~%25'i karıştırıldı; bev ve jev-bench'in İngilizce testlerinde de doğruluk arttı. Diğer diller ölçülmedi. - **En bağımsız sinyal XNLI** (+4,2 puan): ayrı kaynaklı, insan çevirisi bir test. MASSIVE ve beyazperde'deki büyük artışlar kısmen bu kaynakların train bölümlerinin eğitimde olmasından gelir. - **noul doğruluğu** (0,797) v1'deki değerden (0,823) düşük görünür; nedeni test setine SQuAD'ın zor cevaplanabilirlik sorularının eklenmesidir, iki değer aynı test setinden gelmez. - **Bazı jev-bench alt setleri kötüleşti:** civil_comments −5,7 puan. Nedeni ayrıca incelenmedi. - **jev-bench** bev ile aynı görev ailelerinden (ör. MASSIVE, CLINC150, SST-5, BoolQ) beslenir; birebir aynı metinler çıkarıldı, ama tamamen bağımsız bir test değildir. ### bev-decision alanları (Türkçe test) | Alan | Karar | Doğruluk (önce) | Doğruluk (sonra) | ECE (sonra) | |---|---:|---:|---:|---:| | Sentiment, emotion, and moderation | 11.526 | 0,616 | **0,860** | 0,052 | | Spatial and logical reasoning | 8.384 | 0,321 | **0,596** | 0,063 | | Retail, product, and shopping | 6.601 | 0,288 | **0,929** | 0,067 | | Response preference and quality | 3.176 | 0,321 | **0,561** | 0,071 | | Support and intent routing | 2.858 | 0,678 | **0,969** | 0,053 | | Tool and workflow decisions | 2.307 | 0,769 | **0,984** | 0,063 | | Software security | 2.240 | 0,417 | **0,666** | 0,080 | | Game-state decisions | 2.039 | 0,345 | **0,858** | 0,066 | | Software engineering and code | 2.039 | 0,322 | **0,608** | 0,141 | | Financial reporting and banking | 1.740 | 0,166 | **0,603** | 0,031 | | Reading comprehension | 1.422 | 0,628 | **0,712** | 0,123 | | Scientific and paper understanding | 508 | 0,374 | **0,848** | 0,058 | | Contract evidence | 320 | 0,334 | **0,725** | 0,080 | | Browser interaction | 286 | 0,273 | **0,724** | 0,133 | | Spam detection | 271 | 0,550 | **0,956** | 0,079 | | Civic and safety operations | 261 | 0,253 | **0,628** | 0,092 | | Sensory quality rating | 260 | 0,073 | **0,454** | 0,091 | | Engagement and ranking | 82 | 0,524 | **0,622** | 0,202 | ### jev-bench-tr alt setleri | Alt set | Karar | Doğruluk (önce) | Doğruluk (sonra) | |---|---:|---:|---:| | arc_challenge | 1.000 | 0,251 | **0,249** | | banking77 | 1.000 | 0,270 | **0,319** | | boolq | 1.000 | 0,687 | **0,711** | | chaosnli | 1.599 | 0,478 | **0,546** | | civil_comments | 2.000 | 0,913 | **0,857** | | clinc150 | 1.000 | 0,249 | **0,390** | | fever_evidence | 1.000 | 0,551 | **0,813** | | go_emotions | 1.000 | 0,277 | **0,307** | | helpsteer2_helpfulness | 1.000 | 0,148 | **0,164** | | helpsteer2_verbosity | 1.000 | 0,211 | **0,214** | | ledgar | 1.000 | 0,087 | **0,092** | | massive | 1.000 | 0,376 | **0,775** | | measuring_hate_speech | 1.000 | 0,315 | **0,563** | | mmlu | 1.000 | 0,274 | **0,267** | | mnli | 1.000 | 0,719 | **0,757** | | paws | 1.000 | 0,526 | **0,541** | | sms_spam | 800 | 0,326 | **0,956** | | sst5 | 1.000 | 0,283 | **0,385** | | strategyqa_closed | 687 | 0,517 | **0,511** | | strategyqa_grounded | 687 | 0,546 | **0,547** | | stsb | 1.000 | 0,157 | **0,242** | | yelp5 | 1.000 | 0,189 | **0,422** | banking77 (77) ve clinc150 (150 seçenek) gibi çok seçenekli sorularda seçenekler 768 tokenlık soru bütçesine sığmak için kısalır; bu, Laya'nın bilinen bir sınırıdır ([#394](https://github.com/NandhaKishorM/laya/issues/394)). ### Eğitim sırasında validation Eğitimden ayrılan, metne göre gruplanmış 1.571 Türkçe karar (temperature kalibrasyonu öncesi): | Epoch | Doğruluk | NLL | Brier | ECE | |---:|---:|---:|---:|---:| | 1 | 0,803 | 0,504 | 0,273 | 0,051 | | 2 | 0,809 | 0,507 | 0,273 | 0,053 | İkinci epoch çok az katkı verdi; daha fazla epoch önerilmez. ## Eğitim verisi | Kaynak | Satır | Karar | choice / noul / score | |---|---:|---:|---| | bev-decision-150K-tr train (Türkçe, makine çevirisi) | 102.782 | 206.164 | 69.040 / 89.653 / 47.471 | | bev-decision-150K train, İngilizce orijinal (Türkçe satırların ikizleri) | 34.261 | 69.158 | 22.610 / 30.587 / 15.961 | | MASSIVE tr-TR train (ana dili Türkçe) | 5.000 | 5.000 | 5.000 / 0 / 0 | | XNLI Türkçe validation (insan çevirisi) | 2.490 | 2.490 | 2.490 / 0 / 0 | | beyazperde film yorumları train (ana dili Türkçe) | 5.000 | 5.000 | 0 / 0 / 5.000 | | SQuAD 2.0-tr train, cevaplanabilirlik (makine çevirisi, 130K satırdan sample) | 20.000 | 20.000 | 0 / 20.000 / 0 | | **Toplam** | **169.533** | **307.812** | | Bunlardan metne göre gruplanmış 1.571 Türkçe karar doğrulama ve kalibrasyon için ayrıldı; bu kararların İngilizce ikizleri de eğitimden çıkarıldı. Eğitimde 305.812 karar kullanıldı. - **Hedefler:** Label'lar sorulardan çıkarılıp target dağılımlarına çevrildi. Hard label'lara 0,1 label smoothing uygulandı (doğru cevaba 0,9; `score` sorularında kalan pay komşu seviyelere). Laya'nın eğitim yöntemi (RLCD) bu dağılımları hedefler. - **Alan dengesi:** Türkçenin sinyal taşımadığı ya da etiketlerin gürültülü olduğu bev alanlarından eğitim satırlarının bir kısmı tutuldu: | Alan | Tutulan oran | Çıkarılan satır | |---|---:|---:| | Software engineering and code | 0,3 | 4.376 | | Spatial and logical reasoning | 0,3 | 11.581 | | Browser interaction | 0,3 | 3.202 | | Engagement and ranking | 0,2 | 3.318 | - **Decontamination:** Bir test satırında da geçen metni içeren eğitim satırları çıkarıldı: | Eğitim kaynağı | Test kaynağı | Çıkarılan eğitim satırı | |---|---|---:| | bev-decision-tr | jev-bench-tr | 337 | | bev-decision-tr | beyazperde | 6 | | bev-decision-tr | SQuAD-tr | 2 | | bev-decision-tr | MASSIVE tr-TR | 10 | | MASSIVE tr-TR | bev-decision-tr | 477 | | MASSIVE tr-TR | jev-bench-tr | 16 | | MASSIVE tr-TR | MASSIVE tr-TR | 16 | | beyazperde | beyazperde | 76 | - **Context budget:** Hiçbir eğitim kararı 8.192 tokena sığmadığı ya da doğru seçeneği kısaltılınca başka bir seçenekle aynı göründüğü için çıkarılmadı. Eğitim kararlarının token uzunluğu: medyan 188, %90 521, %99 1.474, en fazla 7.430. bev-decision-150K'nın Türkçesi bir LLM ile alan bazında çevrildi; kod blokları, tanımlayıcılar, URL'ler ve Mind2Web sayfa öğeleri İngilizce bırakıldı. Ayrıntılar: [hayriyigit/bev-decision-150K-tr](https://huggingface.co/datasets/hayriyigit/bev-decision-150K-tr). SQuAD 2.0'ın yalnızca paragraf ve soruları çevrildi; etiket `answers`'ın boş olup olmamasından gelir. Ayrıntılar: [hayriyigit/squad_v2-tr](https://huggingface.co/datasets/hayriyigit/squad_v2-tr). ## Eğitim | | | |---|---| | Base model | `convaiinnovations/laya-multilingual` (mmBERT-base encoder + Laya decision head) | | Yöntem | Laya'nın RLCD tarifi: gürültülü logit örnekleri üzerinde proper scoring ödülüyle policy gradient + yumuşak cross-entropy | | Epoch / güncelleme | 2 / 19.114 (her güncellemede 32 karar) | | Learning rate | encoder 1e-5, decision head 1e-4; AdamW, cosine | | Hassasiyet | bf16, gradient checkpointing | | Bağlam | max_len 8.192, head_max_len 768 | | Donanım ve süre | 1 × NVIDIA GeForce RTX 5090 (32 GB); eğitim ~1 sa 34 dk, veri hazırlığı ve değerlendirmeyle ~1 sa 42 dk | | Yazılım | torch 2.14.1, transformers 5.18.0, laya 0.3.24 (commit `fa9a2a7`) | Eğitim config'i, eğitim kaydı ve veri manifest'i [`training/`](training/) klasöründe; tüm metrikler `eval_report.json`'da. ## Sınırlamalar - Eğitim verisinin çoğu **makine çevirisidir**; model çeviri dilinin izlerini taşıyabilir. Ana dili Türkçe veri sınırlıdır (~12 bin satır). - Kod, teknik tanımlayıcılar ve web sayfası öğeleri eğitimde İngilizce kaldı; bu tür girdilerde karışık dil beklenir. - Yalnızca Türkçe ve İngilizce değerlendirildi; diğer dillerdeki performans fine-tune öncesine göre düşmüş olabilir. - Kalibrasyon Türkçe veriyle yapıldı; farklı bir alanda kullanmadan önce kendi verinizle threshold'ları kontrol edin. - 77'den fazla seçenekli sorularda seçenek açıklamaları kısalır. - **Cevaplanabilirlik:** Konusu soruyla aynı olan ama istenen bilgiyi hiç içermeyen belgelerde model hâlâ yüksek olasılıkla "evet" diyebilir. Örneğin "Türksat 6A hangi tarihte fırlatıldı?" sorusuna, fırlatma tarihini içermeyen ya da yalnızca başka bir olayın tarihini içeren Türksat belgeleri için ~0,92 verir. Bu tür kararları tek başına bu modele bırakmayın. ## Lisans Base model Apache-2.0'dır. Eğitim verilerinin lisansları farklıdır; ayrıntılar [`LICENSE.md`](LICENSE.md)'de. Ticari kullanımdan önce kontrol edin.