Capstone Module 18: Turkish Mixtral DPO — Bend Open MoE to Turkish
Module 18 capstone: Turkish DPO fine-tune on Mixtral-8x7B-Instruct. 5K Turkish comparison data + QLoRA-DPO + 2× H100 (FSDP) + vLLM deployment. Expert utilization optimized for Turkish. Cost $200-500. Curriculum's 9th production artifact: sukruyusufkaya/mixtral-8x7b-tr-dpo.
Şükrü Yusuf KAYA
85 min read
Advanced🎓 Capstone — 9. Production Artefakt
Modül 18'in 3 dersinde MoE tarihçesi (Jacobs 1991 → DeepSeek-V3), matematik anatomi, V3'ün 3 inovasyonu işlendi. Şimdi bu bilgi yaşayan Türkçe AI ürünü'ne dönüşüyor.
Hedef: Mixtral-8x7B-Instruct üzerine Türkçe DPO fine-tune. Sonuç: production-ready Türkçe MoE model. KVKK uyumlu self-host edilebilir.
Maliyet: $200-500. Süre: 1-2 hafta. Sonuç: Türkçe quality %20-30 boost (Mixtral baseline'a göre).
Müfredatın 9. production artefaktı:
- TurkTokenizer-tr
- Türkçe Semantic Search
- Mini Llama-3 Pretrain
- Türkçe SFT modeli
- Türkçe DPO modeli (Llama-3-8B)
- Türkçe ChatGPT klonu
- Türkçe Reasoning Model (R1-Distill)
- (Modül 18 capstone şu an)
- Türkçe Mixtral MoE ← şimdi
Niye Mixtral DPO'su değerli (Llama-3 DPO'su yanında)?
- MoE mimarisi daha çok kapasite (47B vs 8B)
- General reasoning daha iyi (Mixtral baseline daha güçlü)
- Türkçe için 'bigger model' opsiyonu (KVKK ile birlikte)
85 dakikada her aşamayı, neyi seçtiğini, niye seçtiğini öğreneceksin.
Capstone Akışı (9 Aşama)#
- Hedef ve metrikler — başarı tanımı
- Mixtral seçim gerekçesi — niye Llama-3 değil
- Türkçe karşılaştırma data — Modül 15.6'dan reuse + ek
- QLoRA-DPO MoE setup — multi-GPU FSDP
- Eğitim — 2× H100, 2-3 gün
- Expert utilization analiz — Türkçe için optimize?
- Evaluation — MT-Bench-TR, win rate
- vLLM deployment — MoE serving
- HuggingFace Hub yayın
python
# Modül 18 Capstone — Türkçe Mixtral DPO# QLoRA + DPO + 2× H100 FSDP + vLLM deploymentimport torchfrom transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfigfrom trl import DPOTrainer, DPOConfigfrom peft import LoraConfig, get_peft_model, prepare_model_for_kbit_trainingfrom datasets import load_datasetimport wandb MODEL_BASE = 'mistralai/Mixtral-8x7B-Instruct-v0.1'DATASET_TR = 'sukruyusufkaya/turkish-preferences-5k' # Modül 15.6'danOUTPUT_DIR = './mixtral-8x7b-tr-dpo' wandb.init(project='mixtral-tr-capstone', name='mixtral-tr-dpo-v1') # 1. Quantization (Mixtral 47B → 4-bit ≈ 25 GB, single H100 sınırda)bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_quant_type='nf4', bnb_4bit_use_double_quant=True,) # 2. Modeltokenizer = AutoTokenizer.from_pretrained(MODEL_BASE)tokenizer.pad_token = tokenizer.eos_token model = AutoModelForCausalLM.from_pretrained( MODEL_BASE, quantization_config=bnb_config, device_map='auto', # FSDP otomatik torch_dtype=torch.bfloat16,)model = prepare_model_for_kbit_training(model) # 3. LoRA — MoE için tüm expert FFN'leri targetlora_config = LoraConfig( r=16, lora_alpha=32, target_modules=[ 'q_proj', 'k_proj', 'v_proj', 'o_proj', # MoE expert FFN'leri 'gate_proj', 'up_proj', 'down_proj', # Gating network (kritik!) 'gate', # Mixtral gating layer adı ], lora_dropout=0.05, bias='none', task_type='CAUSAL_LM',)model = get_peft_model(model, lora_config)model.print_trainable_parameters() # ~50M trainable (47B'nin %0.1'i) # 4. Datasetdataset = load_dataset(DATASET_TR, split='train')split = dataset.train_test_split(test_size=0.05, seed=42)train_dataset = split['train'] # 4,750val_dataset = split['test'] # 250 # 5. DPO configdpo_config = DPOConfig( output_dir=OUTPUT_DIR, num_train_epochs=1, per_device_train_batch_size=1, gradient_accumulation_steps=32, # effective batch 32 learning_rate=3e-6, # MoE daha hassas, biraz düşük warmup_steps=100, lr_scheduler_type='cosine', optim='paged_adamw_8bit', bf16=True, beta=0.1, max_length=4096, max_prompt_length=2048, logging_steps=10, eval_strategy='steps', eval_steps=100, save_steps=200, save_total_limit=3, report_to='wandb', run_name='mixtral-tr-dpo-v1', load_best_model_at_end=True,) # 6. DPO trainertrainer = DPOTrainer( model=model, ref_model=None, args=dpo_config, train_dataset=train_dataset, eval_dataset=val_dataset, tokenizer=tokenizer, peft_config=lora_config,) # 7. Train — 2× H100 FSDP, ~36 saat# Komut: torchrun --nproc_per_node=2 capstone.pytrainer.train()trainer.save_model(OUTPUT_DIR + '/final') # 8. LoRA mergefrom peft import PeftModelbase_model = AutoModelForCausalLM.from_pretrained( MODEL_BASE, torch_dtype=torch.bfloat16, device_map='auto',)model_with_lora = PeftModel.from_pretrained(base_model, OUTPUT_DIR + '/final')merged_model = model_with_lora.merge_and_unload()merged_model.save_pretrained(OUTPUT_DIR + '/merged')tokenizer.save_pretrained(OUTPUT_DIR + '/merged') # 9. HuggingFace Hub pushmerged_model.push_to_hub('sukruyusufkaya/mixtral-8x7b-tr-dpo')tokenizer.push_to_hub('sukruyusufkaya/mixtral-8x7b-tr-dpo') # 10. vLLM deployment (production)# vllm serve sukruyusufkaya/mixtral-8x7b-tr-dpo \# --tensor-parallel-size 2 \# --gpu-memory-utilization 0.9 \# --max-model-len 8192 \# --port 8000 print('🎉 Capstone tamamlandı!')print('Model: https://huggingface.co/sukruyusufkaya/mixtral-8x7b-tr-dpo')print('Maliyet: ~$200-500 (2× H100 spot, 36-48 saat)') Türkçe Mixtral DPO Capstone — Production Pipeline
🎉 Modül 18 Tamamlandı — MoE'nin Tam Anatomi
Modül 18 final (4 ders, 335 dakika):
- 18.1: MoE Tarihçesi — Jacobs 1991 → DeepSeek-V3, 33 yıllık devrim
- 18.2: MoE Matematik — gating, routing, load balancing, PyTorch sıfırdan
- 18.3: DeepSeek-V3 İnovasyonları — MLA, aux-free, MTP, $5.6M training secret
- 18.4 Capstone: Türkçe Mixtral DPO — 9. production artefakt
Müfredatın 9. production artefaktı üretildi: . Türkçe quality %20-30 boost.
sukruyusufkaya/mixtral-8x7b-tr-dpoÖnceki: 1 ders / 75 dk → Şimdi: 4 ders / 335 dk. 4.5× genişleme, uzman kalitesi.
Modül 18 Envanteri (Yeniden Yazıldı)#
| # | Ders | Süre |
|---|---|---|
| 18.1 | MoE Tarihçesi: Jacobs 1991 → V3 | 80 dk |
| 18.2 | MoE Matematik Anatomi | 85 dk |
| 18.3 | DeepSeek-V3 İnovasyonları | 85 dk |
| 18.4 | Capstone Türkçe Mixtral DPO | 85 dk |
| Toplam | 4 ders | 335 dk (~5.6 saat) |
Önceki: 1 ders / 75 dk → Şimdi: 4 ders / 335 dk.
Frequently Asked Questions
**Depends on problem**:
**Mixtral 8x7B DPO** advantages:
- 47B params, larger capacity
- Better general reasoning
- Apache 2.0 license (more flexible than Llama community license)
**Llama-3-8B DPO** advantages:
- 8B params, smaller → single GPU
- 4× faster inference
- Simple setup (no FSDP needed)
**Decision matrix**:
- 1 GPU constraints: Llama-3-8B
- 2+ GPU + quality critical: Mixtral 8x7B
- Self-host + cost-sensitive: Llama-3-8B
- Open API service: both work
**For Turkish**: hybrid best — simple questions Llama, complex Mixtral. Route via router (Module 17.2).
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
Module 0: Course Framework & Workshop Setup
Who Is an LLM Engineer? The AI Engineering Career Ladder from Junior to Staff
Start LearningModule 0: Course Framework & Workshop Setup
Course Philosophy: Why This Path, Why This Order — The Skeleton of an 8-Month Curriculum
Start LearningModule 0: Course Framework & Workshop Setup