void0x14 commited on
Commit
eae60b4
·
unverified ·
1 Parent(s): 4ed7710

docs: PIVOT — budama terk edildi, Q4_K_M quantize onaylandi (kayipsiz) + ROADMAP gelecek opsiyonlari

Browse files

- Budama (24->4 katman) kod/reasoning olduruyor olculdu; F2LLM-v2 embedding-ozgu
- Orijinal 0.8B Q4_K_M kayipsiz: kod+vision+reasoning korunuyor (RX460 85 t/s)
- ROADMAP: ileride bit/parametre/ikisi birden dusurulebilir (buyuk harflerle not)

Files changed (2) hide show
  1. MVP/PROGRESS.md +71 -0
  2. README.md +60 -0
MVP/PROGRESS.md ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PROGRESS — Qwen3.5 Multimodal Prune + KD + RX460 Teslim
2
+
3
+ Güncelleme: her adımda, ölçülen değerle. Tahmin yok, kaynak hep var.
4
+
5
+ ## ⚠️ PIVOT (19 Ağu) — Budama TERK EDİLDİ, Quantize yaklaşımı ONAYLANDI
6
+
7
+ **Neden (derin literatür + kullanıcının RX460 benchmark'ları):**
8
+ -- 24→4 katman budama (%83 derinlik kaybı) kod/reasoning yeteneğini ÖLDÜRÜYOR (güvenli bölge %15-25).
9
+ -- F2LLM-v2 'ilk N blok' tarifi EMBEDDING modellerine özgü; generative/kod modeline taşınmaz.
10
+ -- %0 kod verisiyle distill → catastrophic forgetting; kod yeteneği silindi (ölçüldü: ORIG kod yazıyor, pruned yazamıyor).
11
+ -- Qwen3.5-0.8B Q4_K_M (497 MiB) zaten RX460 2GB'a SIĞIYOR ve hızlı (GPU 85 t/s).
12
+
13
+ **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.
14
+ -- Yetenek KAYIPSIZ korunur (kod + vision + reasoning).
15
+
16
+ **DOĞRULANDI (ölçüldü):**
17
+ -- GGUF çifti: MVP/artifacts/gguf-vision/qwen35-text-Q4_K_M.gguf (block_count=24, orijinal) + mmproj-F32.gguf
18
+ -- CPU (ngl=0) VE GPU Vulkan (ngl=99) multimodal test: çizilen test sahnesini kusursuz tanımladı
19
+ (kahverengi ev + kırmızı çatı + yeşil alan + sarı güneş + mavi gökyüzü); chain-of-thought reasoning çalışıyor.
20
+ -- Benchmark: Q4_K_M GPU ngl=99 tg128 = 85 t/s (Q8_0'ın 78 t/s'inden HIZLI), boyut 497 MiB.
21
+ -- Default context 4k (hız/gecikme tatlı noktası), gerekirse max 16k'ya genişletilebilir. Model+KVcache GPU'da.
22
+
23
+ ## ⚠️⚠️ ROADMAP — GELECEK OPSİYONLARI (UNUTMA!) ⚠️⚠️
24
+ **İLERİDE HIZLAR YETMEZSE GEREKEBİLİR — ŞU ÜÇ YÖNDEN BİRİNE GİDİLEBİLİR:**
25
+ **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**
26
+ **2) MODEL PARAMETRESİNİ DÜŞÜRMEK (dikkatli/az budama + MUTLAKA kod verili distill), VEYA**
27
+ **3) MODEL PARAMETRESİ + BİTİ BİRLİKTE DÜŞÜRMEK.**
28
+ **GEREKİRSE BU YOLLARA BAŞVURULACAK. ŞU AN Q4_K_M + ORİJİNAL 0.8B YETERLİ VE KAYIPSIZ.**
29
+
30
+
31
+ ## [x] 1. Base modeli indir ve doğrula (Qwen/Qwen3.5-0.8B-Base)
32
+ - Multimodal: Qwen3_5ForConditionalGeneration, ~873M (text ~773M + vision ~100.6M)
33
+ - text_config: hidden 1024, inter 3584, 24 blok hybrid [linear×3+full]×6, head_dim 256,
34
+ vocab 248,320 TIED; vision_config: 12 blok, hidden 768, inter 3072, patch 16,
35
+ pos_embed 2304, merger fc1 3072→3072 + fc2 3072→1024 + norm
36
+ - Kaynak: /tmp/opencode/qwen35-base-src/ (12 dosya indirildi)
37
+
38
+ ## [x] 2. F2LLM-v2 kuralı: ilk N blok (activation-norm seçimi YOK)
39
+ - text bloklar [0..3], vision bloklar [0..5], mtp atıldı → TEK model
40
+ - **395,365,088 param = text 337,299,424 + vision 58,065,664** (330–450M aralığı ✓)
41
+ - Çıktı: MVP/artifacts/qwen35-multimodal-n4v6/ (model.safetensors TEK dosya, 55+81 tensor)
42
+ - Doğrulama: MVP/test_multimodal_forward.py — forward OK, MISSING 0
43
+
44
+ ## [ ] 3. Multimodal KD (FP32, CPU — RX460 FP16/BF16 desteklemiyor)
45
+ - teacher = base (tam, text+vision BİRLİKTE, frozen, eval)
46
+ - student = qwen35-multimodal-n4v6 (tüm parametreler trainable)
47
+ - loss = CE (teacher probs) + MSE (son hidden state); AdamW cosine+warmup
48
+ - çıktı: MVP/artifacts/qwen35-multimodal-n4v6/distilled/ (model.safetensors)
49
+
50
+ ## [ ] 4. KD sonrası doğrulama
51
+ - Parametre: 395,365,088 sabit mi (değişmemeli — sadece ağırlık güncellendi)
52
+ - forward OK, MISSING 0
53
+
54
+ ## [ ] 5. GGUF üretimi — FP32 zorunlu (BF16/FP16 YASAK, kart desteklemiyor)
55
+ - text: --outfile qwen35-multimodal-n4v6-f32.gguf --outtype f32 --no-mtp
56
+ - mmproj: --mmproj --outtype f32 (82 tensor, v.*)
57
+ - quantize: llama-quantize her ikisini Q8_0 → teslim GGUF'lar
58
+ - Dosyalar: MVP/artifacts/gguf-multimodal-fp32-or-q8/
59
+
60
+ ## [ ] 6. RX460 + Vulkan çalıştırma kanıtı
61
+ - GPU: AMD Radeon RX 460 (Polaris — FP16 yok)
62
+ - llama-cli --device Vulkan0 --image red.png → anlamlı cevap (KD sonrası)
63
+ - kanıt logları: MVP/evidence/
64
+
65
+ ## [ ] 7. Teslim belgeleri + commit
66
+ - ANLASILAN.md güncelle, PROGRESS.md güncel, atomic commit
67
+
68
+ ## Kimler geçersiz (kullanma)
69
+ - MVP/artifacts/gguf-multimodal/qwen35-n4v6.gguf → BF16 üretildi, RX460'ta ÇALIŞMAZ — FP32'den yeni üretilecek
70
+ - MVP/artifacts/qwen35-distilled-n4/ (text-only ürün — ayrı, iptal)
71
+ - MVP/qwen35_prune.py + validate_checkpoint.py (text-only hattı — multimodal hat kullanılır)
README.md CHANGED
@@ -1,3 +1,63 @@
1
  ---
