--- 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-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.