Lavoir

GitHub Blog Dataset English model Buy Me a Coffee

English · Türkçe

Lavoir-TR

A Turkish decision model that knows which question to ask.

Lavoir-TR is the Turkish version of Lavoir, built on MoganBERT-TR. It reads a conversation, a typed question (which unit? yes or no? how severe?) and a list of things it could still ask. In one forward pass it returns calibrated probabilities for the options and, for every candidate question, its value of information (VOI): how much the probability of the right answer is expected to rise if that question is asked. One rule turns this into behaviour: ask the most valuable question while it is worth it, then decide or hand off to a human.

caller     Merhaba, aramamda yardımcı olabilir misiniz?
           ("Hello, can you help me with my call?")

           emeklilik 0.249   rapor_ödeme 0.217   işveren_hizmetleri 0.199   genel_sağlık 0.197   prim_borç 0.137
VOI        konu 0.297   başvuran 0.166   prim_borcu 0.037   sigortalılık_türü 0.023   arayan_adı 0.003

Lavoir     Hangi konuda yardım almak istiyorsunuz?                              (VOI 0.297)
caller     Sağlık hizmeti konusunda yardım almak istiyorum.
Lavoir     Kendi adınıza mı arıyorsunuz, yoksa bir işveren adına mı?            (VOI 0.336)
caller     Bir işveren adına arıyorum.

decision   işveren_hizmetleri (p = 1.000)

A call to the Turkish Social Security Institution (SGK) help line. From the first message alone the best guess would have been emeklilik (pensions), which is wrong. After the first answer three units are still close, so the second question is worth more than the first was. The caller's name never gets asked: it cannot change the decision.

Asks like an oracle on 11 Turkish workflows its question-asking curve matches an oracle that knows the exact routing rules (AUC .788 vs .782)
Asks little, gains a lot with at most 0.5 questions per conversation, 75% correct against 59% without asking
Strong zero-shot classifier ahead of Laya-multilingual on 7 of 8 Turkish TabiBench tasks neither model saw (mean accuracy .553 vs .452)
Calibrated lower calibration error than Laya-multilingual on 23 of 25 Turkish single-turn tasks

Quick start

pip install git+https://github.com/moganai/lavoir.git   # installs laya, torch, transformers
from lavoir import Lavoir

model = Lavoir.from_pretrained("moganai/lavoir-tr")     # or a local copy of this repository

question = {"type": "choice", "instructions": "Bu arayanın talebiyle hangi SGK birimi ilgilenmeli?",
            "criteria": {
                "emeklilik": "emeklilik birimi: emeklilik başvurusu, emeklilik hesaplama ve aylık bağlama",
                "genel_sağlık": "genel sağlık sigortası: hastanede ya da eczanede sağlık hizmeti alamama ve provizyon sorunları",
                "prim_borç": "prim ve borç birimi: prim borcu yüzünden durdurulan emeklilik ya da sağlık hizmetleri, borç yapılandırma ve ödeme",
                "rapor_ödeme": "rapor ödemeleri: iş göremezlik ödeneği (rapor parası) ve iş kazası ödemeleri",
                "işveren_hizmetleri": "işveren hizmetleri: işe giriş ve işten çıkış bildirgeleri, aylık prim ve hizmet belgeleri"}}
slots = {"konu": {"description": "talebin konusu",
                  "question": "Hangi konuda yardım almak istiyorsunuz?"},
         "başvuran": {"description": "kişinin kendi adına mı yoksa bir işveren adına mı aradığı",
                      "question": "Kendi adınıza mı arıyorsunuz, yoksa bir işveren adına mı?"},
         "prim_borcu": {"description": "kişinin ödenmemiş prim borcu olup olmadığı",
                        "question": "Ödenmemiş prim borcunuz var mı?"}}
state = [{"role": "user", "text": "Merhaba, aramamda yardımcı olabilir misiniz?"}]

pred = model.predict(state, question, slots)
pred.probabilities        # {"emeklilik": 0.25, "rapor_ödeme": 0.22, ...}
pred.voi                  # {"konu": 0.30, "başvuran": 0.17, "prim_borcu": 0.04}

