Omni-31B Turkish Reasoning Model

Omni-31B Turkish Reasoning Model

Omni Türkçe Chain-of-Thought reasoning model özeti

Model Açıklaması

Omni-31B, Türkçe muhakeme, açıklayıcı analiz, çok adımlı problem çözme ve genel bilgi alanlarında adım adım düşünme yetkinliği için fine-tune edilmiş bir Gemma 4 tabanlı modeldir.

Bu model, Gemma 4 31B base model üzerine 249K filtrelenmiş Türkçe Chain-of-Thought (CoT) verisi ile full fine-tune edilmiştir. Eğitim, <think> blokları içinde görünür adım adım reasoning üretecek şekilde tasarlanmıştır.

Model, Türkçe kullanıcıların açıklayıcı sorularını yapılandırılmış şekilde yanıtlaması, çok aşamalı muhakeme gerektiren konuları parçalara ayırması ve uzun-form analiz üretmesi için optimize edilmiştir.

Türk yapay zeka topluluğuna faydalı olması dileğiyle. 🇹🇷

Önemli: Bu model araştırma ve eğitim amaçlıdır. Üretilen içerik nihai karar mekanizması olarak kullanılmamalı; profesyonel görüş gerektiren konularda (hukuk, sağlık, finans, mühendislik) lisanslı uzmanlara başvurulmalıdır.

Temel Yetenekler

  • Türkçe Chain-of-Thought reasoning: <think> blokları içinde adım adım düşünme, plan kurma, ara doğrulama ve yapılandırılmış cevap üretme.
  • Açıklayıcı analiz: Bilim, tarih, edebiyat, felsefe ve genel kültür konularında uzun-form Türkçe açıklama.
  • Çok adımlı muhakeme: Karmaşık soruları parçalara ayırarak adım adım yanıtlama.
  • Türkçe akıcılığı: Pre-training'den gelen Gemma 4 dil yeteneğinin Türkçe reasoning görevlerine uyarlanması.
  • Format disiplini: <think>...</think> reasoning bloğu sonrası kullanıcıya yönelik temiz cevap üretimi.

Model Detayları

Özellik Değer
Model adı bugrabilge/Omni-31B-Turkish-Reasoning-Model
Base model google/gemma-4-31B
Mimari Dense Causal LM, text-only deployment
Parametre 31B
Fine-tuning yöntemi Full Supervised Fine-Tuning (16-bit weights)
Eğitim dili Türkçe
Uzmanlaşma Türkçe Chain-of-Thought reasoning
Max training sequence length 8192 token
Deployment mode text_only

Eğitim Özeti

Metrik Değer
Eğitim verisi 249,292 Türkçe CoT örneği
Veri kaynağı ~30GB ham Türkçe CoT veriden kural-bazlı pipeline ile filtrelenmiş
Framework HuggingFace Transformers + DeepSpeed ZeRO-3
Effective batch size 128 (1 × 16 grad_accum × 8 GPU)
Epoch 1
Precision bfloat16
Attention SDPA
Label masking Assistant-only training hedefi
Thinking davranışı <think>...</think> bloğu ile görünür reasoning
Ortalama cevap uzunluğu ~5,000-7,000 token (uzun-form akademik stil)

Önerilen Kullanım Alanları

  • Türkçe eğitim asistanı (açıklayıcı içerik)
  • Bilim, tarih, edebiyat konularında uzun-form analiz
  • Çok adımlı muhakeme gerektiren soru-cevap
  • Akademik tarzda Türkçe içerik üretimi ve taslak hazırlama
  • Türkçe reasoning üzerine araştırma

Kullanım

Kurulum

pip install "transformers>=4.50.0" "torch>=2.4.0" accelerate safetensors sentencepiece

Not: Model chat_template.jinja formatı kullanır (Transformers 4.50+ convention). Daha eski versiyonlarda chat template doğru yüklenmeyebilir.

Transformers ile örnek

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_id = "bugrabilge/Omni-31B-Turkish-Reasoning-Model"

tokenizer = AutoTokenizer.from_pretrained(model_id)

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

messages = [
    {
        "role": "system",
        "content": (
            "Sen adım adım düşünen bir Türkçe asistansın. "
            "Cevap vermeden önce <think> bloğunda muhakemeni yap, "
            "ardından kullanıcıya net bir cevap ver."
        ),
    },
    {
        "role": "user",
        "content": "Fotosentez sürecini adım adım açıkla ve neden hayat için kritik olduğunu belirt.",
    },
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)

inputs = tokenizer([text], return_tensors="pt").to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=7168,
    min_new_tokens=80,
    temperature=0.7,
    top_p=0.9,
    do_sample=True,
    eos_token_id=[1, 106],
)

print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False))

vLLM ile deploy

vllm serve bugrabilge/Omni-31B-Turkish-Reasoning-Model \
  --tensor-parallel-size 8 \
  --dtype bfloat16 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.90 \
  --limit-mm-per-prompt '{"image":0,"audio":0}' \
  --port 8000

Önerilen Sampling Parametreleri

Model uzun-form (5K-7K token) cevap üretecek şekilde eğitilmiştir. Güvenilir çalışma için aşağıdaki parametrelerin kullanılması önerilir.

vLLM / OpenAI-uyumlu API için

sampling_params = {
    "temperature": 0.7,
    "top_p": 0.9,
    "min_tokens": 80,
    "max_tokens": 7168,
    "stop": ["<turn|>", "<think>", "```\n```"]
}
Parametre Değer Sebep
max_tokens 7168 Eğitim verisi cevap dağılımının üst sınırına yakın; modelin natural EOS üretmesi için yeterli alan
min_tokens 80 Erken stop'u önler, modelin <think> bloğunu tamamlamasına imkan tanır
stop 3'lü liste `<turn
temperature 0.7 Eğitim distribusyonuna sadık, degenerate loop riskini azaltır

