Views
No views yet
attnbf16
recipe) and ships a working MTP / self-speculative-decoding head.lm_head, the MTP head, the vision tower, the whole linear_attn (Gated-DeltaNet / SSM) block,
and — the distinctive choice here — the entire self_attn path, including the attention output gate
that Qwen3.5/3.6 fuses into q_proj. Only the MLPs (~17 B params) are FP8. Quantisation error on the
fused multiplicative gate is qualitatively worse than on an additive projection, and only ~1/4 of the
layers are full-attention, so keeping attention bf16 costs ~1.5 GiB (~4.6 %) and measurably lowers KLD.
See recipe.yaml.kld_thinkingcap-fp8-attnbf16.json,
ppl_thinkingcap-fp8-attnbf16.json).quantization_config.ignore so vLLM loads it correctly (a bf16 MTP head
regrafted into a compressed-tensors quant is otherwise mis-loaded and yields 0 % draft acceptance).{"method":"mtp","num_speculative_tokens":3})| Build | MTP draft acceptance |
|---|---|
| this repo | 75.0 % |
bottlecapai/…-FP8 (upstream, reference) | 74.2 % |
1vllm serve huginnfork/ThinkingCap-Qwen3.6-27B-FP8 \
2 --speculative-config '{"method":"mtp","num_speculative_tokens":3}' \
3 --max-num-seqs 32--max-num-seqs 32 (or lower) is required — Qwen3.6 is a hybrid linear-attention model and the default
max_num_seqs exceeds the available Mamba cache blocks.vllm serve huginnfork/ThinkingCap-Qwen3.6-27B-FP8 --max-num-seqs 32