W8A8 INT8 quantization of
Qwen/Qwen3.5-27B, produced with
llm-compressor (SmoothQuant + GPTQ). The built-in MTP (Multi-Token Prediction) head is preserved as BF16 and works at 93 % acceptance under vLLM ≥ 0.17.
1pip install "vllm>=0.17"
2huggingface-cli download vadery/Qwen3.5-27B-W8A8 --local-dir ./Qwen3.5-27B-W8A8
3
4vllm serve ./Qwen3.5-27B-W8A8 \
5 --max-model-len 262144 \
6 --dtype bfloat16 \
7 --gpu-memory-utilization 0.92 \
8 --trust-remote-code \
9 --enable-auto-tool-choice --tool-call-parser qwen3_coder \
10 --reasoning-parser qwen3 \
11 --speculative-config '{"method":"qwen3_5_mtp","num_speculative_tokens":1}'
Same quantization recipe as the GRM-2.6-Plus fine-tune (
vadery/qwen36-27b-ft-grm-w8a8) — performance numbers are within noise.
1SmoothQuantModifier(smoothing_strength=0.8, mappings=SQ_MAPPINGS,
2 ignore=[...vision, mtp, linear_attn, embed, lm_head...])
3GPTQModifier(targets="Linear", scheme="W8A8",
4 ignore=[same as above],
5 dampening_frac=0.01)
SmoothQuant mappings explicitly cover only the 16 full-attention layers (indices 3, 7, …, 63 out of 64) plus MLP on every layer — to avoid SmoothQuant trying to fuse into the linear_attn projections which have non-standard shapes.
Without these two steps, vLLM either drops the MTP head (0 % acceptance) or loads garbage values (also 0 % acceptance after weights are corrupted on load).
Inherits Apache 2.0 from the base model.