1.5 KiB
1.5 KiB
Modèles (external storage prod ; staging /data/local/tmp/kz-engine)
Choisi (26/05) — Speaker
| Rôle | GGUF | Taille | Decode | Note |
|---|---|---|---|---|
| Speaker | q35-lmq4.gguf (Qwen3.5-4B, embeds Q4) |
2.38 GB | ~10.8 | choisi (éval qualité : gagne SAFETY+SUPPORT vs dense) |
| Alternative rapide | Qwen3-4B-Q4_0 (dense) |
2.21 GB | ~11.7 | + rapide/simple mais perd le SAFETY ; repli si q35 pose souci |
| Thinker (cascade option.) | Qwen3Guard-Gen-4B.Q4_K_M |
2.5 GB | ~11 | bullets, si on garde une cascade |
9B écarté : decode réel ~4-5 t/s (contention), pas de gain qualité justifiant le coût. MoE 30B/35B = OOM.
q35-lmq4 — c'est quoi / comment le refaire
Variante de Qwen3.5-4B où token_embd/output sont en Q4_0 (au lieu du Q6_K que llama.cpp
garde par défaut pour le gros vocab 248k). Gain : −0.2 GB et +5% decode, qualité ≈ Q4_0
(A/B FR identique). Recette (idéalement depuis un GGUF F16 ; --allow-requantize si depuis Q4_0) :
llama-quantize [--allow-requantize] --token-embedding-type q4_0 --output-tensor-type q4_0 \
<source.gguf> q35-lmq4.gguf Q4_0
Le fichier prêt est sur la tablette (/data/local/tmp/kz-engine/q35-lmq4.gguf) — adb pull pour le récupérer. Hors git (2.38 GB).
Mesuré mort (ne pas refaire) : quant sous-Q4 = decode CPU PLUS lent
Q3_K_M global = 8.3 (−20% vs Q4_0), Q2_K embeds = +3% seulement. Les k-quants ont un déquant CPU qui mange le gain d'octets. Q4_0 simple reste l'optimum decode. (cf PERF.md.) Source GGUF : unsloth/*-GGUF.