Hy3 at 4 bits with its MTP head intact: a W4A16 quantization

FP8-level quality at 57% of the FP8 footprint, +40% single-stream over the same-scheme quant that shipped without MTP, and the high-concurrency throughput crown among 4-bit quants.

TL;DR — We quantized Tencent Hy3 (295B-parameter MoE, 21B active) to 4-bit weights while keeping its multi-token-prediction (MTP) draft layer in BF16. The result holds FP8-level quality at 57% of the FP8 footprint (≈598 GB BF16 → 172 GB), preserves MTP speculative decoding (worth +40% single-stream vs the same-scheme quant that shipped without it), and takes the high-concurrency throughput crown among 4-bit quants. It's public, Apache-2.0: canada-quant/hy3-w4a16-mtp.

Why

Hy3 is one of the strongest open-weight MoE models you can run today, but it's big: 295B parameters — ≈598 GB of weights in BF16, and still ≈300 GB in Tencent's official FP8 release. That footprint is the thing standing between "great open model" and "great open model we can actually afford to serve."

The goal of this project was narrow and practical: shrink the serving footprint without giving up quality, and without giving up speed. Not a new model — every bit of capability here comes from the base Hy3 (80 layers: 79 MoE + 1 dense, 192 experts per MoE layer with top-8 routing, GQA attention). Just a cheaper way to run it.

What we did

The artifact is a W4A16 quantization: the routable MoE expert weights — 45,504 matrices, ≈97% of parameters — compressed to INT4 (group-size 128, symmetric, GPTQ via llm-compressor), with attention, dense layer 0, the shared expert, the router, embeddings, the LM head, and the NextN/MTP head all preserved in BF16. Calibration ran on an agentic + code + math + chat blend (512 samples × 2048 tokens). That drops the checkpoint from ≈598 GB to ≈172 GB — ≈3.4× compression, and 57% of the ≈300 GB FP8 release's footprint. vLLM selects the INT4×FP16 Marlin/Machete kernel at load, so it's ready to serve as-is.

The piece we were careful to keep is the MTP (multi-token-prediction) layermodel.layers.80, including its own 192 experts — re-injected at BF16 post-quantization. This is not optional decoration: transformers silently drops the NextN layer otherwise, which is exactly how Tencent's own AngelSlim GPTQ artifact shipped MTP-less — it cannot speculate at all. MTP is Hy3's built-in draft head for speculative decoding: it proposes future tokens, the full model verifies them in one pass, and accepted tokens are exactly what the model would have produced anyway. It's a lossless speedup — it changes latency, not answers. Preserved here, MTP speculates at 62.1% aggregate greedy acceptance (76.8% at position 0) ≈ 2.24 effective tokens per decode step with num_speculative_tokens=2.

Does it hold up?

We measured quality against the official tencent/Hy3-FP8 release on the same 8×H100 box (lm-eval 0.4.12 through vLLM OpenAI endpoints, greedy, spec-decode off, non-thinking):

Quality — W4A16+MTP vs FP8, same box/harness, 8×H100.
TaskW4A16+MTPFP8
GSM8K (5-shot, strict-match)93.6%93.0%
IFEval (prompt-strict / inst-strict)89.7% / 92.9%90.2% / 93.1%
HumanEval (pass@1)94.5%94.5%
wikitext word-PPL / bits-per-byte5.75 / 0.4725.59 / 0.464

Every task within ≈0.7 pp of FP8 — inside eval noise.

We also ran the reasoning-mode field (thinking=high, 0-shot, native 256K context, a uniform 131,072-token generation budget for every model) against the other public 4-bit Hy3 quants:

Reasoning mode — thinking=high, 0-shot, 131,072-token generation budget, uniform for all models.
BenchW4A16+MTP (ours)FP8cyankiwi AWQAngelSlim GPTQ
AIME2470.0%70.0%80.0%70.0%
AIME2583.3%90.0%76.7%83.3%
AIME combined (n=60)76.7%80.0%78.3%76.7%
MATH-50094.0%93.4%95.2%93.4%
GPQA-diamond88.4%89.9%88.9%91.9%

Every quant is statistically indistinguishable from FP8 and from each other (AIME n=30 is ±7–9 pp per cell). 4-bit expert quantization, done carefully, is quality-neutral — so the differentiators between these artifacts are serving traits: footprint, MTP, and throughput.

How fast is it?

All throughput numbers are output tokens/s on the same box, harness, and settings: 8×H100-SXM, vLLM 0.25.1.

Disk footprint per artifact. Lower is better.
ArtifactSize on disk
W4A16+MTP (ours)172 GB
FP8 (official)≈300 GB
AngelSlim GPTQ (no MTP)166 GB
cyankiwi AWQ175 GB

The story is clear and, we think, useful: quality is a wash across the 4-bit field, so you choose on serving traits. We give AWQ the single-stream edge and AngelSlim 6 GB of disk; we take MTP speculative decoding and the concurrency crown, at 57% of the FP8 footprint.

Running it

Limitations (honestly)

Get it

canada-quant/hy3-w4a16-mtp — Apache-2.0, with the full recipe, evaluation methodology, and audit trail in the companion repo (canada-quant/hy3-w4a16-mtp on GitHub). Built on tencent/Hy3, quantized with llm-compressor, served with vLLM.