Views
No views yet
| Original | This model | |
|---|---|---|
| Weights on disk | 69.33 GB | 21.65 GB (3.20× smaller) |
| Format | BF16 | compressed-tensors, pack-quantized |
--tensor-parallel-size 2 --max-model-len 8192 --gpu-memory-utilization 0.85 the engine
settles at 20.9 GB per card including KV cache. The BF16 original needs roughly three times
the weight memory.vLLM ≥ 0.24.0 is required. Asymmetric W4A16 for MoE layers was blocked in vLLM by an explicitOnly symmetric quantization is supported for MoEassertion until vllm#44025 (merged 2026-06-02). On older versions this checkpoint fails to load rather than degrading gracefully. If you are pinned to an older vLLM, use a symmetric W4A16 quantization instead.
1vllm serve Ar4ikov/KAT-Coder-V2.5-Dev-AWQ-W4A16-ASYM \
2 --tensor-parallel-size 2 \
3 --max-model-len 32768mlp.experts.*.{gate,up,down}_proj), about 32.2B of the 34.7B parameters. Everything else
stays BF16:| Component | Precision | Why |
|---|---|---|
| Routed experts (256/layer) | INT4 | 92% of the weights; sparsely activated |
linear_attn.* | BF16 | Gated-deltanet recurrence, numerically delicate |
self_attn.* | BF16 | Only 10 layers, active for every token |
mlp.shared_expert.* | BF16 | Active for every token |
mlp.gate (router) | BF16 | INT4 here shifts expert selection |
Embeddings, lm_head | BF16 | Standard practice |
group_size=128, group strategyduo_scaling="both", n_grid=20recipe.yaml in this repo is the exact recipe llm-compressor recorded.experts.gate_up_proj, shape (256, 1024, 2048)), not as nn.Linear
modules. A plain targets=["Linear"] recipe therefore matches nothing inside the MoE and
produces a checkpoint that is not smaller at all. llm-compressor's
llmcompressor.modeling.moe linearizes them into per-expert modules for calibration.post_attention_layernorm, whose output feeds four consumers: the router, the routed
experts, the shared expert and the shared-expert gate. Any consumer left out of the balance
layers gets rescaled inputs with nothing to compensate — for the router that silently
changes which experts are selected, which is invisible in loss curves and shows up as
degraded quality. All four are listed explicitly in the AWQ mapping, so the router is
compensated while staying in BF16:1AWQMapping(
2 "re:.*post_attention_layernorm$",
3 [
4 "re:.*mlp.gate$", # router — not quantized, still compensated
5 "re:.*mlp.shared_expert_gate$",
6 "re:.*mlp.shared_expert.gate_proj$",
7 "re:.*mlp.shared_expert.up_proj$",
8 "re:.*mlp.experts.*.gate_proj$",
9 "re:.*mlp.experts.*.up_proj$",
10 ],
11)transformers does not work. Its loader expects fused 3D expert
parameters and cannot rebuild them from per-expert packed tensors, so the MoE is silently
randomly initialized and the model emits gibberish. Use vLLM, or a runtime with a
compressed-tensors MoE loader. The same applies to the reference quantization of this
base, which uses the identical tensor layout.vision_config but ships no visual weights, so the model is
text-only. transformers randomly initializes that tower on load; those tensors were
removed from this checkpoint, matching the source.transformers decompresses the weights back to BF16, so it uses as much
memory as the original. The saving is real only in runtimes with native INT4 kernels.