A 4-bit quantization of Qwen/Qwen3.8-27B.
~2.1× smaller than BF16. Matches the BF16 base on every evaluated benchmark;
all deltas are within sampling noise.
GPTQ (Hessian error compensation) with weight-only INT4: asymmetric
(zero-point, stored as int8), group_size=32, imatrix-mse weight observer,
actorder=static, block size 128, dampening_frac: 0.01. Targets all
Linear layers except lm_head, embeddings, DeltaNet (.*linear_attn.*),
vision (model.visual.*), and the MTP predictor. The full resolved recipe —
including defaults — ships as recipe.yaml in this repo.
imatrix importance statistics were collected by forward hooks over the 8
packed calibration sequences (llm-compressor imatrix-mse observer). The
8-sequence budget was chosen to calibrate at the model's native 262,144-token
context within a single 80GB GPU — the token count (~2.1M) is conventional,
the document count is the trade-off.
Evaluation
Identical harness and hardware for base and quantized (lm-eval-harness,
hf-multimodal backend, greedy). Generative tasks use the chat template with
thinking enabled; ARC-Easy is loglikelihood.
task
protocol
n
base (BF16)
this
Δ
GSM8K
thinking, generative (250-sample subset)
250
95.60
94.80
−0.8 (within noise)
GPQA Diamond
thinking, generative
198
64.65
64.65
0.0
RealWorldQA
thinking, generative, vision
765
84.31
82.75
−1.6 (within noise)
MathVision
thinking, generative, vision
3040
78.06
75.53
−2.5 (≈2.3σ)
ARC-Easy
loglikelihood, full
2376
82.58 / 72.81¹
82.62 / 74.58
+0.04 / +1.77
¹ acc_norm < acc inverts the usual ARC-Easy ordering for both models under this
harness/tokenizer; the effect is identical for base and quantized.
RealWorldQA and MathVision are full-n (765 / 3040), re-measured with the
vllm-vlm backend (thinking, greedy, seed 1234) on the same machine as the base;
they supersede the earlier n=100 slices.
Long-context needle-in-a-haystack (greedy, 3 needle depths per length; both
models retrieve exactly):
Context (tokens)
Base
This model
8,192
3/3
3/3
32,768
3/3
3/3
131,072
3/3
3/3
262,144 (native)
3/3
3/3
Retrieval validated at the model's native 262,144-token context — the same
length the model was calibrated at.
Not evaluated: agentic/tool-calling behavior; vision coverage beyond
Requires a recent vLLM with qwen3_5 support (per the base model card, use
the latest version). The checkpoint is compressed-tensors pack-quantized
int4 — int4 block linears plus BF16 DeltaNet/vision/embeddings/lm_head, so
int4 kernels (Marlin/compressed-tensors) engage for the quantized linears
only. ~27 GB of weights: fits a 32GB+ GPU at moderate context (KV ≈2 GB at
32k). Full 262,144-token context needs ≈17 GB of KV on top — plan for ~48GB
total, or cap --max-model-len on smaller cards. KV ≈65 KB/token (hybrid:
only global-attention layers accumulate KV; DeltaNet layers carry fixed-size
state). MTP predictor weights are included intact; the speculative-decoding
flag above follows the base-model recipe — if your vLLM build rejects MTP
for this architecture, drop the --speculative-config line and serve
normally.
The base model supports YaRN extension to 1M context via --hf-overrides
(see the base model card). This checkpoint was calibrated and validated only
at the native 262,144 tokens; behavior beyond that length is untested and
YaRN interacts with RoPE-bearing attention layers — run your own
long-context eval before relying on it.