---
license: gemma
language:
- tr
base_model: google/gemma-4-31B
tags:
- turkish
- türkçe
- chain-of-thought
- reasoning
- cot
- gemma-4
- text-generation
- fine-tuned
library_name: transformers
pipeline_tag: text-generation
model-index:
- name: Omni-31B-Turkish-Reasoning-Model
results: []
---
# 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, `` 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:** `` 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:** `...` 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ışı** | `...` 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
```bash
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
```python
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 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
```bash
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
```python
sampling_params = {
"temperature": 0.7,
"top_p": 0.9,
"min_tokens": 80,
"max_tokens": 7168,
"stop": ["", "", "```\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 `` bloğunu tamamlamasına imkan tanır |
| `stop` | 3'lü liste | `` natural EOS; `` ve markdown fence olası degenerate pattern'leri keser |
| `temperature` | 0.7 | Eğitim distribusyonuna sadık, degenerate loop riskini azaltır |
### Transformers (`model.generate`) için
```python
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
```bash
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": ["", "", "```\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 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.
- 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ı `...` bloğu ile başlatır, ardından kullanıcıya yönelik nihai cevabını verir:
```
Soruyu analiz ediyorum. Fotosentez bitkilerin güneş ışığı, su ve karbondioksiti
kullanarak glikoz ve oksijen ürettiği biyokimyasal süreçtir...
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:
```python
# Ö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. **`` tetikleme:** Uzun ve açıklayıcı sorularda `` bloğu güvenilir şekilde tetiklenir. Daha tutarlı `` 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:
```bibtex
@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
- **Hugging Face:** [@bugrabilge](https://huggingface.co/bugrabilge)
- **LinkedIn:** [bugrabilgecelik](https://www.linkedin.com/in/bugrabilgecelik/)
- **GitHub:** [bugrabilge](https://github.com/bugrabilge)
- **E-posta:** bugrabilgee@gmail.com
---
**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.