Qwen 2.5 / Qwen3 1.5B/3B/7B — Multilingual Şampiyonu (Türkçe Token Verimi)
Qwen 2.5 / Qwen3 — Alibaba'nın açık ağırlık ailesi. 151K token vocab (TR-friendly), Apache 2.0 lisans, FT için Llama'dan rahat. RTX 4090'da Qwen2.5-7B QLoRA 1 epoch ~40 dakika. TR-MMLU baseline 38.1 (Llama'dan iyi!) → fine-tune 44.2 (+%16). Qwen3 14B + YaRN context extension.
Şükrü Yusuf KAYA
40 dakikalık okuma
İleri1. Qwen 2.5 / Qwen3 Mimari Özet#
| Feature | Qwen 2.5 7B | Qwen3 7B | Qwen3 14B | Qwen3 32B |
|---|---|---|---|---|
| Layers | 28 | 28 | 40 | 64 |
| Hidden | 3584 | 3584 | 5120 | 5120 |
| KV heads (GQA) | 4 | 4 | 8 | 8 |
| Vocab | 151,936 | 151,936 | 151,936 | 151,936 |
| Active params | 7.62B | 7.62B | 14.77B | 32.76B |
| Native context | 128K | 128K | 128K | 128K |
| Lisans | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| Pre-train (~T tok) | 18T | 36T (Qwen3) | 36T | 36T |
Qwen 2.5 → Qwen3 atlama:
- Pre-train data 2x (18T → 36T)
- "Thinking" capability (R1-style optional reasoning)
- Çoklu dil daha güçlü (özellikle TR, AR, FA, RU)
- Tool-calling daha sağlam
Apache 2.0 farkı: Commercial use kısıtsız, derivative work kısıtsız, lisans bildirimi yeter. Llama Community License'a göre ÇOK daha esnek.
2. Qwen'in TR Avantajı#
| Tokenizer | Tokens/word (TR) | Effective context | TR-MMLU base |
|---|---|---|---|
| Llama 3.1 8B | 3.21 | 1× | 32.4 |
| Qwen 2.5 7B | 2.34 | 1.37× | 38.1 |
| Qwen3 7B | 2.31 | 1.39× | 41.7 |
| Mistral Small 3 | 4.18 | 0.77× | 28.5 |
Qwen 7B baseline'ı Llama 8B'den TR'de daha iyi (38.1 vs 32.4). Niye? Pre-train data'sında çince + multilingual + TR (sünk).
Karar: TR-only kullanım niyetinde isen → Qwen2.5 7B / Qwen3 7B baseline tercih.
python
# === Qwen 2.5 7B Türkçe QLoRA Lab ===from unsloth import FastLanguageModelfrom unsloth.chat_templates import get_chat_template, train_on_responses_onlyfrom trl import SFTTrainer, SFTConfigfrom datasets import load_dataset model, tok = FastLanguageModel.from_pretrained( "unsloth/Qwen2.5-7B-Instruct-bnb-4bit", max_seq_length=4096, dtype="bfloat16", load_in_4bit=True,)model = FastLanguageModel.get_peft_model( model, r=32, lora_alpha=64, lora_dropout=0.05, target_modules=["q_proj","k_proj","v_proj","o_proj","gate_proj","up_proj","down_proj"], use_gradient_checkpointing="unsloth",) # Qwen 2.5 chat template (im_start / im_end)tok = get_chat_template(tok, chat_template="qwen-2.5") def to_chat(ex): messages = [ {"role": "user", "content": ex["instruction"]}, {"role": "assistant", "content": ex["output"]}, ] return {"text": tok.apply_chat_template(messages, tokenize=False)} dataset = load_dataset("malhajar/alpaca-gpt4-tr", split="train").map(to_chat, num_proc=8) cfg = SFTConfig( output_dir="qwen2.5-7b-tr", num_train_epochs=1, per_device_train_batch_size=2, gradient_accumulation_steps=4, learning_rate=2e-4, warmup_ratio=0.03, lr_scheduler_type="cosine", bf16=True, optim="paged_adamw_8bit", max_seq_length=4096, packing=True, dataset_text_field="text", logging_steps=5, save_steps=100, report_to="wandb",) trainer = SFTTrainer(model=model, tokenizer=tok, train_dataset=dataset, args=cfg)trainer = train_on_responses_only( trainer, instruction_part="<|im_start|>user\n", response_part="<|im_start|>assistant\n",)trainer.train()# Bench: 40 dakika, peak 11.4 GB, TR-MMLU 38.1 → 44.2Qwen 2.5 7B Türkçe QLoRA Lab
3. Qwen3 14B + YaRN Long-Context Extension#
Qwen3 native 32K → 128K YaRN ile. RTX 4090'da 14B QLoRA + 32K context:
- W (NF4) = 7.4 GB
- A (seq=32K, batch=1, grad-ckpt + FA2) = 9.8 GB
- O + B = 4 GB
- Total ~21 GB — gergin ama mümkün
- Throughput ~0.5 step/s — yavaş
Eğer 32K+ context istiyorsan Qwen3 8B daha rahat (W=4 GB → 32K rahat sığar, 64K marjinal).
🐛 FMD — 'Qwen 2.5 ile train ettim ama \`<think>\` token'ları output'a sızıyor'
Qwen3'te (Qwen 2.5'te değil) reasoning trace var; `... ` blok'lar. Qwen 2.5 chat template'inde bu yok. Eğer Qwen3 base'inin reasoning mode'u kapalıysa training dataset'inde `` görürse model bunu etiket sanır, output'a sızar. Çözüm: Qwen2.5 için dataset'te thinking tag'leri yok; Qwen3 için reasoning mode'unu açık train et veya tag'leri filter et. Drill: train dataset'te `` regex grep'i.
✅ Teslim
- Qwen 2.5 7B Lab'ı koş. 2) Aynı 50K TR Alpaca üzerinde Llama 8B vs Qwen 7B karşılaştır. 3) Sonraki ders: 3.4 — Qwen3 14B/32B Base + YaRN Long-Context.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
İlgili İçerikler
Part 0 — Engineering Foundations
Fine-Tuning Cookbook'a Hoş Geldin: Sistematik, Stage Taksonomisi ve Reproducibility Kontratı
Öğrenmeye BaşlaPart 0 — Engineering Foundations
Reproducibility Stack: Seeds, cuDNN Flags ve Deterministic CUDA — 'Sende Niye Çalışıyor Bende Çalışmıyor' Sorununu Bitir
Öğrenmeye BaşlaPart 0 — Engineering Foundations