echo / MVP /PROGRESS.md
void0x14
docs: PIVOT — budama terk edildi, Q4_K_M quantize onaylandi (kayipsiz) + ROADMAP gelecek opsiyonlari
eae60b4 unverified
|
Raw
History Blame Contribute Delete
4.31 kB
# PROGRESS — Qwen3.5 Multimodal Prune + KD + RX460 Teslim
Güncelleme: her adımda, ölçülen değerle. Tahmin yok, kaynak hep var.
## ⚠️ PIVOT (19 Ağu) — Budama TERK EDİLDİ, Quantize yaklaşımı ONAYLANDI
**Neden (derin literatür + kullanıcının RX460 benchmark'ları):**
-- 24→4 katman budama (%83 derinlik kaybı) kod/reasoning yeteneğini ÖLDÜRÜYOR (güvenli bölge %15-25).
-- F2LLM-v2 'ilk N blok' tarifi EMBEDDING modellerine özgü; generative/kod modeline taşınmaz.
-- %0 kod verisiyle distill → catastrophic forgetting; kod yeteneği silindi (ölçüldü: ORIG kod yazıyor, pruned yazamıyor).
-- Qwen3.5-0.8B Q4_K_M (497 MiB) zaten RX460 2GB'a SIĞIYOR ve hızlı (GPU 85 t/s).
**Yeni doğru yol:** Orijinal Qwen3.5-0.8B'yi OLDUĞU GİBİ Q4_K_M'e quantize et. Budama YOK, eğitim YOK.
-- Yetenek KAYIPSIZ korunur (kod + vision + reasoning).
**DOĞRULANDI (ölçüldü):**
-- GGUF çifti: MVP/artifacts/gguf-vision/qwen35-text-Q4_K_M.gguf (block_count=24, orijinal) + mmproj-F32.gguf
-- CPU (ngl=0) VE GPU Vulkan (ngl=99) multimodal test: çizilen test sahnesini kusursuz tanımladı
(kahverengi ev + kırmızı çatı + yeşil alan + sarı güneş + mavi gökyüzü); chain-of-thought reasoning çalışıyor.
-- Benchmark: Q4_K_M GPU ngl=99 tg128 = 85 t/s (Q8_0'ın 78 t/s'inden HIZLI), boyut 497 MiB.
-- Default context 4k (hız/gecikme tatlı noktası), gerekirse max 16k'ya genişletilebilir. Model+KVcache GPU'da.
## ⚠️⚠️ ROADMAP — GELECEK OPSİYONLARI (UNUTMA!) ⚠️⚠️
**İLERİDE HIZLAR YETMEZSE GEREKEBİLİR — ŞU ÜÇ YÖNDEN BİRİNE GİDİLEBİLİR:**
**1) BİTİ DÜŞÜRMEK (Q4_K_M → Q3/IQ3 — DİKKAT: kodlama quant'a en hassas görev, 3-bit uçurum kenarı, 2-bit çöküş), VEYA**
**2) MODEL PARAMETRESİNİ DÜŞÜRMEK (dikkatli/az budama + MUTLAKA kod verili distill), VEYA**
**3) MODEL PARAMETRESİ + BİTİ BİRLİKTE DÜŞÜRMEK.**
**GEREKİRSE BU YOLLARA BAŞVURULACAK. ŞU AN Q4_K_M + ORİJİNAL 0.8B YETERLİ VE KAYIPSIZ.**
## [x] 1. Base modeli indir ve doğrula (Qwen/Qwen3.5-0.8B-Base)
- Multimodal: Qwen3_5ForConditionalGeneration, ~873M (text ~773M + vision ~100.6M)
- text_config: hidden 1024, inter 3584, 24 blok hybrid [linear×3+full]×6, head_dim 256,
vocab 248,320 TIED; vision_config: 12 blok, hidden 768, inter 3072, patch 16,
pos_embed 2304, merger fc1 3072→3072 + fc2 3072→1024 + norm
- Kaynak: /tmp/opencode/qwen35-base-src/ (12 dosya indirildi)
## [x] 2. F2LLM-v2 kuralı: ilk N blok (activation-norm seçimi YOK)
- text bloklar [0..3], vision bloklar [0..5], mtp atıldı → TEK model
- **395,365,088 param = text 337,299,424 + vision 58,065,664** (330–450M aralığı ✓)
- Çıktı: MVP/artifacts/qwen35-multimodal-n4v6/ (model.safetensors TEK dosya, 55+81 tensor)
- Doğrulama: MVP/test_multimodal_forward.py — forward OK, MISSING 0
## [ ] 3. Multimodal KD (FP32, CPU — RX460 FP16/BF16 desteklemiyor)
- teacher = base (tam, text+vision BİRLİKTE, frozen, eval)
- student = qwen35-multimodal-n4v6 (tüm parametreler trainable)
- loss = CE (teacher probs) + MSE (son hidden state); AdamW cosine+warmup
- çıktı: MVP/artifacts/qwen35-multimodal-n4v6/distilled/ (model.safetensors)
## [ ] 4. KD sonrası doğrulama
- Parametre: 395,365,088 sabit mi (değişmemeli — sadece ağırlık güncellendi)
- forward OK, MISSING 0
## [ ] 5. GGUF üretimi — FP32 zorunlu (BF16/FP16 YASAK, kart desteklemiyor)
- text: --outfile qwen35-multimodal-n4v6-f32.gguf --outtype f32 --no-mtp
- mmproj: --mmproj --outtype f32 (82 tensor, v.*)
- quantize: llama-quantize her ikisini Q8_0 → teslim GGUF'lar
- Dosyalar: MVP/artifacts/gguf-multimodal-fp32-or-q8/
## [ ] 6. RX460 + Vulkan çalıştırma kanıtı
- GPU: AMD Radeon RX 460 (Polaris — FP16 yok)
- llama-cli --device Vulkan0 --image red.png → anlamlı cevap (KD sonrası)
- kanıt logları: MVP/evidence/
## [ ] 7. Teslim belgeleri + commit
- ANLASILAN.md güncelle, PROGRESS.md güncel, atomic commit
## Kimler geçersiz (kullanma)
- MVP/artifacts/gguf-multimodal/qwen35-n4v6.gguf → BF16 üretildi, RX460'ta ÇALIŞMAZ — FP32'den yeni üretilecek
- MVP/artifacts/qwen35-distilled-n4/ (text-only ürün — ayrı, iptal)
- MVP/qwen35_prune.py + validate_checkpoint.py (text-only hattı — multimodal hat kullanılır)