CoolFace
Modelpublic

MiawTeam/Qwen3.8-27B-Uncensored-GGUF

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
4likes14kdownloads
Model Card

Qwen3.8-27B-Uncensored-GGUF

Uncensored Qwen3.8-27B, published as GGUF quantizations with the multi-token prediction (MTP) head retained and verified.

Refusal behaviour has been substantially reduced, not eliminated — see Measured behaviour for the numbers. Capabilities, training data, and architecture are otherwise unchanged.

MTP tensors verified, not assumed. Abliteration drops the mtp.* tensors: the model is re-saved through transformers, which does not carry the MTP head, while config.json still advertises it. They are grafted back from the base checkpoint and every file is inspected after quantization — see Method and Verification.

Method

  • —Refusal directions removed with Heretic, which co-minimizes refusal count against KL divergence from the base model. No hand-written refusal-removal code, no fine-tuning, no additional training data.
  • —Abliteration runs at bf16 (no 4-bit quantization); the resulting LoRA is merged into the bf16 base, so the published weights are not a quantized round trip.
  • —mtp.* tensors are copied verbatim from the base checkpoint after merging. Abliteration never touches them — it modifies attn.o_proj and mlp.down_proj in the main stack.
  • —The draft head was trained against the unmodified model, so acceptance rate may fall slightly. Speculative decoding verifies every token against the target, so output quality is unaffected.
  • —imatrix is computed directly from the f16, not from an intermediate quantization, so calibration sees the real weights.

What's here

FamilyFilesUse when
FusedQwen3.8-27B-Uncensored-<QUANT>.ggufOne file. MTP rides inline as a built-in draft.
Target + draftQwen3.8-27B-Uncensored-noMTP-<QUANT>.gguf + mtp-*-Q8_0.ggufYour runtime wants an explicit --model-draft.
Visionmmproj-*-f16.ggufImage input, if the base model ships a vision tower.

The draft head stays at Q8_0 in every configuration. It is small relative to the target, and quantizing it harder costs draft acceptance rate for almost no disk saving.

Overview

BaseQwen/Qwen3.8-27B
ArchitectureQwen3_5ForConditionalGeneration
Layers64
Vocab248320
MTP layers1
Visionyes
Context262144
QuantsIQ4XS, Q4KM, Q5KM, Q6K, Q8_0
imatrixwikitext-2 raw, 200 chunks
Converted withllama.cpp a94d563ed

Files

FileSizeMTPPPL (wikitext-2)
Qwen3.8-27B-Uncensored-IQ4_XS.gguf15.3 GByes-
Qwen3.8-27B-Uncensored-Q4_K_M.gguf16.8 GByesPPL = 7.1814 +/- 0.25227
Qwen3.8-27B-Uncensored-Q5_K_M.gguf19.5 GByes-
Qwen3.8-27B-Uncensored-Q6_K.gguf22.4 GByes-
Qwen3.8-27B-Uncensored-Q8_0.gguf29.0 GByes-
Qwen3.8-27B-Uncensored-draft-Q8_0.gguf3.2 GB--
Qwen3.8-27B-Uncensored-noMTP-IQ4_XS.gguf15.1 GBno-
Qwen3.8-27B-Uncensored-noMTP-Q4_K_M.gguf16.5 GBno-
Qwen3.8-27B-Uncensored-noMTP-Q5_K_M.gguf19.2 GBno-
Qwen3.8-27B-Uncensored-noMTP-Q6_K.gguf22.1 GBno-
Qwen3.8-27B-Uncensored-noMTP-Q8_0.gguf28.6 GBno-

Usage

bash
llama-server -m Qwen3.8-27B-Uncensored-Q4_K_M.gguf \
  --spec-type draft-mtp --spec-draft-n-max 2 \
  -ngl 99 -c 8192

Target plus explicit draft:

bash
llama-server -m Qwen3.8-27B-Uncensored-noMTP-Q4_K_M.gguf \
  --spec-type draft-mtp \
  --model-draft mtp-Qwen3.8-27B-Uncensored-draft-Q8_0.gguf \
  -ngl 99 -c 8192

--spec-draft-n-max defaults to 3. Throughput depends on your hardware, so sweep it — measurements across draft lengths are in qwen3.8-spec-decode-bench.

Verification

Each artifact was checked post-quantization for MTP tensor survival rather than inferred from the conversion flag:

bash
python quantize.py inspect Qwen3.8-27B-Uncensored-Q4_K_M.gguf

This reports metadata keys, declared block_count, and blocks actually present. A fused file whose present-block count does not exceed its declared count did not retain the MTP block.

FileMTPblocks
Qwen3.8-27B-Uncensored-f16.ggufTrue65/65
Qwen3.8-27B-Uncensored-noMTP-f16.ggufFalse64/64
Qwen3.8-27B-Uncensored-IQ4_XS.ggufTrue65/65
Qwen3.8-27B-Uncensored-noMTP-IQ4_XS.ggufFalse64/64
Qwen3.8-27B-Uncensored-Q4_K_M.ggufTrue65/65
Qwen3.8-27B-Uncensored-noMTP-Q4_K_M.ggufFalse64/64
Qwen3.8-27B-Uncensored-Q5_K_M.ggufTrue65/65
Qwen3.8-27B-Uncensored-noMTP-Q5_K_M.ggufFalse64/64
Qwen3.8-27B-Uncensored-Q6_K.ggufTrue65/65
Qwen3.8-27B-Uncensored-noMTP-Q6_K.ggufFalse64/64
Qwen3.8-27B-Uncensored-Q8_0.ggufTrue65/65
Qwen3.8-27B-Uncensored-noMTP-Q8_0.ggufFalse64/64