step = model.next_action(state, question, slots, ask_threshold=0.05)
step.action, step.question   # ("ask", "Hangi konuda yardım almak istiyorsunuz?")
  • state: a string, a dict of named fields, or a list of turns ("user" for the customer, "system" for the assistant's questions).
  • question: Laya's typed format: choice with {option: description}, noul (yes/no), score (ordered levels). It also works without slots, as a plain calibrated classifier.
  • slots: the information still missing. Remove a slot once it has been asked.
  • ask_threshold=0.05 asks while a question is expected to raise p(correct) by at least 5 points. Add handoff_threshold=0.3 to hand off when the best option stays below 70%.
  • Write instructions, options and slots in Turkish. The model also saw some English data and keeps working in English, but the English Lavoir is the better choice for English.

How it works

[CLS] choice question: <instruction> [SEP]
[MASK] <option 1>: <description>  [MASK] <option 2>: ...  [SEP]
missing information: [MASK] <slot 1>: <description>  [MASK] <slot 2>: ...  [SEP]
<conversation> [SEP]
  • Decision head (from Laya): each option marker is scored; a softmax with a fitted temperature gives the probabilities. Without slots, the input is exactly Laya's format.
  • VOI head: each slot marker's hidden state, together with summary features of the decision distribution, goes through a small MLP. Its output is bounded by the decision's Gini impurity, VOI = (1 - Σp²) · sigmoid(h), so a confident model structurally does not ask.
  • Training target for slot k: p_k(correct) − p_0(correct), the change in the model's probability for the correct option after the question of slot k and one realistic answer are appended. The head learns the expectation of this quantity over answers.
  • Rule: ask argmax VOI while it exceeds ask_threshold; then decide argmax p, or hand off if 1 − max p > handoff_threshold.

The architecture and training recipe are identical to the English Lavoir; only the encoder (MoganBERT-TR, 149M parameters) and the data are different.

Evaluation

All numbers are on data that was not used for training.

Asking the right question

11 Turkish customer-service workflows with held-out conversations: banking, municipal applications, IT help desk, e-Devlet (e-government portal), e-commerce returns, HR, KVKK (personal-data) requests, telecom, travel changes, SGK (social security) and insurance claims. 5 further workflows were never seen in training: electricity distribution, parcel delivery, clinic routing, software support and student affairs. Every conversation has a known correct unit and every question a realistic answer, so any policy can be replayed. The oracle knows each workflow's exact rules and priors and computes the true expected VOI.

Accuracy vs. questions asked

Each line is one strategy for deciding when and what to ask, replayed on the same conversations. Lavoir-TR (orange) climbs as fast as the oracle on the seen workflows. The dotted grey line is Laya-multilingual given the oracle's questions and the same answers: it cannot choose questions itself, and it makes little use of the answers.

policy AUC, seen accuracy at ≤ 0.5 questions, seen AUC, unseen accuracy at ≤ 0.5 questions, unseen
never ask .589 .589 .448 .448
random question when unsure .745 .673 .507 .484
conformal set > 1, ask the VOI question .772 .589 .527 .448
Lavoir-TR .788 .752 .543 .526
oracle VOI (exact, greedy) .782 .758 .555
Laya-multilingual, given the oracle's questions .393 .389 .399 .326

AUC: normalized area under the accuracy-vs-questions curve from 0 to 2 questions per conversation. The oracle is greedy (one question ahead) and decides with Lavoir's decision head, so Lavoir can come out slightly above it.

on the 11 seen workflows
first-message accuracy vs. Bayes ceiling .631 vs .655 (ECE .028): no leakage; 2.4 points below the ceiling
VOI vs. oracle VOI Spearman .83; same best question 92% of the time
ask_threshold = 0.05 1.09 questions per conversation, accuracy .589 → .874, 4.6% of questions redundant
ask_threshold = 0.02 + handoff_threshold = 0.3 18% handed off, accuracy .951 on the rest

On the 5 unseen workflows Lavoir-TR still beats the baselines, but the decision itself is weak (first-message accuracy .451 against a ceiling of .678) and one workflow (electricity distribution) is clearly harder than the others. Fine-tune on your own workflow before relying on it; the code repository has scripts for this.

Laya-multilingual on the same workflows. Laya cannot ask; with its recommended rule (hand off when confidence < 0.85) it hands 70% of first messages to a human and is right on 42% of the rest. Given the oracle's two best questions and the answers, its accuracy rises only from .32 to .42, against .875 for Lavoir-TR. Laya never saw these workflows, so this is not a like-for-like decision comparison; it shows what choosing the question and using the answer are worth.

Zero-shot Turkish benchmarks (TabiBench)

The 8 decision tasks of TabiBench that neither model saw in training (test splits, up to 1,000 cases per task, the same Turkish prompts and options for both models). TabiBench's own numbers are for models fine-tuned on each task and are not comparable to these zero-shot numbers.

Zero-shot benchmarks

task Lavoir-TR acc / macro-F1 / ECE Laya-multilingual acc / macro-F1 / ECE
News category (News-Cat, 250) .884 / .885 / .082 .772 / .754 / .142
Tweet sentiment (BilTweetNews, 146) .370 / .252 / .390 .445 / .426 / .155
Gender hate speech (normal / offensive / hate) .570 / .471 / .145 .373 / .321 / .269
SICK-TR relatedness (1–5) .312 / .243 / .147, Pearson .548 .247 / .213 / .244, Pearson .452
Medical NLI (Med-NLI-TR) .567 / .568 / .127 .413 / .363 / .331
Citation intent (Sci-Cite-TR) .543 / .542 / .090 .503 / .504 / .225
Sentence role in abstracts (PubMed-RCT-TR) .424 / .359 / .110 .356 / .306 / .255
Thesis field (187 fields, 10 options per case) .754 / .751 / .078 .509 / .488 / .184
mean .553 / .509 .452 / .422
  • Lavoir-TR is ahead on 7 of 8 tasks and better calibrated on 7 of 8.
  • It loses on tweet sentiment (146 cases, including a sarcasm class), where it is also overconfident (ECE .39).
  • Shuffling the options changes 3–22% of its decisions on these unseen tasks; average several orderings if this matters to you.

In-domain Turkish benchmarks

17 tasks whose train splits were part of Lavoir-TR's training data; these are their test splits (or a fixed 20% held out where no test split exists). Laya-multilingual saw none of them, so this table measures what Turkish training data adds, not a like-for-like comparison. The zero-shot table above is the fair one.

In-domain benchmarks

task Lavoir-TR acc / ECE Laya-multilingual acc / ECE
TrGLUE CoLA .523 / .018 .544 / .218
TrGLUE SST-2 .781 / .034 .604 / .216
TrGLUE MRPC .705 / .024 .612 / .264
TrGLUE QQP .883 / .037 .584 / .239
TrGLUE MNLI .771 / .043 .652 / .102
TrGLUE QNLI .839 / .025 .639 / .242
TrGLUE RTE .893 / .029 .897 / .076
TrGLUE STS-B (Pearson) .420 (.776) / .051 .150 (.565) / .323
MASSIVE-tr intent (60) .870 / .042 .603 / .256
Offensive language .889 / .019 .692 / .188
Sentiment (3 classes) .665 / .159 .647 / .095
E-commerce stars (1–5) .567 / .043 .127 / .633
Product reviews .870 / .091 .607 / .191
News topic (TTC4900) .930 / .017 .730 / .195
Spam e-mail .867 / .082 .498 / .503
Fake news (MiDe22) .675 / .073 .359 / .234
Hate speech (SentiTurca) .577 / .104 .346 / .230
mean .749 .547

Speed

One forward pass per decision and no text generation: in batches of 64 on an NVIDIA GH200 (bf16), 1–3 ms per case for short texts and about 6 ms for 1,500-character news articles, with a 149M-parameter encoder.

Training

Same recipe as the English Lavoir:

  1. Decision phase from MoganBERT-TR: 500 head warm-up steps with a frozen encoder, then 4 epochs; global batch 64, encoder LR 2.5e-5, head LR 1e-4, cosine schedule, bf16; soft cross-entropy (Laya's GRPO term switched off).
  2. VOI targets from that snapshot for every candidate question of every workflow example.
  3. Joint phase, 2 epochs: decision loss + MSE on the normalized VOI targets, encoder LR 5e-6, Gini-bounded VOI.
  4. VOI targets refreshed from the joint snapshot, 1 more joint epoch.
  5. Temperatures fitted on a 5% held-out slice: one set for the question-asking workflows, one for general data, one per general source (temperature_by_source in config.json).

129,374 training examples (+6,809 held out); 16 NVIDIA GH200 GPUs, 49 minutes, trained with the public Lavoir code.

Data

part examples sources
Turkish question-asking workflows 43,784 11 synthetic Turkish customer-service workflows: 8 adapted from the English ones and 3 new Turkey-specific ones (e-Devlet, SGK, municipal applications). Routing rules and answer distributions are exact, so every target is the true posterior. Customer messages and answers were written in Turkish by Qwen3.6-35B-A3B and screened by Gemma-4-26B-A4B for leaked information.
Turkish general single-turn 66,935 train splits of TrGLUE (8 tasks), MASSIVE-tr, all-nli-tr, SentiTurca (e-commerce, hate), Turkish sentiment (winvoker), offensive language (Toygar), product reviews (BOUN), KAP financial sentiment, e-commerce intent, Turkish spam e-mail; 80% of TTC4900 and MiDe22 fake news
Turkish tool choice 5,464 Nemotron post-training tool-calling data translated into Turkish (user turns in Turkish, tool definitions in English): choose the tool the assistant actually called
English share 20,000 a sample of the English Lavoir training data (general, tool choice and question-asking workflows), about the English share of MoganBERT-TR's pre-training

No benchmark test split listed above was used for training.

Intended use

  • Routing and triage of Turkish support chats, ticket queues and e-mail, where a wrong route is costly and a short clarifying question is cheap.
  • Deciding whether an assistant should ask before acting, and which of a fixed set of questions to ask.
  • Fast calibrated Turkish single-turn classification: moderation, spam, intent, topic.

Out of scope: generating questions or answers, open-ended dialogue, high-stakes decisions without human review.

Limitations

  • Chooses among the questions you list; it does not write new ones.
  • On seen workflows the first-message decision is 2.4 points below the Bayes ceiling (the English Lavoir reaches it); it does not use every cue in the text.
  • Weak on workflows unlike the training ones (.451 first-message accuracy on unseen workflows). Plan to fine-tune on a few hundred examples of your workflow.
  • Sensitive to option order on unseen tasks (up to 22% of decisions change when options are shuffled).
  • The question-asking workflows are synthetic, and there is no evaluation on real Turkish support conversations yet. Real users phrase things differently and may answer off-topic.

License and attribution

The weights are released under CC BY-NC 4.0 because part of the training data is licensed for non-commercial use only. The code is Apache-2.0.

Lavoir-TR follows Laya (Apache-2.0) in its decision-head architecture, input format and training loss, but uses none of Laya's weights: the decision head and the VOI head were trained from scratch. The encoder was initialized from MoganBERT-TR (Apache-2.0) and trained together with the heads.

Citation

@misc{yilmaz2026lavoir,
  title        = {Lavoir: A Single-Pass Decision Model That Knows Which Question to Ask},
  author       = {Furkan Yilmaz and Habibe Aleyna Tasdemir and Muhammed Faruk Gozay},
  year         = {2026},
  howpublished = {\url{https://huggingface.co/moganai/lavoir-tr}}
}

@article{yilmaz2026moganbert,
  title   = {MoganBert-TR: A Turkish Encoder Foundation Model Trained from Scratch with a CLM-MLM Curriculum},
  author  = {Furkan Yilmaz and Habibe Aleyna Tasdemir and Muhammed Faruk Gozay},
  journal = {arXiv preprint arXiv:2608.25768},
  year    = {2026}
}

Lavoir-TR (Türkçe)

Hangi soruyu soracağını bilen Türkçe karar modeli.

Lavoir-TR, Lavoir'ın MoganBERT-TR üzerine kurulmuş Türkçe sürümüdür. Bir konuşmayı, türü belli bir soruyu (hangi birim? evet mi hayır mı? ne kadar ciddi?) ve hâlâ sorulabilecek bilgilerin listesini okur. Tek bir ileri geçişte seçenekler için kalibre olasılıklar ve her aday soru için bilgi değerini (VOI) döndürür: o soru sorulursa doğru cevabın olasılığının beklenen artışı. Tek bir kural bunu davranışa çevirir: değdiği sürece en değerli soruyu sor, sonra karar ver ya da bir insana devret.

arayan     Merhaba, aramamda yardımcı olabilir misiniz?

           emeklilik 0.249   rapor_ödeme 0.217   işveren_hizmetleri 0.199   genel_sağlık 0.197   prim_borç 0.137
VOI        konu 0.297   başvuran 0.166   prim_borcu 0.037   sigortalılık_türü 0.023   arayan_adı 0.003

Lavoir     Hangi konuda yardım almak istiyorsunuz?                              (VOI 0.297)
arayan     Sağlık hizmeti konusunda yardım almak istiyorum.
Lavoir     Kendi adınıza mı arıyorsunuz, yoksa bir işveren adına mı?            (VOI 0.336)
arayan     Bir işveren adına arıyorum.

karar      işveren_hizmetleri (p = 1.000)

SGK Alo 170 hattına gelen bir arama. Yalnız ilk mesaja bakılsaydı en iyi tahmin emeklilik olurdu ve yanlıştı. İlk cevaptan sonra üç birim hâlâ birbirine yakın, bu yüzden ikinci soru ilkinden daha değerli hâle geliyor. Arayanın adı hiç sorulmuyor: kararı değiştiremez.

Oracle gibi soruyor 11 Türkçe iş akışında soru sorma eğrisi, yönlendirme kurallarını bilen oracle ile aynı (AUC .788'e .782)
Az sorup çok kazanıyor konuşma başına en çok 0,5 soruyla %75 doğru; hiç sormadan %59
Güçlü sıfır atış sınıflandırıcı iki modelin de görmediği 8 Türkçe TabiBench görevinin 7'sinde Laya-multilingual'ın önünde (ortalama doğruluk .553'e .452)
Kalibre 25 Türkçe tek tur görevin 23'ünde Laya-multilingual'dan daha düşük kalibrasyon hatası

Hızlı başlangıç

pip install git+https://github.com/moganai/lavoir.git   # laya, torch ve transformers'ı da kurar
from lavoir import Lavoir

model = Lavoir.from_pretrained("moganai/lavoir-tr")     # ya da bu deponun yerel kopyası

question = {"type": "choice", "instructions": "Bu arayanın talebiyle hangi SGK birimi ilgilenmeli?",
            "criteria": {
                "emeklilik": "emeklilik birimi: emeklilik başvurusu, emeklilik hesaplama ve aylık bağlama",
                "genel_sağlık": "genel sağlık sigortası: hastanede ya da eczanede sağlık hizmeti alamama ve provizyon sorunları",
                "prim_borç": "prim ve borç birimi: prim borcu yüzünden durdurulan emeklilik ya da sağlık hizmetleri, borç yapılandırma ve ödeme",
                "rapor_ödeme": "rapor ödemeleri: iş göremezlik ödeneği (rapor parası) ve iş kazası ödemeleri",
                "işveren_hizmetleri": "işveren hizmetleri: işe giriş ve işten çıkış bildirgeleri, aylık prim ve hizmet belgeleri"}}
slots = {"konu": {"description": "talebin konusu",
                  "question": "Hangi konuda yardım almak istiyorsunuz?"},
         "başvuran": {"description": "kişinin kendi adına mı yoksa bir işveren adına mı aradığı",
                      "question": "Kendi adınıza mı arıyorsunuz, yoksa bir işveren adına mı?"},
         "prim_borcu": {"description": "kişinin ödenmemiş prim borcu olup olmadığı",
                        "question": "Ödenmemiş prim borcunuz var mı?"}}
state = [{"role": "user", "text": "Merhaba, aramamda yardımcı olabilir misiniz?"}]

pred = model.predict(state, question, slots)
pred.probabilities        # {"emeklilik": 0.25, "rapor_ödeme": 0.22, ...}
pred.voi                  # {"konu": 0.30, "başvuran": 0.17, "prim_borcu": 0.04}

step = model.next_action(state, question, slots, ask_threshold=0.05)
step.action, step.question   # ("ask", "Hangi konuda yardım almak istiyorsunuz?")
  • state: bir metin, alan adlı bir sözlük ya da tur listesi (müşteri için "user", asistanın soruları için "system").
  • question: Laya'nın türlü biçimi: {seçenek: açıklama} ile choice, noul (evet/hayır), score (sıralı düzeyler). slots verilmezse sıradan bir kalibre sınıflandırıcı gibi çalışır.
  • slots: hâlâ eksik olan bilgiler. Bir slot sorulduktan sonra listeden çıkarılır.
  • ask_threshold=0.05: soru, doğru cevabın olasılığını en az 5 puan artıracaksa sorulur. handoff_threshold=0.3 eklenirse en iyi seçenek %70'in altında kaldığında konuşma insana devredilir.
  • Talimatları, seçenekleri ve slotları Türkçe yazın. Model biraz İngilizce veri de gördü ve İngilizcede de çalışır, ama İngilizce için İngilizce Lavoir daha iyi bir seçimdir.

Nasıl çalışır

  • Karar başlığı (Laya'dan): her seçenek işaretçisi puanlanır; ayarlanmış sıcaklıkla softmax olasılıkları verir. Slot yoksa girdi birebir Laya'nın biçimidir.
  • VOI başlığı: her slot işaretçisinin gizli durumu, karar dağılımının özet öznitelikleriyle birlikte küçük bir MLP'den geçer. Çıktı kararın Gini safsızlığıyla sınırlıdır, VOI = (1 - Σp²) · sigmoid(h); bu yüzden emin bir model yapısal olarak soru sormaz.
  • Eğitim hedefi: slot k için p_k(doğru) − p_0(doğru), yani slot k'nın sorusu ve gerçekçi bir cevap eklendikten sonra modelin doğru seçeneğe verdiği olasılıktaki değişim. Başlık bunun cevaplar üzerindeki beklentisini öğrenir.
  • Kural: argmax VOI, ask_threshold'u geçtiği sürece sorulur; sonra argmax p ile karar verilir ya da 1 − max p > handoff_threshold ise devredilir.

Mimari ve eğitim tarifi İngilizce Lavoir ile aynıdır; yalnız encoder (MoganBERT-TR, 149M parametre) ve veri farklıdır.

Değerlendirme

Bütün sayılar eğitimde kullanılmayan veriyle ölçüldü.

Doğru soruyu sormak

Eğitimde görülen 11 Türkçe müşteri hizmetleri iş akışı, yeni konuşmalarla: banka, belediye başvuruları, BT destek, e-Devlet, e-ticaret iadeleri, İK, KVKK talepleri, operatör, seyahat değişiklikleri, SGK ve sigorta hasarı. Eğitimde hiç görülmeyen 5 iş akışı: enerji dağıtımı, kargo teslimatı, klinik yönlendirme, yazılım desteği ve öğrenci işleri. Her konuşmanın doğru birimi ve her sorunun gerçekçi bir cevabı bilindiği için her politika aynı konuşmalar üzerinde yeniden oynatılabilir. Oracle her iş akışının kurallarını ve önsellerini bilir, gerçek beklenen VOI'yi hesaplar.

Soru sayısına göre doğruluk

Her çizgi, ne zaman ve hangi sorunun sorulacağına karar veren bir strateji; hepsi aynı konuşmalar üzerinde yeniden oynatıldı. Yatay eksen konuşma başına ortalama soru sayısı, dikey eksen doğru birime yönlendirilen konuşmaların oranı. Lavoir-TR (turuncu) görülmüş iş akışlarında oracle kadar hızlı yükseliyor. Noktalı gri çizgi, oracle'ın soruları ve aynı cevaplar verilen Laya-multilingual: soruyu kendisi seçemiyor, cevapları da az kullanıyor.

politika AUC, görülmüş ≤ 0,5 soruda doğruluk, görülmüş AUC, görülmemiş ≤ 0,5 soruda doğruluk, görülmemiş
hiç sorma .589 .589 .448 .448
emin değilken rastgele soru .745 .673 .507 .484
conformal küme > 1 ise VOI sorusunu sor .772 .589 .527 .448
Lavoir-TR .788 .752 .543 .526
oracle VOI (kesin, açgözlü) .782 .758 .555
Laya-multilingual, oracle'ın sorularıyla .393 .389 .399 .326

AUC: konuşma başına 0–2 soru aralığında doğruluk–soru eğrisinin altında kalan normalize alan. Oracle açgözlüdür (bir soru ileriye bakar) ve kararı Lavoir'ın karar başlığıyla verir; bu yüzden Lavoir onu biraz geçebilir.

görülmüş 11 iş akışında
ilk mesajdan doğruluk / Bayes tavanı .631 / .655 (ECE .028): sızıntı yok; tavanın 2,4 puan altında
VOI ile oracle VOI Spearman .83; en iyi soru %92 oranında aynı
ask_threshold = 0.05 konuşma başına 1,09 soru, doğruluk .589 → .874, soruların %4,6'sı gereksiz
ask_threshold = 0.02 + handoff_threshold = 0.3 %18 devrediliyor, kalanında doğruluk .951

Görülmemiş 5 iş akışında Lavoir-TR temel yöntemleri yine geçiyor, ama kararın kendisi zayıf (ilk mesajdan .451, tavan .678) ve bir iş akışı (enerji dağıtımı) diğerlerinden belirgin şekilde zor. Kendi iş akışınızda kullanmadan önce fine-tune edin; kod deposunda bunun için betikler var.

Aynı iş akışlarında Laya-multilingual. Laya soru soramaz. Önerdiği kuralla (güven < 0,85 ise devret) ilk mesajların %70'ini insana devrediyor, kalanında doğruluğu %42. Oracle'ın en iyi iki sorusu ve cevapları ona hazır verildiğinde bile doğruluğu yalnız .32'den .42'ye çıkıyor; Lavoir-TR aynı durumda .875'e ulaşıyor. Laya bu iş akışlarını hiç görmediği için bu adil bir karar kıyası değil; soruyu seçebilmenin ve cevabı kullanabilmenin değerini gösteriyor.

Sıfır atış Türkçe benchmark'lar (TabiBench)

TabiBench'in iki modelin de eğitimde görmediği 8 karar görevi (test bölmeleri, görev başına en çok 1.000 vaka, iki modele aynı Türkçe talimat ve seçenekler). TabiBench'in kendi sayıları her göreve ayrı fine-tune edilmiş modeller içindir; bu sıfır atış sayılarıyla kıyaslanamaz.

Sıfır atış benchmark'lar

görev Lavoir-TR doğruluk / macro-F1 / ECE Laya-multilingual doğruluk / macro-F1 / ECE
Haber kategorisi (News-Cat, 250) .884 / .885 / .082 .772 / .754 / .142
Tweet duygusu (BilTweetNews, 146) .370 / .252 / .390 .445 / .426 / .155
Cinsiyete dayalı nefret söylemi (normal / saldırgan / nefret) .570 / .471 / .145 .373 / .321 / .269
SICK-TR ilişkililik (1–5) .312 / .243 / .147, Pearson .548 .247 / .213 / .244, Pearson .452
Tıbbi çıkarım (Med-NLI-TR) .567 / .568 / .127 .413 / .363 / .331
Atıf amacı (Sci-Cite-TR) .543 / .542 / .090 .503 / .504 / .225
Makale özetinde cümle rolü (PubMed-RCT-TR) .424 / .359 / .110 .356 / .306 / .255
Tez alanı (187 alan, vaka başına 10 seçenek) .754 / .751 / .078 .509 / .488 / .184
ortalama .553 / .509 .452 / .422
  • Lavoir-TR 8 görevin 7'sinde önde ve 7'sinde daha iyi kalibre.
  • Kaybettiği tek görev tweet duygusu (146 vaka, alaycılık sınıfı var); orada aşırı emin de (ECE .39).
  • Bu görülmemiş görevlerde seçeneklerin sırası karıştırılınca kararların %3–22'si değişiyor; bu sizin için önemliyse birkaç farklı sıralamanın ortalamasını alın.

Alan içi Türkçe benchmark'lar

Eğitim bölmeleri Lavoir-TR'nin eğitim verisinde bulunan 17 görevin test bölmeleri (test bölmesi olmayanlarda sabit %20'lik ayrılmış pay). Laya-multilingual bunların hiçbirini görmedi; bu yüzden tablo, Türkçe eğitim verisinin kattığını ölçer, adil bir kıyas değildir. Adil kıyas yukarıdaki sıfır atış tablosudur.

Alan içi benchmark'lar

görev Lavoir-TR doğruluk / ECE Laya-multilingual doğruluk / ECE
TrGLUE CoLA .523 / .018 .544 / .218
TrGLUE SST-2 .781 / .034 .604 / .216
TrGLUE MRPC .705 / .024 .612 / .264
TrGLUE QQP .883 / .037 .584 / .239
TrGLUE MNLI .771 / .043 .652 / .102
TrGLUE QNLI .839 / .025 .639 / .242
TrGLUE RTE .893 / .029 .897 / .076
TrGLUE STS-B (Pearson) .420 (.776) / .051 .150 (.565) / .323
MASSIVE-tr niyet (60) .870 / .042 .603 / .256
Saldırgan dil .889 / .019 .692 / .188
Duygu (3 sınıf) .665 / .159 .647 / .095
E-ticaret yıldız (1–5) .567 / .043 .127 / .633
Ürün yorumları .870 / .091 .607 / .191
Haber konusu (TTC4900) .930 / .017 .730 / .195
Spam e-posta .867 / .082 .498 / .503
Sahte haber (MiDe22) .675 / .073 .359 / .234
Nefret söylemi (SentiTurca) .577 / .104 .346 / .230
ortalama .749 .547

Hız

Karar başına tek ileri geçiş, metin üretimi yok: NVIDIA GH200'de (bf16) 64'lük gruplarda kısa metinlerde vaka başına 1–3 ms, 1.500 karakterlik haber metinlerinde yaklaşık 6 ms; 149M parametreli encoder.

Eğitim

Tarif İngilizce Lavoir ile aynı: MoganBERT-TR'den karar fazı (500 adım donuk encoder ile ısınma, 4 epoch, global batch 64, encoder LR 2.5e-5, başlık LR 1e-4), karar anlık görüntüsünden VOI hedefleri, 2 epoch ortak faz (encoder LR 5e-6, Gini sınırlı VOI), hedeflerin yenilenmesi ve 1 epoch daha ortak faz, %5'lik ayrılmış payda sıcaklık ayarı. 129.374 eğitim örneği (+6.809 ayrılmış); 16 NVIDIA GH200 GPU, 49 dakika; açık kaynak Lavoir kodu ile eğitildi.

Veri

kısım örnek kaynaklar
Türkçe soru sorma iş akışları 43.784 11 sentetik Türkçe müşteri hizmetleri iş akışı: 8'i İngilizcelerinden uyarlandı, 3'ü Türkiye'ye özgü (e-Devlet, SGK, belediye başvuruları). Yönlendirme kuralları ve cevap dağılımları kesin olduğu için her hedef gerçek posteriordur. Müşteri mesajlarını ve cevapları Qwen3.6-35B-A3B Türkçe yazdı; Gemma-4-26B-A4B sızıntıya karşı denetledi.
Türkçe genel tek tur 66.935 TrGLUE (8 görev), MASSIVE-tr, all-nli-tr, SentiTurca (e-ticaret, nefret), Türkçe duygu (winvoker), saldırgan dil (Toygar), ürün yorumları (BOUN), KAP finansal duygu, e-ticaret niyet, Türkçe spam e-posta eğitim bölmeleri; TTC4900 ve MiDe22 sahte haberin %80'i
Türkçe araç seçimi 5.464 Türkçeye çevrilmiş Nemotron araç çağırma verisi (kullanıcı mesajları Türkçe, araç tanımları İngilizce): asistanın gerçekten çağırdığı aracı seç
İngilizce pay 20.000 İngilizce Lavoir eğitim verisinden örneklem (genel veri, araç seçimi ve soru sorma iş akışları); MoganBERT-TR ön eğitimindeki İngilizce payına yakın

Yukarıda listelenen hiçbir benchmark test bölmesi eğitimde kullanılmadı.

Kullanım amacı

  • Yanlış yönlendirmenin pahalı, kısa bir netleştirme sorusunun ucuz olduğu Türkçe destek sohbetlerinde, bilet kuyruklarında ve e-postada yönlendirme ve önceliklendirme.
  • Bir asistanın harekete geçmeden önce soru sorup sormaması gerektiğine ve sabit bir soru listesinden hangisini soracağına karar vermek.
  • Hızlı, kalibre Türkçe tek tur sınıflandırma: moderasyon, spam, niyet, konu.

Kapsam dışı: soru ya da cevap üretmek, serbest diyalog, insan denetimi olmadan yüksek riskli kararlar.

Sınırlılıklar

  • Verdiğiniz sorular arasından seçer; yeni soru yazmaz.
  • Görülmüş iş akışlarında ilk mesajdan karar Bayes tavanının 2,4 puan altında (İngilizce Lavoir tavana ulaşıyor); metindeki her ipucunu kullanmıyor.
  • Eğitimdekilere benzemeyen iş akışlarında zayıf (görülmemiş iş akışlarında ilk mesajdan .451). Kendi iş akışınızdan birkaç yüz örnekle fine-tune etmeyi planlayın.
  • Görülmemiş görevlerde seçenek sırasına duyarlı (seçenekler karıştırılınca kararların %22'sine kadarı değişiyor).
  • Soru sorma iş akışları sentetik ve henüz gerçek Türkçe destek konuşmalarında değerlendirme yok. Gerçek kullanıcılar farklı ifade eder ve konu dışı cevap verebilir.

Lisans ve atıf

Ağırlıklar CC BY-NC 4.0 ile yayınlanıyor, çünkü eğitim verisinin bir kısmı yalnız ticari olmayan kullanıma açık. Kod Apache-2.0.

Lavoir-TR, karar başlığı mimarisinde, girdi biçiminde ve eğitim kaybında Laya'yı (Apache-2.0) izler, ama Laya'nın ağırlıklarını kullanmaz: karar başlığı ve VOI başlığı sıfırdan eğitildi. Encoder MoganBERT-TR (Apache-2.0) ağırlıklarından başlatıldı ve başlıklarla birlikte eğitildi. Atıf için yukarıdaki BibTeX kayıtlarını kullanın.


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

Buy Me a Coffee

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

Dataset used to train moganai/lavoir-tr

Collection including moganai/lavoir-tr

Paper for moganai/lavoir-tr