Text Generation
Transformers
ONNX
Safetensors
Turkish
qwen3
turkish
türkçe
turkish-language-model
turkish-llm
turkish-slm
small-language-model
language-model
causal-lm
decoder-only
pretrained
pretraining
from-scratch
trained-from-scratch
chat
instruction-following
turkish-nlp
natural-language-processing
conversational
text-generation-inference
Instructions to use TozAI/Toz-1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use TozAI/Toz-1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="TozAI/Toz-1") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("TozAI/Toz-1") model = AutoModelForCausalLM.from_pretrained("TozAI/Toz-1", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use TozAI/Toz-1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "TozAI/Toz-1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TozAI/Toz-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/TozAI/Toz-1
- SGLang
How to use TozAI/Toz-1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "TozAI/Toz-1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TozAI/Toz-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "TozAI/Toz-1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TozAI/Toz-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use TozAI/Toz-1 with Docker Model Runner:
docker model run hf.co/TozAI/Toz-1
|
Download README.md from TozAI/Toz-1: direct link, hf CLI and curl.
- Browser
- Download file 10.3 kB
-
https://huggingface.co/TozAI/Toz-1/resolve/main/README.md
- Command line
-
hf download hf://TozAI/Toz-1/README.md
-
curl -L -o README.md https://huggingface.co/TozAI/Toz-1/resolve/main/README.md
10.3 kB
| language: | |
| - tr | |
| license: apache-2.0 | |
| library_name: transformers | |
| pipeline_tag: text-generation | |
| base_model: TozAI/Toz-1-Base | |
| datasets: | |
| - TozAI/Toz-1-SFT | |
| - kilicai/turkish-ft-balanced-200k | |
| tags: | |
| - turkish | |
| - türkçe | |
| - turkish-language-model | |
| - turkish-llm | |
| - turkish-slm | |
| - small-language-model | |
| - language-model | |
| - text-generation | |
| - causal-lm | |
| - decoder-only | |
| - pretrained | |
| - pretraining | |
| - from-scratch | |
| - trained-from-scratch | |
| - chat | |
| - instruction-following | |
| - turkish-nlp | |
| - natural-language-processing | |
| # Töz-1 | |
| **Töz-1**, Töz AI'ın sıfırdan eğittiği ilk Türkçe dil modelidir: 195 milyon parametre, | |
| yalnızca Türkçe, tokenizer'dan ağırlıklara kadar her şey kendi eğitimimiz. Bu depo | |
| modelin **sohbet (SFT) sürümüdür**; ham ön eğitim modeli [TozAI/Toz-1-Base](https://huggingface.co/TozAI/Toz-1-Base). | |
| Küçük bir model: sıradan bir bilgisayarın işlemcisinde çalışır, kısa ve sade Türkçe | |
| cevaplar verir. Bir bilgi kaynağı değil, **küçük bir modelin neler yapabildiğini | |
| gösteren bir deney** olarak görülmeli (bkz. Sınırlamalar). | |
| Konuşmak için https://toz-chat.onrender.com/sohbet.html | |
| ## Sürümler | |
| | sürüm | tarih | ne değişti | | |
| |---|---|---| | |
| | **v2** (bu sürüm) | Ekim 2026 | SFT'ye ~9.000 filtrelenmiş Türkçe sohbet örneği eklendi, matematik örnekleri 1.000 azaltıldı | | |
| | v1 | 27 Eylül 2026 | ilk yayın; `revision="v1"` ile hâlâ indirilebilir | | |
| **v2 neden?** v1 kendi ürettiğimiz dar kalıplarla eğitilmişti ve tanımadığı soru türlerini en yakın | |
| kalıba zorluyordu: "Valorant oynayayım mı?" → "Hayır, adım Töz-1", "Matematik kursu almalı | |
| mıyım?" → "Sadece tek basamaklı işlemler yapabiliyorum", "Valorant oynayabilir miyim?" → | |
| "Bilgisayarına erişimim yok". Tavsiye, fikir ve gündelik sorular veride neredeyse yoktu; | |
| "ben … miyim" (kullanıcı kendini soruyor) ile "sen … misin" (modelin yeteneği soruluyor) ayrımı | |
| da öğrenilmemişti. v2 bu boşluğu gerçek sohbet örnekleriyle kapatmayı hedefliyor. Bilgi | |
| düzeyi aynı: ön eğitim değişmedi. | |
| ```python | |
| # v1'i kullanmak için | |
| model = AutoModelForCausalLM.from_pretrained("TozAI/Toz-1", revision="v1") | |
| ``` | |
| ## Hızlı başlangıç | |
| ```python | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| repo = "TozAI/Toz-1" | |
| tok = AutoTokenizer.from_pretrained(repo) | |
| model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype=torch.float32) # GPU'da torch.float16 | |
| mesajlar = [{"role": "user", "content": "Fransa'nın başkenti neresi?"}] | |
| girdi = tok.apply_chat_template(mesajlar, add_generation_prompt=True, | |
| return_tensors="pt", return_dict=True) | |
| cikti = model.generate(**girdi, max_new_tokens=80) | |
| print(tok.decode(cikti[0, girdi["input_ids"].shape[1]:], skip_special_tokens=True)) | |
| ``` | |
| `transformers` 4.51 veya üstü gerekir (mimari Qwen3 olarak kayıtlı, `trust_remote_code` gerekmez). | |
| Varsayılan üretim ayarları `generation_config.json`'da: temperature 0.7, top_p 0.9, | |
| repetition_penalty 1.1. Bilgi sorularında daha düşük sıcaklık (0.3–0.4) daha tutarlı cevap verir. | |
| **Sohbet biçimi** (chat template bunu kendisi kurar): | |
| ``` | |
| Kullanıcı: {soru} | |
| Töz: {cevap}<|endoftext|>Kullanıcı: {soru} | |
| Töz: | |
| ``` | |
| Sistem mesajı ile eğitilmedi. Bağlam penceresi 1024 token. | |
| ## Neler yapabilir | |
| * Gündelik sohbet, selamlaşma, kendini tanıtma ("Sen kimsin?", "Seni kim yaptı?") | |
| * Yaygın bilgi soruları: başkentler, kıtalar, Türkiye'nin illeri ve bölgeleri, bilinen kişi | |
| ve kavramların kısa tanımı ("X kimdir?", "Y nedir?") | |
| * Takip soruları: "Fransa'nın başkenti neresi?" → "Peki orada hangi dil konuşulur?" | |
| * Tek basamaklı sayılarla toplama, çıkarma, çarpma; daha büyük hesaplarda yapamadığını söyler | |
| * Basit biçim talimatları: tek kelimeyle cevap, "… ile başla/bitir", tırnak, iki cümle, JSON | |
| * Evet/hayır sorularında önce bilgiyi söyleyip sonra karar verir: | |
| "Edirne Marmara Bölgesi'ndedir, yani evet." | |
| * Fikir sorularında ("Sence iyi biri miydi?") yargı bildirmez, bildiğini aktarır | |
| ## Değerlendirme | |
| ### Genel Türkçe benchmark'lar | |
| Hepsi aynı scriptle (`mmlu_olc.py`, `turblimp_olc.py`), 0-shot, şıkların/cümlelerin | |
| olasılığı karşılaştırılarak ölçüldü. Karşılaştırma için ufakzeka-1-base de **aynı scriptle** | |
| ölçüldü. | |
| | benchmark | şans | Töz-1 v2 | Töz-1 v1 | Töz-1-Base | ufakzeka-1-base | | |
| |---|---|---|---|---|---| | |
| | **TurBLiMP** — Türkçe dilbilgisi, 16 konu × 1.000 cümle çifti | %50 | <<DOLDUR: v2 TurBLiMP>> | %91.2 | **%93.2** | %92.0 | | |
| | **Turkish MMLU** — alibayram/turkish_mmlu, 6.200 sınav sorusu, 5 şık (cloze, uzunluk normalize) | %20 | <<DOLDUR: v2 cloze_norm>> | %24.1 | %25.0 | — | | |
| | Turkish MMLU — aynı set, şık harfi (A–E) | %20 | <<DOLDUR: v2 harf>> | %20.5 | %21.1 | — | | |
| * TurBLiMP'te Töz-1-Base, 13.5B tokenla eğitilmiş ufakzeka-1-base'in (151M) önünde; Töz-1 4.42B | |
| tokenla eğitildi. Dilbilgisi az veriyle doyan bir yetenek; dünya bilgisi gerektiren testlerde | |
| daha çok token gören modellerin önde olması beklenir. | |
| * Turkish MMLU (KPSS, TUS, ALES vb.) 195M bir model için çok zor: sonuç şansın üstünde | |
| (6.200 soruda ±0.5 puan gürültü) ama düşük. Şık harfi biçimi küçük modellerde şans | |
| seviyesinde kalır. ufakzeka-1 bu seti bizim scriptimizle ölçülmediği için "—". | |
| * SFT bilgi testinde (MMLU) skoru korudu: v2'deki 9.000 sohbet örneği de modelin bilgisini bozmadı. | |
| ### Kendi donuk setlerimiz | |
| Eğitimde hiç görülmeyen, modelin öğrenmesini istediğimiz davranışları ölçen setler | |
| (veri setinde `olcum/`, puanlayıcılar `uretim/` altında): | |
| | set | ne ölçüyor | Töz-1 v2 | Töz-1 v1 | | |
| |---|---|---|---| | |
| | matematik (305) | tek basamaklı işlemler, eğitimde olmayan soru kalıplarıyla | <<DOLDUR: v2 matematik>> | %99.7 | | |
| | kısıt (230) | talimat takibi (IFEval tarzı): biçim / tam doğru | <<DOLDUR: v2 kısıt biçim / tam>> | %75.2 / %40.4 | | |
| | tanım (90) | ham modelin bildiği ama SFT'de görmediği varlıklarda doğru kategori | <<DOLDUR: v2 tanım>> | %25.6 | | |
| Tek bir eğitim koşusunun rastgeleliği bu küçük setlerde ±3–4 puan oynatabiliyor. | |
| ## Eğitim | |
| **Ön eğitim** (Töz-1-Base) | |
| * 5.68 milyar tokenlık Türkçe korpus (web metni 4.96B + Vikipedi 0.72B) | |
| * 30.000 adım × 147.456 token = **4.42 milyar token** (~23 token/parametre) | |
| * WSD öğrenme oranı (tepe 4e-4, 800 adım ısınma, 24.000. adımdan itibaren düşüş), | |
| son %15'te Vikipedi oranı %8'den %35'e çıkarıldı | |
| * AdamW (0.9, 0.95), weight decay 0.1, z-loss 1e-4, fp16 karışık hassasiyet | |
| * Donanım: Kaggle 2× Tesla T4 ve tek bir RTX 3060 Ti (8 GB) | |
| **SFT (v2)** | |
| * <<DOLDUR: toplam örnek sayısı, eğitim logundaki "toplam" satırı>> örnek, 3 epoch, lr 1e-4 (kosinüs), | |
| kayıp yalnızca cevap tokenlarında, tek RTX 3060 Ti | |
| * **Kodla üretilen veri** (v1'den): kimlik, sohbet, bilgi, takip soruları, talimat kısıtları, | |
| tek basamaklı matematik (v2'de 1.000 örnek azaltıldı), Vikipedi tanımları. Vikipedi tanımları | |
| ham modele okutulup **modelin zaten bildiği** varlıklar seçilerek alındı (bilmediği bilgiyi | |
| SFT'de öğretmek uydurmayı öğretir). Ayrıntılar: [TozAI/Toz-1-SFT](https://huggingface.co/datasets/TozAI/Toz-1-SFT) | |
| * **Sohbet verisi** (v2'de eklendi): [kilicai/turkish-sft-clean-v5-strict-pruned](https://huggingface.co/datasets/kilicai/turkish-sft-clean-v5-strict-pruned) | |
| (yazarın en sıkı temizlenmiş sürümü: güvensiz içerik ve tekrarlar silinmiş) içinden ~9.000 örnek; | |
| soru-cevap, talimat, yaratıcı yazım ve çok turlu sohbet kategorileri. Sistem mesajları atıldı; | |
| kod, başka model kimliği ("ChatGPT", "OpenAI"…), İngilizce ağırlıklı metin, 300 tokeni aşan | |
| cevaplar ve 1024 tokeni aşan konuşmalar elendi (`sohbet_veri.py`). | |
| **Mimari** | |
| | | | | |
| |---|---| | |
| | parametre | 195M (bağlı embedding) | | |
| | katman / genişlik / kafa | 18 / 768 / 12 | | |
| | FFN | SwiGLU, 3072 | | |
| | konum | RoPE (θ = 10.000), 1024 bağlam | | |
| | normalizasyon | RMSNorm (pre-norm) + QK-norm | | |
| | sözlük | 32.768 token, Türkçe için eğitilmiş byte-level BPE | | |
| Mimari Hugging Face'teki Qwen3 ile birebir aynı olduğu için o sınıfla kaydedildi; | |
| ağırlıklar Qwen'den **türetilmedi**, tamamen sıfırdan eğitildi. | |
| ## Sınırlamalar | |
| * **Bilgi hataları yapar ve bunu kendinden emin söyler.** Örneğin bilinen bir padişahı | |
| doğru kategoriyle tanımlayıp kaçıncı padişah olduğunu yanlış söyleyebilir. Önemli bir | |
| bilgiyi bu modelden öğrenmeyin. | |
| * 195M parametre ve 4.4B token, dünya bilgisi için az. Az bilinen kişi, yer ve olaylarda uydurur. | |
| * Büyük harfle yazması istendiğinde bozulabilir (büyük harfli Türkçe ön eğitimde nadir). | |
| * Liste uzunluğu, sınıflandırma ve karmaşık çok adımlı talimatlarda zayıf. | |
| * Yalnızca tek basamaklı aritmetik; çok basamaklı hesap yapamaz. | |
| * Sadece Türkçe; başka dillerde anlamlı cevap vermez. | |
| * Web verisinden gelen önyargıları taşıyabilir; ayrı bir güvenlik eğitimi almadı. | |
| ## Lisans | |
| Model ağırlıkları **Apache-2.0**. SFT verisinin Vikipedi kısmı CC BY-SA 4.0; v2'de eklenen | |
| sohbet verisi (kilicai/turkish-sft-clean-v5-strict-pruned) Apache-2.0. Ticari olmayan lisanslı (Alpaca kökenli) | |
| veri eğitimde **kullanılmadı**. | |
| --- | |
| ## English summary | |
| Töz-1 is a 195M-parameter Turkish-only language model trained **from scratch** by Töz AI | |
| (own tokenizer, 4.42B pre-training tokens on 2× T4 + one RTX 3060 Ti), followed by SFT on | |
| programmatically generated examples plus (since v2, October 2026) ~9K filtered Turkish chat | |
| conversations. v1 (27 Sep 2026) remains available via `revision="v1"`. It handles casual chat, | |
| common facts, follow-up questions, single-digit arithmetic and simple formatting | |
| instructions, and it confidently makes factual errors. On TurBLiMP (Turkish grammar | |
| minimal pairs) the base model scores 93.2% vs 92.0% for ufakzeka-1-base (13.5B tokens), both | |
| measured with the same script; on Turkish MMLU (6,200 exam questions) it scores 25.0% | |
| (chance 20%). Treat it as a small-model | |
| experiment, not a knowledge source. The architecture matches Qwen3 exactly (RMSNorm, | |
| QK-norm, SwiGLU, RoPE, tied embeddings), so it loads with plain `transformers>=4.51`; | |
| the weights are **not** derived from Qwen. License: Apache-2.0. |