Measured behaviour

Benchmarked against the unmodified base model on identical settings. The delta is the figure that matters: it isolates what the weight edit cost.

TaskBaseUncensoredΔ
MMLU83.483.3-0.2
ARC-Challenge58.957.7-1.2
HellaSwag82.882.9+0.1
Winogrande76.175.3-0.8
Mean-0.5

0-shot via lm-evaluation-harness, bf16, both models scored in the same session. Every delta is within or close to the reported standard error (MMLU ±0.30, ARC ±1.44, HellaSwag ±0.38, Winogrande ±1.21), so none is clearly separable from run-to-run noise.

These are 0-shot and are not comparable to Qwen's published scores, which use few-shot prompting. They are directly comparable to each other, which is the point. Note also that ARC-Challenge is low for a model at this MMLU — the base scores 58.9 under the same settings, so that is format sensitivity in a reasoning-tuned model, not abliteration damage.

What the benchmarks do not cover: no generative evaluation (GSM8K, HumanEval), no math or code, no multilingual, and the harness loads the text stack only — nothing here measures the vision tower or MTP speculative decoding.

MeasurementBase modelThis model
Refusals (100 held-out harmful prompts)98/10012/100
KL divergence vs base (first-token)00.1191

Search: 200 Heretic trials, 23 non-dominated points. The published model is the marked row.

refusalsKL divergence
12/1000.1191← published
13/1000.1052
19/1000.0722
23/1000.0635
26/1000.0507
27/1000.0410
35/1000.0406
36/1000.0387
41/1000.0366
44/1000.0352
46/1000.0334
48/1000.0331
51/1000.0321
52/1000.0294
60/1000.0290
76/1000.0280
77/1000.0247
83/1000.0204
86/1000.0193
91/1000.0170
96/1000.0146
97/1000.0044
98/1000.0004

How to read these

Refusal rate is the count of refusals over 100 held-out prompts from `mlabonne/harmful_behaviors` (test split) — explicitly harmful requests, not benign ones. So this number is not an over-refusal rate: it does not tell you how often the model declines legitimate work. It tells you how much of the original safety behaviour on harmful requests remains.

KL divergence is measured against the unmodified base model over first-token distributions, and is the optimizer's proxy for "how much did we damage the model". Lower is closer to base. It is a proxy, not a capability measurement — a low KL does not certify that reasoning or coding ability survived, and nothing here does certify that.

The two trade off against each other. Heretic searches a Pareto front between them; the published point is one choice on that front, not a global optimum.

Caveats that matter

  • —Refusals were measured in non-thinking mode. This model's chat template opens a <think> block, so the evaluation closes it explicitly to score answers rather than reasoning traces. With thinking enabled the refusal rate may differ, in either direction.
  • —The measurement is 100 prompts from one dataset. It generalizes to that distribution of harmful requests and no further. Refusal behaviour on other topics is uncharacterized.
  • —Perplexity is wikitext-2 only (see the Files table). It detects gross quantization damage. It does not detect capability loss on reasoning, code, or multilingual work.
  • —Quantization compounds everything above. The measurements were taken on the bf16 merge; the files you download are quantized.

Requirements

MTP speculative decoding landed in llama.cpp PR #22673. Builds older than that will load these files and silently ignore the MTP tensors.

Limitations

  • —Refusals are reduced, not eliminated, and not redirected. This model attempts many requests the original declines, but a meaningful fraction still get refused — see Measured behaviour.
  • —Behaviour near the old refusal boundary is less stable than the base model.
  • —Lower quants compound that. Evaluate behaviour on Q6K or Q80, not IQ4_XS.
  • —Capability benchmarks show a 0.5-point mean drop vs base across MMLU, ARC-Challenge, HellaSwag and Winogrande. See Measured behaviour. No generative, math, code, or multilingual evaluation was run.

Intended use

Local inference. Not intended for deployment to third parties without your own safety layer.

License

Apache 2.0, inherited from Qwen/Qwen3.8-27B. The base model's license and acceptable use policy still apply to your use of this derivative.

Speculative decoding, measured on this model

promptspec_typen_maxtok/svs baseline
prosenone-74.81.00x
prosedraft-mtp189.01.19x
prosedraft-mtp285.71.15x
prosedraft-mtp372.00.96x
prosedraft-mtp471.10.95x
prosedraft-mtp562.90.84x
prosedraft-mtp653.80.72x
prosedraft-mtp749.90.67x
prosedraft-mtp859.90.80x
codenone-74.71.00x
codedraft-mtp195.41.28x
codedraft-mtp292.91.24x
codedraft-mtp382.61.11x
codedraft-mtp474.91.00x
codedraft-mtp567.40.90x
codedraft-mtp659.40.80x
codedraft-mtp755.60.74x
codedraft-mtp870.90.95x
chatnone-74.71.00x
chatdraft-mtp190.61.21x
chatdraft-mtp284.21.13x
chatdraft-mtp376.11.02x
chatdraft-mtp470.40.94x
chatdraft-mtp564.30.86x
chatdraft-mtp655.20.74x
chatdraft-mtp750.20.67x
chatdraft-mtp854.10.72x