Transformers (model.generate) için

generation_kwargs = {
    "temperature": 0.7,
    "top_p": 0.9,
    "min_new_tokens": 80,
    "max_new_tokens": 7168,
    "do_sample": True,
    "eos_token_id": [1, 106],
}

Not: Transformers ve vLLM parametre adlandırması farklıdır:

  • Transformers: min_new_tokens, max_new_tokens
  • vLLM: min_tokens, max_tokens

Anlamları aynıdır (sadece üretilecek yeni token sayısı, prompt hariç).

vLLM API çağrısı örneği

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bugrabilge/Omni-31B-Turkish-Reasoning-Model",
    "messages": [
      {"role": "system", "content": "Sen adım adım düşünen bir Türkçe asistansın."},
      {"role": "user", "content": "..."}
    ],
    "max_tokens": 7168,
    "min_tokens": 80,
    "temperature": 0.7,
    "top_p": 0.9,
    "stop": ["<turn|>", "<think>", "```\n```"]
  }'

Önerilen Sistem Talimatı

Sen Türkçe konuşan, adım adım düşünen bir yapay zeka asistanısın.

Çalışma şeklin:
- Cevap vermeden önce <think> bloğunda muhakemeni adım adım yap.
- Düşünme aşamasında soruyu parçalara ayır, varsayımlarını netleştir, 
  ara sonuçları doğrula.
- </think> sonrası kullanıcıya net, yapılandırılmış ve gereksiz tekrar 
  içermeyen bir cevap ver.
- Emin olmadığın bilgilerde belirsizliği açıkça belirt.
- Türkçe açıkla; teknik terimler gerektiğinde parantez içinde 
  orijinal formuyla koru.

Çıktı Formatı

Model cevaplarını <think>...</think> bloğu ile başlatır, ardından kullanıcıya yönelik nihai cevabını verir:

<think>
Soruyu analiz ediyorum. Fotosentez bitkilerin güneş ışığı, su ve karbondioksiti 
kullanarak glikoz ve oksijen ürettiği biyokimyasal süreçtir...
</think>

Fotosentez, yaşamın temel taşlarından biridir. Süreç şu aşamalardan oluşur:
...

Token Budget Hesabı

Toplam context bütçesi: prompt + completion ≤ 8192 token.

Eğer prompt'unuz uzunsa max_tokens değerini dinamik olarak hesaplayın:

# Önce mesajları render et
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
prompt_tokens = len(tokenizer.encode(text))
available = 8192 - prompt_tokens - 50  # 50 token safety margin
max_tokens = min(available, 7168)

Quantization

Topluluk tarafından oluşturulacak quantized versiyonlar (GGUF, AWQ, GPTQ) için bu repo'yu base olarak kullanabilirsiniz. Quantize edilmiş versiyonlar yayınlanırsa bu bölüm güncellenecektir.

Bilinen Teknik Sınırlamalar

  1. Uzun-form eğitim verisi: Model eğitim verisi ortalama 5K-7K token cevap içerir, bu nedenle akademik/açıklayıcı stilde uzun cevaplar üretmeye eğilimlidir. Kısa ve net cevap istendiğinde sistem promptunda explicit belirtilmelidir.

  2. Format varyasyonu: Bazı cevaplarda model önce düz metin, ardından markdown yapılandırılmış versiyon üretebilir. Bu eğitim verisi karakteristiğidir.

  3. <think> tetikleme: Uzun ve açıklayıcı sorularda <think> bloğu güvenilir şekilde tetiklenir. Daha tutarlı <think> davranışı için sistem promptunda explicit talep edilmelidir.

  4. Yetersiz max_tokens riski: max_tokens değeri 7000'in altında ayarlanırsa model cevabını tamamlayamayabilir ve generation pattern'lerine girebilir. Önerilen stop sequence'leri ile bu durum güvenli şekilde yönetilir.

  5. Multimodal değil: Sadece text generation desteklenir; mimari image/audio destekliyor ancak eğitim text-only yapıldı.

Risk Uyarısı ve Kullanım Sınırları

  • Model gerçek zamanlı bilgiye bağlı değildir; güncel olay, fiyat, mevzuat veya istatistik gerektiren sorularda resmi kaynak kontrolü gerekir.
  • Üretilen yanıtlar profesyonel danışmanlık (hukuk, sağlık, finans, mühendislik) yerine geçmez.
  • Model factual hata üretebilir; kritik kullanımlarda çıktıların doğrulanması gerekir.
  • Model cevapları nihai karar mekanizması olarak kullanılmamalıdır.

Citation

Bu modeli kullanırsanız aşağıdaki şekilde atıfta bulunabilirsiniz:

@model{Omni31B,
  author = {Buğra Bilge Çelik},
  title = {Omni-31B: A Fine-tuned Gemma 4 31B Model for Turkish Chain-of-Thought Reasoning},
  year = {2026},
  publisher = {Hugging Face},
  url = {https://huggingface.co/bugrabilge/Omni-31B-Turkish-Reasoning-Model}
}

İletişim


Disclaimer: Bu model araştırma, eğitim ve genel bilgilendirme amaçlıdır. Modelin çıktıları profesyonel danışmanlık değildir ve model çıktılarına dayanarak alınan kararlardan model geliştiricisi sorumlu tutulamaz.

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

Model tree for bugrabilge/Omni-31B-Turkish-Reasoning-Model

Finetuned
(41)
this model
Quantizations
2 models