2
  license: agpl-3.0
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: agpl-3.0
3
  ---
4
+
5
+ # echo — Qwen3.5-0.8B Multimodal (Q4_K_M)
6
+
7
+ Hafif, hızlı, **kayıpsız** multimodal model. AMD RX460 2GB VRAM / Ryzen 5 3600 CPU için optimize.
8
+ Gated DeltaNet hybrid attention sayesinde KV cache klasik modelin ~4'te 1'i; uzun kontekst düşük donanımda pratik.
9
+
10
+ ## Yaklaşım: Quantize ET — Budama YAPMA
11
+
12
+ Orijinal `Qwen/Qwen3.5-0.8B-Base` (native early-fusion multimodal) **olduğu gibi** Q4_K_M'e quantize edildi.
13
+ **Budama YOK, yeniden eğitim YOK** — kod + vision + reasoning yeteneği kayıpsız korunur.
14
+
15
+ ### Neden budama değil? (derin literatür + ölçüm)
16
+ - 24→4 katman budama = %83 derinlik kaybı. Literatür (Gromov ICLR'25, ShortGPT, Minitron): generative
17
+ modellerde güvenli bölge %15-25 derinlik kaybı; %30 üstünde kod/reasoning ÇÖKER.
18
+ - F2LLM-v2 "ilk N blok" tarifi **embedding** modellerine özgüdür; generative/kod üreten modele taşınmaz.
19
+ - Ölçüldü: %0 kod verisiyle distill → catastrophic forgetting; budanmış model kod yazamadı,
20
+ orijinal Q4_K_M kod+vision+reasoning hepsini koruyor.
21
+ - Qwen3.5-0.8B Q4_K_M (497 MiB) zaten RX460 2GB'a SIĞIYOR ve hızlı → budamak gereksiz.
22
+
23
+ ## Dosyalar
24
+ | Dosya | Açıklama | Boyut |
25
+ |-------|----------|-------|
26
+ | `MVP/artifacts/gguf-vision/qwen35-text-Q4_K_M.gguf` | Text backbone (24 katman, orijinal) | 497 MiB |
27
+ | `MVP/artifacts/gguf-vision/mmproj-F32.gguf` | Vision projector (mmproj) | 402 MiB |
28
+
29
+ ## Benchmark (RX460, Vulkan, n_batch=512, fa=1)
30
+ | Model | size | backend | ngl | test | t/s |
31
+ |-------|------|---------|-----|------|-----|
32
+ | qwen35 0.8B Q8_0 | 763.78 MiB | Vulkan | 99 | tg128 | 78.34 |
33
+ | **qwen35 0.8B Q4_K_M** | **497.39 MiB** | Vulkan | 99 | **tg128** | **85.10** |
34
+ | qwen35 0.8B Q4_K_M | 497.39 MiB | Vulkan | 99 | pp4096 | 684.35 |
35
+ | qwen35 0.8B Q4_K_M | 497.39 MiB | Vulkan | 0 (CPU) | tg128 | 47.83 |
36
+
37
+ - **Q4_K_M, Q8_0'dan HIZLI** (85 vs 78 t/s) ve daha küçük.
38
+ - **Konfigürasyon: default context 4k** (hız/gecikme tatlı noktası); gerekirse **max 16k**'ya genişletilebilir.
39
+ - Model + KV cache GPU'da (ngl=99).
40
+ - Gated DeltaNet: tg128, pp2048→pp16384 arası sabit ~85 t/s (KV cache şişmez).
41
+
42
+ ## Doğrulama (ölçüldü)
43
+ - `llama-mtmd-cli` ile CPU (ngl=0) VE GPU Vulkan (ngl=99) multimodal test:
44
+ çizilen test sahnesini kusursuz tanımladı — *"A minimalist landscape features a brown house with a
45
+ red roof, a green field, and a yellow sun in a blue sky."* (kahverengi ev + kırmızı çatı + yeşil
46
+ alan + sarı güneş + mavi gökyüzü). Chain-of-thought reasoning çalışıyor.
47
+ - block_count=24 doğrulandı (orijinal, budanmamış).
48
+
49
+ ## Kullanım
50
+ ```bash
51
+ llama-mtmd-cli \
52
+ -m MVP/artifacts/gguf-vision/qwen35-text-Q4_K_M.gguf \
53
+ --mmproj MVP/artifacts/gguf-vision/mmproj-F32.gguf \
54
+ --image FOTO.jpg -p "Describe this image." \
55
+ -c 4096 -ngl 99 --image-min-tokens 1024
56
+ ```
57
+
58
+ ## ⚠️⚠️ ROADMAP — GELECEK OPSİYONLARI (UNUTMA!) ⚠️⚠️
59
+ **İLERİDE HIZLAR YETMEZSE GEREKEBİLİR — ŞU ÜÇ YÖNDEN BİRİNE GİDİLEBİLİR:**
60
+ **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**
61
+ **2) MODEL PARAMETRESİNİ DÜŞÜRMEK (dikkatli/az budama + MUTLAKA kod verili distill), VEYA**
62
+ **3) MODEL PARAMETRESİ + BİTİ BİRLİKTE DÜŞÜRMEK.**
63
+ **GEREKİRSE BU YOLLARA BAŞVURULACAK. ŞU AN Q4_K_M + ORİJİNAL 0.8B YETERLİ VE KAYIPSIZ.**