DiggTop ⌕

Qwen3.8-27B Uncensored: MTP Kept, Cost Measured

As of 2026-09-07. Community release by Jonathan Coletti (JonathanColetti/Qwen3.8-27B-Uncensored-GGUF, Apache 2.0). All measurements below are the author's, quoted from the model card — attributed, and not re-run by us. The release made the rounds via @TeksEdge.

Most "uncensored" releases are weight edits with no accounting: you don't know what the surgery cost, and many drop the MTP head in the process because speculative decoding is the first thing to break. This one does the opposite of both. Coletti abliterated the official Qwen/Qwen3.8-27B with Heretic (which trades refusal count against KL divergence from base), grafted all 15 MTP tensors back verbatim from the base checkpoint, and published the numbers for what it all cost: refusals, capability, perplexity per quant, and measured MTP speedups.

Why a hardware site covers it: this is a 27B dense model with vision and a 262K context architecture, and the 2-bit GGUF is 10.6 GB — squarely in the 16GB-card territory we benchmark. A 10.6 GB dense 27B with a working MTP head changes what a $200 card can do.

How it was made

What the surgery cost

Against the unmodified base, identical settings, 0-shot via lm-evaluation-harness, both models in the same session:

Task Base Uncensored Δ
MMLU 83.4 83.3 -0.2
ARC-Challenge 58.9 57.7 -1.2
HellaSwag 82.8 82.9 +0.1
Winogrande 76.1 75.3 -0.8
Mean -0.5

Every delta sits within or near the reported standard error (e.g. MMLU ±0.30, ARC ±1.44), so none is clearly separable from run-to-run noise. The author is explicit that these are 0-shot scores, not comparable to Qwen's few-shot published numbers — they're comparable to each other, which is the point.

Measurement Base Uncensored
Refusals (100 held-out harmful prompts, mlabonne/harmful_behaviors) 98/100 12/100
KL divergence vs base (first-token) 0 0.1191

Two reading notes from the card: the refusal figure is not an over-refusal rate — it measures how much of the original refusal behaviour on harmful requests remains, in non-thinking mode. And the published model is one point on a Heretic Pareto front (200 trials, 23 non-dominated points): more refusal reduction is available at the cost of higher KL (e.g. 44/100 refusals at KL 0.0352).

The weight edit itself costs 0.0434 perplexity on wikitext-2 (6.5129 → 6.5563, ~0.7% relative). Measured as a paired difference over the same tokens: 0.0437 ± 0.0163 — a real cost, not noise, with the base Q8_0 as control (0.0007 from base bf16).

What the quantization costs

The repo ships fused MTP files (MTP rides inline as a built-in draft), noMTP twins, a standalone MTP draft head (Q8_0 / Q4_0), and an F16 vision projector. Converted with llama.cpp a94d563ed, all from the same published iMatrix:

File Size MTP PPL (wikitext-2)
f16 (baseline, not shipped) — — 7.1557 ± 0.251
Q5_K_M 19.5 GB ✓ 7.1573 (+0.0016)
IQ4_XS 15.3 GB ✓ 7.1583 (+0.0026)
Q6_K 22.4 GB ✓ 7.1689 (+0.0132)
Q8_0 29.0 GB ✓ 7.1764 (+0.0207)
Q4_K_M 16.8 GB ✓ 7.1814 (+0.0257)
IQ2_M 10.6 GB ✓ 7.8581 (+0.7024)

The author's own caveat, worth repeating: every row except IQ2_M sits inside a span of 0.026 against a standard error of ~0.25 — Q8_0 is not worse than Q5_K_M, that ordering is noise. The only difference the measurement resolves is IQ2_M, ~2.8 standard errors above baseline. (Perplexity detects gross quant damage and nothing else — no reasoning, code, or multilingual signal.)

What MTP actually buys (measured on this build)

Original-release table, hardware not recorded — compare the ratios:

Prompt n_max tok/s vs no-MTP
prose 1 89.0 1.19×
prose 2 85.7 1.15×
code 1 95.4 1.28×
code 2 92.9 1.24×
chat 1 90.6 1.21×

Past n_max ~3–4 the gain collapses — acceptance falls as the draft head, trained on the unmodified model, meets the edited weights. Code benefits most (1.28× at n_max 1); by n_max 5–8 every prompt type is slower than the no-spec baseline.

Measured on an NVIDIA H200 NVL, IQ2_M, 256 generated tokens, median of 3:

Prompt n_max tok/s vs no-MTP
prose 1 85.2 1.13×
code 2 99.8 1.32×
chat 1 87.4 1.16×

The MTP head survives 2-bit quantization because it's pinned to q8_0 rather than quantized with the rest of the stack. And a nice detail: pairing noMTP-IQ2_M with the standalone draft-Q8_0 hits 97.7 tok/s on prose at n_max 2 (1.30×) — better than the fused file on that prompt, because the fused head shares the low-bit token_embd/output tensors with the main model while the standalone draft carries its own Q8_0 copies. Costs 13.3 GB of weights vs 10.6 GB, so it only wins if you have the VRAM to spare.

What this means for your hardware

Caveats the author states

If you run it on your card, the tok/s belongs on the board — submit your run with engine, quant, and context, and it lands on the board with your name on it.

Sources

↑