Özet / At a glance
Table | |
|---|
| Taban model / Base model | openbmb/MiniCPM5-1B |
| Mimari / Architecture | LlamaForCausalLM (MiniCPM5) |
| Parametre / Parameters | 1,080,632,832 |
| Eğitilen parametre / Trained | 1,080,632,832 (100.0%) |
| Yöntem / Method | Supervised fine-tuning (SFT), full-parameter |
| Diller / Languages | Türkçe (birincil), İngilizce (korunmuş) |
| Bağlam / Context | eğitim 2048 token (taban model 131k) |
| Precision | torch.bfloat16 |
| Lisans / License | apache-2.0 |
Kullanım / Usage
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "thealper2/MiniCPM5-1B-Turkish"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, dtype=torch.bfloat16, device_map="auto"
)
messages = [
{"role": "user", "content": "Python'da bir CSV dosyasını okuyup eksik değerleri temizleyen bir fonksiyon yaz."}
]
inputs = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
out = model.generate(inputs, max_new_tokens=512, do_sample=True, temperature=0.7, top_p=0.95)
print(tokenizer.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
Sohbet şablonu taban modelin ChatML türevidir (<|im_start|>role\n...<|im_end|>). Her zaman apply_chat_template kullanın; prompt'u elle kurmayın.
Model, yanıtlarına boş bir düşünme bloğu (<think>\n\n</think>) ile başlayacak şekilde eğitildi; bu, taban modelin enable_thinking=False biçimiyle uyumludur. Uzun zincirleme akıl yürütme (CoT) verisiyle eğitilmedi.
llama.cpp / GGUF
llama-cli -hf thealper2/MiniCPM5-1B-Turkish -p "Merhaba, kendini tanıt."
# veya yerel dosyayla:
llama-cli -m MiniCPM5-1B-Turkish-Q8_0.gguf -cnv
Table with columns: dosya / file, tür / type, boyut / size| dosya / file | tür / type | boyut / size |
|---|
MiniCPM5-1B-Turkish-BF16.gguf | BF16 | 2066 MB |
MiniCPM5-1B-Turkish-Q4_K_M.gguf | Q4_K_M | 656 MB |
MiniCPM5-1B-Turkish-Q5_K_M.gguf | Q5_K_M | 750 MB |
MiniCPM5-1B-Turkish-Q8_0.gguf | Q8_0 | 1100 MB |
Eğitim verisi / Training data
Tüm kaynaklar tek bir konuşma şemasına (messages) normalize edildi; ardından temizleme, tüm veri setleri arasında birebir tekrar temizliği (exact dedup) ve kategori bazlı ağırlıklı örnekleme uygulandı. Veri setleri körlemesine birleştirilmedi.
Table with columns: kaynak / source, kategori, ham satır, temizlik sonrası, seçilen| kaynak / source | kategori | ham satır | temizlik sonrası | seçilen |
|---|
AlicanKiraz0/Turkce-Atlas-Instruct | general_turkish | 336,146 | 336,099 | 55,000 |
tascib/turkish-instruction | general_turkish | 324,080 | 311,627 | 55,000 |
sixfingerdev/turkish-qa-multi-dialog-dataset |
- Birebir tekrar silinen / exact duplicates removed: 27,709
- Eğitim örneği / train examples: 195,876
- Doğrulama örneği / validation examples: 3,960
- Eğitim token'ı / training tokens: 82,165,802 (bunun 42,684,848 tanesi kayıp hesabına giriyor)
- Hedef dağılım / target mix: general_turkish 55%, coding 35%, qa_dialog 10%
Eğitim yöntemi / Training procedure
Table with columns: ayar / setting, değer / value| ayar / setting | değer / value |
|---|
| Yöntem | Full fine-tuning (LoRA/QLoRA kullanılmadı) |
| Kayıp / Loss | Yalnızca asistan token'ları (kullanıcı ve sistem token'ları -100 ile maskelendi) |
| Epoch | 1 |
| Learning rate | 2e-05 |
| Scheduler | cosine (warmup 0.03) |
| Optimizer | paged_adamw_8bit |
| Weight decay | 0.1 |
| Grad clipping | 1.0 |
| Batch |
Eğitim metrikleri / Training metrics
- İlk kayıp / first loss:
2.0483232498168946
- Son kayıp / last loss:
1.3010472297668456
- En iyi doğrulama kaybı / best eval loss:
1.276915431022644
- Zirve GPU belleği / peak VRAM:
5.435 GB
Değerlendirme / Evaluation
Değerlendirme, taban model ile ince ayarlı model üzerinde aynı prompt'lar ve aynı çözümleme ayarlarıyla yapıldı. Türkçe kazanımının genel bir iyileşme anlamına gelmediğini görebilmek için İngilizce ve akıl yürütme yetenekleri de ayrıca ölçüldü (regresyon testi).
Table with columns: sonuç / verdict, prompt| sonuç / verdict | prompt |
|---|
| improved | 9 |
| not auto-scored | 9 |
| possible regression | 2 |
| unchanged | 10 |
Olası gerilemeler / possible regressions
code_js_01 (code_generation): 0/1 vs 1/1 checks
en_code_02 (english_coding): 0/2 vs 2/2 checks
Sınırlar ve riskler / Limitations
- 1B parametreli küçük bir modeldir; olgusal doğruluk sınırlıdır ve halüsinasyon görülebilir.
- Eğitim verisi büyük ölçüde sentetik/derlenmiş Türkçe talimat setlerinden gelir; kaynaklardaki hatalar modele geçmiş olabilir.
- Kaynaklardan biri (
alztrk/turkish-code-instructions) Türkçe karakterleri ASCII'ye indirgenmiş metin içerir; bu nedenle katkısı bilinçli olarak düşük tutuldu.
- Kod çıktıları çalıştırılmadan doğrulanmamıştır; üretime almadan önce test edin.
- Tam ince ayar yapıldığı için taban modelin bazı yetenekleri (ör. araç çağırma, uzun bağlam, 2048 token üstü davranış) zayıflamış olabilir.
- Güvenlik hizalaması ayrıca eğitilmedi; taban modelden gelen davranış korunmaya çalışıldı ancak garanti edilmez.
- Model tıbbi, hukuki veya finansal tavsiye için kullanılmamalıdır.
Yeniden üretim / Reproduction
python scripts/inspect_datasets.py
python scripts/prepare_datasets.py
python scripts/train.py --dry_run
python scripts/train.py
python scripts/compare_models.py --run
Tüm hiperparametreler config/training.yaml içindedir ve eğitim çıktısıyla birlikte config.yaml, dataset_report.json, training_summary.json olarak kaydedilir.
Atıf / Citation
@misc{minicpm5_turkish,
title = {MiniCPM5-1B-Turkish},
note = {Full supervised fine-tune of openbmb/MiniCPM5-1B for Turkish instruction following and coding},
year = {2026}
}
Taban model / base model: openbmb/MiniCPM5-1B