Skip to content

Training

ChiefVenzox edited this page Jun 18, 2026 · 1 revision

Eğitim

Boru hattı

1) veri      (seed üret veya kendi JSONL'lerin)   backend/datasets/*.jsonl
2) tokenizer  ->  backend/checkpoints/tokenizer.json
3) veri hazırla  ->  backend/datasets/bin/{train,val}.bin + meta.json
4) model eğit    ->  backend/checkpoints/ckpt.pt
5) çalıştır      ->  backend (uvicorn) + frontend (vite)

Komutlar (proje kökünden)

# 0) örnek tohum veri (8 kategori, dengeli) — kendi verin varsa atla
python backend/datasets/build_seed.py

# 1) kendi BPE tokenizer'ımız
python scripts/train_tokenizer.py --input backend/datasets --vocab-size 16000

# 2) JSONL -> token bin
python scripts/prepare_dataset.py --input backend/datasets --out backend/datasets/bin

# 3) eğitim (GTX 1660 Ti)
python scripts/train_model.py --preset chiefui-30m --data backend/datasets/bin
#   hızlı deneme:
python scripts/train_model.py --preset chiefui-tiny --data backend/datasets/bin --max-steps 1000
#   devam et (resume):
python scripts/train_model.py --resume backend/checkpoints/ckpt.pt --data backend/datasets/bin

6 GB VRAM ipuçları

  • Turing (1660 Ti) fp16 kullanır (otomatik; bf16 emülasyon kapalı).
  • CUDA out of memory--batch-size düşür, --grad-accum artır; gradient_checkpointing zaten açık; block_size'ı 1024 → 512 yap.
  • 8-bit optimizer (opsiyonel): config'te use_8bit_optimizer=True + bitsandbytes kur.

CPU fallback

GPU yoksa --device cpu ile çalışır (çok yavaş, sadece test).

Çıktı kalitesini artırmak

Sıfırdan model veriyle iyileşir. En yüksek etkili adımlar:

  1. Veriyi büyüt/dengele. backend/datasets/build_seed.py'yi genişlet ya da kendi *.jsonl örneklerini ekle. Her kategori için farklı ifadelerle bol örnek (örn. "Create a button", "Make a CTA button", "I need a button") modelin prompt'taki anahtar kelimeyi çıktı türüyle ilişkilendirmesini sağlar.
  2. Daha büyük preset + uzun eğitim (chiefui-30m, daha çok adım).
  3. Daha büyük bağlam gerekiyorsa block_size'ı artır (VRAM ile dengele).

Checkpoint mantığı

  • Eğitim sırasında eval iyileşince en iyi model ckpt.pt'ye yazılır.
  • Koşu sonunda her zaman ckpt_last.pt yazılır.
  • Eval hiç çalışmadıysa (kısa koşu) son model ckpt.pt olarak da yazılır (eski/bayat bir ckpt.pt üzerine yazılır) — böylece backend daima güncel modeli yükler.
  • Devam etmek için: --resume backend/checkpoints/ckpt.pt.

Clone this wiki locally