You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Check upstream + community 2026-05-30 confirme que MTP (Multi-Token Prediction) est maintenant mature pour Qwen3.6-35B-A3B en vLLM 0.9+. Trois sources indépendantes :
Le workaround --no-enable-prefix-caching est lié à vllm#38182 (interaction prefix-cache × MTP spécifique aux modèles A3B-class, hit rate 92% → 71% avec MTP ON).
Mon ancien CLAUDE.md #4 ("0% acceptance with AWQ") reste vrai uniquement pour notre Q1 stack, pas une vérité générale.
Pourquoi un spike (et pas un swap prod)
Production v2g (Genesis-TQ k8v4) tourne très bien :
829 tok/s aggregate N=16
KV cache 2.03M tokens (×6.3 vs FP8 baseline)
Charge actuelle ~27 req/h → <1% capacité
La recette HackMD valide tourne sur stock vLLM 0.19.1 + AWQ + FP8 KV — incompatible avec Genesis-TQ. Switcher en prod signifie :
v2g actuel
MTP test
KV cache
2.03M tokens
~322K (FP8)
Multi-user N=16
829 tok/s
non testé, probable <
Single décode
120 tok/s
+27% à +94%
Prefix caching
ON
OFF (workaround A3B)
Notre bottleneck identifié est multi-user KV capacity (cf. project_turboquant_hybrid_status.md en MEMORY.md), pas single-stream — donc pas de raison de bouger la prod. Mais un spike isolé apporterait deux bénéfices :
Bench comparable sur notre hardware (Ada SM89 + dual 4090) — la communauté est sur 3090 (Ampère SM86). Nouveau datapoint upstream-postable.
Disambigue notre Att4 deepcopy poison (crash transformers/configuration_utils.py:678 → AutoConfig.from_pretrained → copy.deepcopy(kwargs), Att4 sur FP8+MTP). Si MTP boote clean en stock vLLM, ça confirme que Att4 était une interaction Genesis-spécifique (dual-config-load), pas un bug vLLM général. Cf. project_spec_dec_retired_post_v2g.md.
À mettre dans myia_vllm/configs/docker/profiles/medium-qwen36-mtp-spike.yml (nouveau profile, isolé).
Plan d'exécution (créneau hors-prod requis)
Coordonner avec CoursIA pour fenêtre GPU 0/1 disponible (ou tester sur GPU 2 si Track B trainings le permettent — moins de VRAM mais possible avec max-model-len réduit)
Stop medium-qwen36-moe (Genesis-TQ)
Up medium-qwen36-mtp-spike.yml
Bench : single-user décode (no-think + thinking), 5-user concurrent, 16-user concurrent, KV cache size, prefix cache hit rate (devrait être ≈0 avec --no-enable-prefix-caching)
Critère go/no-go pour MTP en prod :
Si N=16 aggregate ≥ 700 tok/s ET single-user décode ≥ 150 tok/s : envisager bascule
Contexte
Check upstream + community 2026-05-30 confirme que MTP (Multi-Token Prediction) est maintenant mature pour Qwen3.6-35B-A3B en vLLM 0.9+. Trois sources indépendantes :
speculative-configsupportée pour Qwen3.6-35B-A3B + Qwen3.6-27B dense + DeepSeek V3/V4 + Gemma 4 26Bqwen3.6-vllm-2x3090v3/v4/v5, Zenodo 10.5281/zenodo.20247229) : bench quantifié dual 3090 PCIe + AWQ + vLLM 0.19.1 → MTP k=3 +--no-enable-prefix-caching= +27.5% décode TPOTLe workaround
--no-enable-prefix-cachingest lié à vllm#38182 (interaction prefix-cache × MTP spécifique aux modèles A3B-class, hit rate 92% → 71% avec MTP ON).Mon ancien CLAUDE.md #4 ("0% acceptance with AWQ") reste vrai uniquement pour notre Q1 stack, pas une vérité générale.
Pourquoi un spike (et pas un swap prod)
Production v2g (Genesis-TQ k8v4) tourne très bien :
La recette HackMD valide tourne sur stock vLLM 0.19.1 + AWQ + FP8 KV — incompatible avec Genesis-TQ. Switcher en prod signifie :
Notre bottleneck identifié est multi-user KV capacity (cf.
project_turboquant_hybrid_status.mden MEMORY.md), pas single-stream — donc pas de raison de bouger la prod. Mais un spike isolé apporterait deux bénéfices :transformers/configuration_utils.py:678→ AutoConfig.from_pretrained → copy.deepcopy(kwargs), Att4 sur FP8+MTP). Si MTP boote clean en stock vLLM, ça confirme que Att4 était une interaction Genesis-spécifique (dual-config-load), pas un bug vLLM général. Cf.project_spec_dec_retired_post_v2g.md.Recette à tester
Image stock vLLM (pas Genesis) :
À mettre dans
myia_vllm/configs/docker/profiles/medium-qwen36-mtp-spike.yml(nouveau profile, isolé).Plan d'exécution (créneau hors-prod requis)
medium-qwen36-moe(Genesis-TQ)medium-qwen36-mtp-spike.yml--no-enable-prefix-caching)project_spec_dec_retired_post_v2g.mdconfirmant origine GenesisCritères d'acceptation
medium-qwen36-mtp-spike.ymlversionnémyia_vllm/_iteration_log/mtp_spike_YYYY-MM-DD/project_spec_dec_retired_post_v2g.mdenrichi avec le datapoint MTP AdaHors scope
medium-qwen36-genesis-tq.ymlavant validation complèteRéférences
d:\vllm\CLAUDE.md"Critical Configuration Notes" Short Task #4 + "Current State"MEMORY.md:project_spec_dec_retired_post_v2g.md,project_turboquant_hybrid_status.md,project_speculative_decoding_landscape.md