Skip to content

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 Modül 18: Türkçe Mixtral DPO — Açık MoE'yi Türkçeye Bük
🎓 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ı:
  1. TurkTokenizer-tr
  2. Türkçe Semantic Search
  3. Mini Llama-3 Pretrain
  4. Türkçe SFT modeli
  5. Türkçe DPO modeli (Llama-3-8B)
  6. Türkçe ChatGPT klonu
  7. Türkçe Reasoning Model (R1-Distill)
  8. (Modül 18 capstone şu an)
  9. 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)#

  1. Hedef ve metrikler — başarı tanımı
  2. Mixtral seçim gerekçesi — niye Llama-3 değil
  3. Türkçe karşılaştırma data — Modül 15.6'dan reuse + ek
  4. QLoRA-DPO MoE setup — multi-GPU FSDP
  5. Eğitim — 2× H100, 2-3 gün
  6. Expert utilization analiz — Türkçe için optimize?
  7. Evaluation — MT-Bench-TR, win rate
  8. vLLM deployment — MoE serving
  9. HuggingFace Hub yayın
python
# Modül 18 Capstone — Türkçe Mixtral DPO
# QLoRA + DPO + 2× H100 FSDP + vLLM deployment
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
from trl import DPOTrainer, DPOConfig
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
from datasets import load_dataset
import wandb
 
MODEL_BASE = 'mistralai/Mixtral-8x7B-Instruct-v0.1'
DATASET_TR = 'sukruyusufkaya/turkish-preferences-5k' # Modül 15.6'dan
OUTPUT_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. Model
tokenizer = 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 target
lora_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. Dataset
dataset = load_dataset(DATASET_TR, split='train')
split = dataset.train_test_split(test_size=0.05, seed=42)
train_dataset = split['train'] # 4,750
val_dataset = split['test'] # 250
 
# 5. DPO config
dpo_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 trainer
trainer = 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.py
trainer.train()
trainer.save_model(OUTPUT_DIR + '/final')
 
# 8. LoRA merge
from peft import PeftModel
base_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 push
merged_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:
sukruyusufkaya/mixtral-8x7b-tr-dpo
. Türkçe quality %20-30 boost.
Önceki: 1 ders / 75 dk → Şimdi: 4 ders / 335 dk. 4.5× genişleme, uzman kalitesi.

Modül 18 Envanteri (Yeniden Yazıldı)#

#DersSüre
18.1MoE Tarihçesi: Jacobs 1991 → V380 dk
18.2MoE Matematik Anatomi85 dk
18.3DeepSeek-V3 İnovasyonları85 dk
18.4Capstone Türkçe Mixtral DPO85 dk
Toplam4 ders335 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