Jazari-4B-SFT-TR
Qwen3.5-4B tabanlı, Türkçe'ye adapte edilmiş 4B parametreli dil modeli.
Türkçe
Nedir?
Jazari, Qwen3.5-4B modelinin Türkçe'ye adapte edilmiş hâlidir:
- Devam Eden Ön-Eğitim (CPT): 674 MB Türkçe metin, 11.939 adım
- Denetimli İnce-Ayar (SFT): 73.182 örnek, 13 kategori, 9.600 adım
Tek bir RTX 5090 GPU'da (vast.ai), toplam ~75$ maliyetle, ~1 haftada eğitildi.
Gerçek Dünyada Kullanım: ailm Sistem İzleme
Jazari, ailm projesinde canlı olarak kullanılmaktadır — Linux sistem loglarını sınıflandırma, kök neden analizi ve aksiyon önerisi için.
ailm Entegrasyon Sonuçları (canlı sistem, 7/24):
| Metrik | Sonuç |
|---|---|
| JSON çıktı başarısı | 70/70 (%100) — 20 farklı log + 50 tekrar testi |
| Determinizm | %100 — aynı giriş = aynı çıktı (temperature=0) |
| Hız | 1.2 saniye/event (gpt-oss:20b'den 11x hızlı) |
| VRAM | 2.7 GB (gpt-oss:20b'nin 13 GB'sine karşı) |
| Kapsam | Severity, action (restart/investigate/ignore), root cause |
Not: Model kartı daha önce "JSON formatında patlıyor" diyordu. Yapılandırılmış prompt +
temperature=0ile bu sorun tamamen ortadan kalkmıştır. 70/70 başarısız JSON çıktısı yoktur.
Örnek ailm çıktıları:
Giriş: kernel: BUG: soft lockup - CPU#3 stuck for 22s!
Çıktı: {"severity": "critical", "action": "reboot",
"summary": "init.scope: BUG: soft lockup - CPU#3 stuck for 22s!",
"root_cause": "CPU soft lockup likely due to driver or hardware issue"}
Giriş: plasmashell[1234]: segfault at 0x0
Çıktı: {"severity": "critical", "action": "restart_service",
"summary": "user@1000.service: segfault at 0x0 in libc.so.6",
"root_cause": "Likely a memory corruption or library incompatibility"}
Giriş: Accepted publickey for mahsum from 100.64.0.1
Çıktı: {"severity": "info", "action": "ignore",
"summary": "sshd.service: Accepted publickey for mahsum",
"root_cause": "This is a normal authentication event"}
Benchmark Sonuçları
Türkçe Benchmark (360 soru)
| Benchmark | Açıklama | Soru | jazari | qwen3.5:4b |
|---|---|---|---|---|
| TR-MMLU | Türkçe bilgi (12 konu) | 120 | 85.0% | 80.0% |
| TR-ARC | Türkçe bilim | 50 | 98.0% | 84.0% |
| TR-GSM8K | Türkçe matematik | 50 | 52.0% | 66.0% |
| TR-TruthfulQA | Yanlış bilgi tespiti | 40 | 95.0% | 52.5% |
| TR-HellaSwag | Cümle tamamlama | 40 | 97.5% | 47.5% |
| TR-Winogrande | Referans çözümleme | 30 | 66.7% | 43.3% |
| TR-Cultural | Türk kültürü | 30 | 76.7% | 33.3% |
| Toplam | 360 | 82.5% | 65.0% |
ailm JSON Sınıflandırma Benchmark (70 test)
| Test | Sonuç |
|---|---|
| 20 farklı sistem logu | 20/20 geçerli JSON |
| 50 tekrar (determinizm) | 50/50 aynı çıktı |
| Severity doğruluğu | CRITICAL/WARNING/INFO doğru |
| Action doğruluğu | restart_service/investigate/ignore doğru |
| Root cause | Her event için açıklama |
| Karşılaştırma: gemma3:12b | 0/4 JSON başarısı |
| Karşılaştırma: qwen3.5:4b | 1/4 JSON başarısı |
| Karşılaştırma: gpt-oss:20b | 4/4 ama 11x yavaş |
Türkçe E-posta Sınıflandırma (50 gerçek iş e-postası, 11 kategori)
5.548 gerçek iş e-postasından rastgele seçilen 50 örnek üzerinde zero-shot test:
| Sonuç | Değer |
|---|---|
| Genel doğruluk | %56 (28/50) |
| JSON formatı | %100 (50/50 geçerli JSON) |
| Hız | 0.6 saniye/mail |
Kategori bazlı:
| Kategori Tipi | Doğruluk | Not |
|---|---|---|
| Belirgin kalıplar (hukuki bildirimler, resmi yazışmalar) | %100 | Konu satırı yeterli ipucu veriyor |
| Orta karmaşıklık (finans, planlama) | %60 | İçerik analizi gerekiyor |
| Domain-spesifik (teknik terimler, sektörel jargon) | %0-40 | Fine-tune olmadan tanıyamıyor |
Yorum: Model, genel e-posta kategorilerini iyi tanıyor ancak domain-spesifik sınıflandırma için ek eğitim (SFT) gerekir. JSON formatı her durumda başarılı — sorun sınıf bilgisinde, format disiplininde değil.
Bilinen Sınırlamalar
- Aşırı güven: "Bilmiyorum" demez, yanlış cevap uydurabilir
- Genel JSON: Serbest formda JSON üretimi tutarsız olabilir (yapılandırılmış prompt + temperature=0 ile sorun yok)
- Çeviri: Türkçe→İngilizce çeviride başarısız olabilir
- Matematik: TR-GSM8K'da base modelden zayıf (%52 vs %66)
- Domain-spesifik sınıflandırma: Eğitim verisinde olmayan sektörel kategorileri tanıyamıyor (zero-shot %56, fine-tune ile iyileştirilebilir)
Güçlü Yönleri
- Türkçe akıcılık: Base Qwen3.5-4B'ye kıyasla daha doğal Türkçe
- Kültürel bilgi: Türk deyimleri, atasözleri ve kültürel referanslar
- Yapılandırılmış çıktı: Doğru prompt ile %100 JSON uyumluluğu (e-posta ve log sınıflandırmada kanıtlanmış)
- Hız: 0.6-1.2 saniye/istek — gerçek zamanlı uygulamalara uygun
- Verimlilik: 2.7 GB VRAM — tüketici GPU'larında çalışır
- Üretimde kanıtlanmış: ailm'de 18 izleme kaynağı ile 7/24 çalışıyor
Kullanım
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("mahsum/jazari-4b-sft-tr")
tokenizer = AutoTokenizer.from_pretrained("mahsum/jazari-4b-sft-tr")
messages = [{"role": "user", "content": "Türkiye'nin başkenti neresidir?"}]
inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
output = model.generate(inputs, max_new_tokens=256, temperature=0.7)
print(tokenizer.decode(output[0], skip_special_tokens=True))
Ollama ile
ollama run jazari-4b-sft
ailm ile (sistem izleme)
# ~/.config/ailm/config.toml
[llm]
model = "jazari-4b-sft"
timeout = 30
Gelecek Adımlar (v2 Yol Haritası)
- 26 GB temizlenmiş Türkçe metin ile tam CPT (şu an sadece 674 MB)
- Hizalama eğitimi (SimPO/GRPO)
- Geliştirilmiş format disiplini ve talimat takibi
- Belirsizlik kalibrasyonu ("Bilmiyorum" eğitimi)
- Resmi Cetvel benchmark değerlendirmesi
- Uç cihaz dağıtımı için GGUF nicelenmiş sürümler
English
What is this?
Jazari-4B-SFT-TR is a Qwen3.5-4B model adapted for Turkish through:
- Continued Pre-Training (CPT): 674 MB of Turkish text, 11,939 steps
- Supervised Fine-Tuning (SFT): 73,182 examples across 13 categories, 9,600 steps
Trained on a single RTX 5090 GPU (vast.ai) for ~$75 total cost in ~1 week.
Real-World Deployment: ailm System Monitor
Jazari is deployed in production as the classification engine for ailm, an AI-powered Linux system companion with 18 monitoring sources.
Live System Results (24/7 operation):
| Metric | Result |
|---|---|
| JSON output reliability | 70/70 (100%) — 20 diverse logs + 50 determinism tests |
| Determinism | 100% — same input = same output (temperature=0) |
| Speed | 1.2s/event (11x faster than gpt-oss:20b) |
| VRAM | 2.7 GB (vs 13 GB for gpt-oss:20b) |
| Coverage | Severity, action (restart/investigate/ignore), root cause analysis |
Note: The model card previously stated "Struggles with strict output formats." With a structured system prompt +
temperature=0, JSON compliance is 100% across 70 tests. The key is prompt engineering, not model limitation.
Comparison with other models on ailm classification task:
| Model | Size | Speed | JSON Success | Quality |
|---|---|---|---|---|
| jazari-4b-sft | 4.5 GB | 1.2s | 100% | Excellent |
| gpt-oss:20b | 13 GB | 13.2s | 100% | Excellent |
| gemma3:12b | 8.1 GB | 7.9s | 0% | Cannot produce JSON |
| qwen3.5:4b | 3.4 GB | 67.6s | 25% | Unreliable |
Training Details
| Parameter | Value |
|---|---|
| Base Model | Qwen/Qwen3.5-4B |
| CPT Data | 674 MB Turkish text |
| SFT Data | 73,182 examples (13 categories) |
| LoRA Rank | CPT: r=128, SFT: r=64 (rsLoRA) |
| Framework | Unsloth 2026.3.x + TRL 0.29.1 |
| GPU | NVIDIA RTX 5090 (32 GB VRAM) |
| Total Cost | ~$75 (vast.ai) |
Turkish Benchmark (360 questions)
| Benchmark | jazari | qwen3.5:4b |
|---|---|---|
| TR-MMLU (knowledge) | 85.0% | 80.0% |
| TR-ARC (science) | 98.0% | 84.0% |
| TR-TruthfulQA | 95.0% | 52.5% |
| TR-HellaSwag | 97.5% | 47.5% |
| TR-Cultural | 76.7% | 33.3% |
| Overall (360q) | 82.5% | 65.0% |
Turkish Email Classification (50 real business emails, 11 categories)
Zero-shot test on 50 randomly sampled emails from a 5,548-email business corpus:
| Result | Value |
|---|---|
| Overall accuracy | 56% (28/50) |
| JSON format | 100% (50/50 valid JSON) |
| Speed | 0.6s/email |
| Category Type | Accuracy | Note |
|---|---|---|
| Clear patterns (legal notices, official correspondence) | 100% | Subject line provides sufficient signal |
| Medium complexity (finance, scheduling) | 60% | Requires content analysis |
| Domain-specific (technical jargon, industry terms) | 0-40% | Needs fine-tuning |
JSON format is always correct — the issue is category knowledge, not format discipline. Domain-specific SFT would likely raise accuracy to 85%+.
Known Limitations
- Overconfidence: Rarely says "I don't know"
- Free-form JSON: Inconsistent without structured prompts (works perfectly with structured prompts + temperature=0)
- Translation: Cannot reliably translate Turkish to English
- Math: Weaker than base on TR-GSM8K (52% vs 66%)
- Domain-specific classification: Cannot recognize industry categories not in training data (zero-shot 56%, improvable with fine-tuning)
Strengths
- Turkish fluency: Natural Turkish responses
- Cultural knowledge: Turkish idioms, proverbs, cultural references
- Structured output: 100% JSON compliance with proper prompting (proven in both email and log classification)
- Speed: 0.6-1.2s/request — suitable for real-time applications
- Efficiency: 2.7 GB VRAM — runs on consumer GPUs
- Production-proven: Running 24/7 in ailm with 18 monitoring sources
Citation
@misc{aktas2026jazari,
title={Jazari-4B-SFT-TR: Low-Budget Turkish Adaptation of Qwen3.5-4B},
author={Aktas, Mahsum},
year={2026},
url={https://huggingface.co/mahsum/jazari-4b-sft-tr}
}
Acknowledgments
Jazari, robotik biliminin babası olarak kabul edilen Türk-Müslüman bilim insanı ve mühendis El-Cezerî'den (1136-1206) adını almıştır.
Jazari is named after Al-Jazari (1136-1206), the Turkish-Muslim polymath and engineer, often regarded as the father of robotics.
- Downloads last month
- 618