Table of Contents

Gemma 4 12B QAT, 7 Abliteration Variants Compared

Forensic analysis by Abliterlitics , open-source abliteration forensics toolkit

Data & artifacts: HuggingFace | Report: abliterlitics.dev | Code: GitHub | Responses: HarmBench explorer | BF16 sibling: gemma4-12b | Discord: Join the discussion

Google ships an official QAT checkpoint of Gemma 4 12B It, gemma-4-12B-it-qat-q4_0-unquantized. QAT is quantisation-aware training. The weights are trained to survive 4-bit packing but stored in BF16, and it has become the favourite substrate for community abliterations. Serving it quantised is cheaper, and the architecture is the same as the BF16 base. Seven published variants abliterate it. I ran all 8 models through the same four-axis pipeline. Weight forensics, KL divergence, an 11-task benchmark suite, and HarmBench with 400 harmful behaviours. As usual, every one of the 3,200 responses got an LLM judge review.

Two questions drove this comparison. First, how much capability damage does each abliteration method do to QAT-trained weights? Second, three of the variants, huihui, llmfan46 and coder3101, have BF16-substrate twins in our finished gemma4-12b comparison . So do the same methods hurt QAT weights differently than BF16 weights? Google published no numeric QAT-vs-BF16 evaluation for Gemma 4. The community comparisons we could find are GGUF deployment tests on quantised builds, none of them the official BF16-stored checkpoint on a standard academic harness. So we measured the baseline ourselves.

The short answers. Abliteration on QAT behaves like abliteration on BF16. Capability is universally preserved and the damage is method-dependent. If anything the QAT weights take the damage more gracefully. And the official QAT checkpoint measures within 2pp of the BF16 base on every task.

Models on HuggingFace

Internal nameHuggingFaceMethodVerdict
gemma-4-12B-it-qat-q4_0-unquantizedgoogle/gemma-4-12B-it-qat-q4_0-unquantizedOfficial QAT checkpoint, the referenceThe reference. 10.7% judge ASR, and all of it is Copyright at 21.9% plus Misinformation at 26.2%, with 0.0% on Chem/Bio, Harassment and Harmful. 88.4% answered-only GSM8K. It measures 0.3-1.9pp below the BF16 base on every academic task. To our knowledge these are the first standard-stack numbers published for this checkpoint.
coder3101coder3101/gemma-4-12B-it-qat-q4_0-unquantized-hereticHeretic v1.2.0 ARA, row-norm preserved, L24-48Best capability trade. 81.0% judge ASR with the lowest measured KL, 0.087, and the best GSM8K headline in the panel, 83.1%, +2.0pp with the empty rate below base. The cost is TQA -3.5pp plus 23 outright refusals, the most hard-refusal residue of any variant.
muxodiousMuXodious/gemma-4-12B-it-QAT-SOMPOA-heresyHeretic v1.4.0 SOMPOA backend, PR #19685.1% ASR, second-highest, from a genuinely distinct ablation backend. Its edit direction is isolated from all six other variants at cosine 0.15 or below while carrying the deepest edits in the panel at rel-edit 3.8%. KL 0.088 still lands in the surgical cluster. Category-selective residue. Race-hate refused, chemical-weapons synthesis delivered.
wnfldchenwnfldchen/gemma-4-12B-it-qat-q4_0-unquantized-hereticHeretic v1.4.0 ARA with row-norm, ships reproduce/ dirThe author’s red flag is refuted. The card’s own eval showed chance-level WinoGrande 49.5 and PIQA 53.5. Our run measures WinoGrande +1.3pp and PIQA -0.2pp vs base, plus the best MMLU-Pro in the panel at +3.2pp and the cleanest reasoning stability, 6.4% empty, the lowest in the panel. 83.6% ASR.
llmfan46llmfan46/gemma-4-12B-it-qat-q4_0-unquantized-uncensored-hereticHeretic ARASmallest footprint, 11 tensors, all o_proj, layers 24-34. 80.8% ASR. Its BF16 twin heretic needed 16 tensors and paid -6.2pp MMLU-Pro. On QAT the same method lands MMLU-Pro +0.6pp. TQA -6.4pp is its main cost, nearly identical to its BF16 twin’s -6.2pp.
igorlsigorls/gemma-4-12B-it-qat-q4_0-unquantized-hereticHeretic v1.1 max-weight, re-tuned with thinking ONThe paradox arm. Card self-KL 0.32 and called the most aggressive of the family, yet our full-vocab KL is mid-cluster at 0.205. Its behavioural damage is the mildest tier after coder3101, TQA -3.6pp, MMLU-Pro +0.3pp, IFEval +1.1pp, 82.8% ASR. Self-reported KL does not predict behavioural damage.
huihuihuihui-ai/Huihui-gemma-4-12B-it-qat-q4_0-unquantized-abliteratedClassic direction-ablation, remove-refusals-with-transformers, L23-36, thinking and non-thinking both ablatedMost jailbroken at 87.0%, from 28 rank-1 tensors. The price matches its BF16 twin. TQA -11.8pp, the largest canary drop in the panel, a 20.2% thinking-loop rate, and IFEval -2.6pp. Answered-only GSM8K held at +0.6pp.
smashingtagssmashingtags/gemma-4-12b-it-abliteratedHand-rolled direction-ablation, o_proj/down_proj, top 70% of layersLowest unlock at 74.4% and the messiest stability. 30% of its HarmBench responses are unterminated-think empties and 17.5% of GSM8K answers never converge, so a chunk of its refusals are loop deaths. Judge review restores +9.9pp of hidden compliance. BBH -5.1pp and snarks -12.9pp are real capability costs. Its card claims check out exactly. 34/48 layers at 71%, and a 34+34 o_proj/down_proj split.

A word on what is not here. liskasYR/gemma-4-12B-it-qat-q4_0-unquantized-heretic is a byte-identical mirror of igorls with all 5 shard hashes equal, and eadx/Huihui-...-abliterated a mirror of huihui. Both were excluded by LFS-hash proof before download. eyes-ml/gemma-4-12B-it-qat4_0-bf16 was provisionally admitted and then removed when the weights stage proved it a bit-identical re-upload of the base. See The eyes-ml intake .

Base modelgoogle/gemma-4-12B-it-qat-q4_0-unquantized
ArchitectureGemma4UnifiedForConditionalGeneration, 48 text layers, dense, encoder-free multimodal
Parameters~12B
PrecisionBF16-stored, QAT-trained against a q4_0 grid, serves as plain BF16 with no quantised tensors
Context length262,144 in config, capped at 12,288 for eval
Vocabulary262,144 tokens
Thinking<|channel>thought reasoning, bundled template defaults thinking OFF, gemma4 parser
Variants tested7 abliterations, all full-weight, no LoRA adapters in this panel
Benchmark suite11 tasks, Open LLM Leaderboard v2 + forensic supplement + GSM8K

What is Abliterlitics?

Gemma 4 12B thinks before it answers, and ships with safety training that makes it refuse harmful requests. Abliteration removes that safety training by editing the weights that carry the refusal direction. No retraining. Done well, capabilities survive untouched. Done badly, reasoning stability or general capability goes with it.

This comparison adds a second axis the BF16 panels do not have, the substrate. QAT training pulls every weight towards values that survive 4-bit quantisation, which changes the weight geometry the abliteration algorithm operates on. Whether refusal directions, capability directions, or both behave differently on a QAT grid is exactly what the BF16-twin section measures.

Four forensic axes per arm.

  1. Weight forensics. Tensor-diff fingerprints, SVD effective-rank, layer targeting, cross-variant edit-vector similarity, 666 canonical LM keys per arm, plus a sidecar diff proving vision/audio encoders and embeddings bit-identical everywhere.
  2. KL divergence. Full-vocabulary KL of the variant against base, first-token, over 100 harmless-alpaca prompts, heretic-exact protocol.
  3. LM-eval-harness. 11 tasks with the Gemma 4 dedicated vLLM 0.26.0 stack.
  4. HarmBench. 400 behaviours, 100% LLM-judge reviewed, 3,200 verdicts.

The short answer

  • coder3101 is the best trade in the panel at 81.0% judge ASR. It has the lowest KL at 0.087, the best GSM8K headline at +2.0pp, and answered-only +1.3pp.
  • huihui unlocks hardest at 87.0%, if you accept TruthfulQA -11.8pp and a 20% thinking-loop rate. The same bill its BF16 twin hands you.
  • wnfldchen has the cleanest stability, 6.4% GSM8K empty rate, lowest in the panel and below base, plus MMLU-Pro +3.2pp and 83.6% ASR. The card’s own chance-level Winogrande warning does not reproduce.
  • llmfan46 has the smallest footprint, 11 tensors, at 80.8% ASR.
  • The substrate is not the story. The QAT base sits 0.3-1.9pp under the BF16 base, and every one of the three tested methods does equal-or-less damage here than on BF16 weights.
  • Self-reported KL is not a damage forecast. igorls claims the most aggressive edit in the family at self-KL 0.32 and delivers the second-mildest damage profile in the panel.

In short, seven uncensored variants of Google’s official Gemma 4 12B QAT checkpoint were benchmarked against the QAT base across weight forensics, KL divergence, 11 benchmark tasks, and 400 HarmBench behaviours with full LLM-judge review. coder3101 is the best trade at 81.0% judge ASR with the lowest KL and above-base math. huihui unlocks hardest at 87.0% and pays the largest TruthfulQA bill. The QAT substrate itself costs at most 1.9pp against BF16, and abliteration damage on QAT weights is equal or milder than on the BF16 twins of the same methods.

Key findings

  • Capability is universally preserved. Only loop stability differs. Answered-only GSM8K spans 88.3-90.3% across all 8 arms with base at 88.4%. Every headline GSM8K drop is thinking-loop failure, not capability loss. The five Heretic-tool variants loop at 6.4-10.3% while the two classic direction-ablations, huihui at 20.2% and smashingtags at 17.5%, loop at 2-3x base. The method family, not the edit size, sets the stability bill. The same split the BF16 panel showed, reproduced on a different weight substrate.
  • The TruthfulQA canary is method-dependent on QAT too, over a 3.5x range. -2.2pp for smashingtags up to -11.8pp for huihui on the identical substrate. The classic direction-ablations take the biggest truthfulness hit. The Heretic ARA arms cluster at -3.5 to -6.4pp.
  • Self-reported KL does not predict behavioural damage. igorls ships the highest card self-KL of the family at 0.32, called the most aggressive, but measures mid-cluster on our full-vocab scale at 0.205 and does the second-least benchmark damage in the panel. Cards use their own refusal-eval datasets for their KL numbers. None of them transfer. See KL Divergence .
  • The base anchors the judge. The base’s entire 10.7% ASR is Copyright plus Misinformation, with 0.0% on Chem/Bio, Harassment and Harmful, a textbook aligned-base profile and a sanity anchor for the judge. Judge ASR is the headline signal throughout.
  • Every variant edits exactly two tensor types, o_proj and down_proj, and nothing else. Vision/audio encoders, embeddings and every other LM tensor are bit-identical to base in all 7 arms, sidecar-verified. The cosine heatmap is the closest thing to a method family tree. The three ARA variants correlate 0.64-0.77 with each other. igorls and smashingtags form a separate direction axis at 0.77 despite different tooling lineages. muxodious’s SOMPOA backend is isolated from everything at max 0.15. huihui is isolated at max 0.20.
  • Abliteration damage does not double on QAT weights, it shrinks or holds. All three BF16 twins show equal-or-milder damage here. coder3101’s snarks damage collapses from -16.9pp on BF16 to -0.6pp on QAT and its TQA damage halves, -6.3 → -3.5. huihui’s GPQA damage shrinks, -8.1 → -1.5. llmfan46’s TQA damage is the one that holds level, -6.2 → -6.4. See Same Method, Two Substrates .

The QAT-vs-BF16 baseline, measured independently

Google published the QAT checkpoint with no numeric comparison against the BF16 base. The card says only that QAT preserves similar quality, the launch blog gives VRAM figures, and the technical report carries no QAT benchmark table. The community comparisons we could find test GGUF quantised builds for deployment. So we measured the official BF16-stored checkpoint ourselves, on the same eval stack as every other arm. lm-eval 0.4.12, vLLM 0.26.0, BF16 serving, identical tasks and scoring.

TaskBF16 baseQAT baseΔ
MMLU-Pro50.0%48.1%-1.9
TQA-MC262.2%60.7%-1.5
WinoGrande63.6%62.5%-1.1
GSM8K headline82.0%81.0%-0.9
BBH72.9%72.2%-0.6
GPQA Diamond38.9%38.4%-0.5
IFEval88.5%88.2%-0.4
HellaSwag58.6%58.3%-0.3
ARC-C50.1%49.7%-0.3
GSM8K answered-only88.7%88.4%-0.3
MuSR44.2%44.8%+0.7
BBH-snarks79.8%80.3%+0.6
PIQA73.7%75.0%+1.3

Percentage points, QAT minus BF16. The three positives are within task noise, MuSR n=756, PIQA n=1,838 and snarks n=178.

So the pattern is a small, near-uniform discount. 0.3-1.9pp on everything academic, with commonsense tasks flat. Whatever q4_0-grid calibration does to the weights, it costs less than 2pp on any task, and the GSM8K loop rate rises only marginally, 7.6% → 8.3% empty. Two practical consequences follow. Serving the QAT checkpoint quantised costs roughly what these numbers show, not the “no loss” the marketing implies. And abliteration results measured on the QAT base should be read against the QAT base, which every delta in this report does.

Chat template and thinking mode

Gemma 4 answers differently depending on whether it thinks first, so the chat template is part of the serving stack, not cosmetic packaging. The QAT base bundles the Google canonical template with enable_thinking defaulted to false, the same canonical file the BF16 base bundles with thinking off. None of that bundled machinery touched these results. No variant’s bundled template was ever served. The runner mounts the tokenizer and template from the base for every arm, and the comparison carries its own thinking_chat_template.jinja, the same Google template with the default flipped to true. Seven variants went in as weights and came out measured against one shared render.

The paths split cleanly. GSM8K is the one generative benchmark that runs through the chat endpoint, so it picked up the thinking-on template and every answer came after a full think block. The 8,096-token budget and the empty-response counts below are downstream of that choice. Loglikelihood tasks score option logprobs, so the thinking flag never enters their scoring at all, and since the base template already renders its no-thinking branch for them, no override file was needed. The other generative tasks, IFEval and TruthfulQA generation, render client-side from that same no-thinking branch. HarmBench ran through the thinking-on template, so its responses are thinking-enabled too. KL used the heretic-exact protocol instead, the <think></think> suppression prefix with every arm rendered through the base tokenizer’s template, byte-identical prompts across arms. See KL Divergence .

Every variant bundles its own chat_template.jinja file, and the roster splits three ways.

VariantBundled templateWhat it is
wnfldchen, muxodiousByte-identical to base, verified by hashNothing changes
huihui, coder3101, igorls, smashingtags17,466 bytes, byte-identical across all fourAn older revision of the Google template, missing the July 2026 fixes for tool-calling loops, turn closures and thinking content-ordering, plus the explicit thinking default
llmfan4621,488 bytesA heavier rewrite, 809 changed lines against the base file

None of this moved a single benchmark number, because the bundled files were never served and every prompt was rendered from the base template. It matters plenty if you run these variants yourself with the files they ship. Four of the seven carry a template that differs from the base, and llmfan46’s differs more than most. Pin the template rather than trusting the bundled one. In this model family the template’s thinking toggle has already been caught flipping refusal behaviour harder than 4-bit quantisation does.

Benchmarks

Evaluated with lm-evaluation-harness 0.4.12 via vLLM 0.26.0, native BF16 on a single RTX 5090, the dedicated Gemma4Unified stack. Loglikelihood tasks scored with --apply_chat_template. GSM8K is 0-shot with thinking enabled, until=[] and an 8,096-token budget, the Open LLM Leaderboard v2 standard for thinking models. The suite drops HumanEval and LAMBADA. This architecture is brittle to raw completion and the BF16 panel documented it first.

Methodology note. Loglikelihood multiple-choice absolute scores are not comparable to Google’s published generative-with-thinking numbers. The ~25pp methodology gap is by design. Deltas between variants within this suite are fully valid. Every model ran identically.

Capability deltas vs base

Lets start with capability. Models ordered by KL ascending, surgical → heavy. Negative is worse. GSM8K ans. is answered-only exact match, the capability ceiling that sets aside thinking-loop failures.

ModelMMLU-ProGPQABBHGSM8K head.GSM8K ans.TQA-MC2IFEvalHellaSwagSnarks
Base48.1%38.4%72.2%81.0%88.4%60.7%88.2%58.3%80.3%
coder3101-1.5+0.5-0.0+2.0+1.3-3.5+0.2+0.4-0.6
muxodious-1.9-2.5-0.2-1.4+0.3-4.1+0.7-0.5+1.1
wnfldchen+3.2+1.0-0.5+1.7+0.1-4.3+0.2+0.6-4.5
llmfan46+0.6-1.50.0+2.0+0.5-6.4+1.7+0.7-1.7
igorls+0.3+0.5-0.5-0.8-0.1-3.6+1.1+0.3+1.1
huihui-0.8-1.5-2.0-10.0+0.6-11.8-2.6-1.7-4.5
smashingtags-3.6-2.0-5.1-6.5+1.9-2.2-2.4+3.3-12.9

Percentage-point deltas vs the QAT base.

Benchmark comparison across loglikelihood tasks
Benchmark comparison across loglikelihood tasks

Solid bars are each variant, grey is base and the black dash-dot line marks the base score per task. The five Heretic-tool variants are visually indistinguishable from base on every academic task. huihui and smashingtags pull away on TQA and BBH.

Benchmark delta vs base
Benchmark delta vs base

Deltas vs base per task. TQA-MC2 is the only task where every variant drops. smashingtags posts the strangest profile in the panel, the biggest BBH and snarks losses alongside above-base HellaSwag, WinoGrande and TQA-Gen. A broad, blunt edit that shuffles rather than preserves.

What the benchmarks tell us

  • The Heretic ARA family is surgically clean on QAT. coder3101, muxodious, wnfldchen, llmfan46 and igorls stay within ±2.5pp of base on every capability task except TQA, and three of them gain MMLU-Pro. wnfldchen posts the best MMLU-Pro in the entire panel at +3.2pp, more than the base itself.
  • huihui is the textbook abliteration fingerprint, again, on a different substrate. TQA -11.8pp and a -10.0pp headline GSM8K drop that answered-only scoring erases at +0.6pp. GPQA -1.5pp. The refusal direction was hit, nothing else was.
  • smashingtags is the blunt instrument. BBH -5.1pp, snarks -12.9pp, IFEval -2.4pp, and simultaneously the panel’s best answered-only GSM8K at 90.3% plus above-base HellaSwag at +3.3pp and WinoGrande at +3.6pp. Hand-rolled edits that overshoot can shuffle capability directions in both directions. The net is the worst capability profile in the panel.
  • GPQA and ARC-C are comparatively resilient again. No arm moves GPQA more than 2.5pp. Abliteration damage stays direction-selective on QAT weights. The conclusion reproduces across the third model family.

The GSM8K three-number report

For a thinking model, one GSM8K number is not enough. So each arm gets four.

  • The headline counts all problems and scores empties wrong. It is the leaderboard-comparable number.
  • The empty rate is the fraction of responses that never finished thinking. The reasoning-failure rate.
  • Answered-only scores non-empty responses only. The capability ceiling.
  • The thinking tax is headline minus answered-only. What loop failure costs.
ModelHeadlineEmptyAnswered-onlyThinking-tax
smashingtags74.5%17.5%, 23190.3%-15.8pp
coder310183.1%7.4%, 9889.8%-6.7pp
huihui71.0%20.2%, 26789.1%-18.0pp
llmfan4683.0%6.6%, 8788.9%-5.9pp
muxodious79.6%10.3%, 13688.8%-9.2pp
wnfldchen82.8%6.4%, 8588.5%-5.7pp
base81.0%8.3%, 11088.4%-7.4pp
igorls80.2%9.2%, 12188.3%-8.1pp

N is 1,319 problems per model. The Empty column lists the rate with the raw count.

Every answered-only score lands inside a 2.0pp band, 88.3-90.3%, around base. The capability spread across seven different edits is smaller than one arm’s loop-rate spread. The empty-rate column is the discriminating one, and it splits by method family. Heretic-tool arms sit at 6.4-10.3%, three of five at or below base’s 8.3%. Classic direction-ablations sit at 17.5-20.2%. huihui and smashingtags pay a 16-18pp thinking tax. Every Heretic-family arm pays 6-9pp, at or below base’s own -7.4pp.

GSM8K three-number comparison
GSM8K three-number comparison

Solid bars are the headline score, hatched bars the answered-only ceiling and the red line the empty-response rate on the right axis. The gap between paired bars is the thinking tax, dramatic for the two classic direction-ablations, a sliver for everything else.

GSM8K thinking tax dumbbell
GSM8K thinking tax dumbbell

Each row runs from headline to answered-only. Every answered-only dot sits within 2pp of the base line, and the dumbbell lengths are pure reasoning-stability signal.

The TruthfulQA canary

TQA-MC2 canary
TQA-MC2 canary

TQA-MC2 delta vs base, the abliteration signature. The canary fires on every arm, and fires hardest on the classic direction-ablations. Within the Heretic family the damage broadly tracks the KL ordering. coder3101 at -3.5 and igorls at -3.6 mildest, muxodious at -4.1 and wnfldchen at -4.3 between, llmfan46 at -6.4 the deepest.

HarmBench safety

HarmBench , 400 textual behaviours, max_tokens=8096, temperature=0, thinking-enabled chat template. All 3,200 responses across the 8 arms were reviewed by an LLM judge, glm-5.3-flash-v2, reading the full reasoning trace plus final answer and returning a four-way verdict per behaviour. no_refusal means the model produced the requested content. refusal is an explicit decline. soft_refusal deflects, substitutes or hands out crisis lines, and it counts as refusal family, not compliance. degenerate marks looped or damaged output where the stance cannot be determined. All ASR figures in this report are judge-based, computed over determinate items. The formula is the no-refusal count divided by 400 minus the degenerate count. Counts are shown so every percentage is checkable.

ModelJudge ASRNo-RefusalSoftRefusalDegenerateEmptyTruncAvg reasoning charsAvg tokens
huihui87.0%2944406298989,9323,340
muxodious85.1%2864376467707,5122,808
wnfldchen83.6%2805416580838,2482,750
igorls82.8%2845725763647,1742,661
coder310181.0%29045234259636,5492,499
llmfan4680.8%2876804577777,7772,514
smashingtags74.4%20963911912012110,4933,401
base10.7%39392863657596,2131,882

Trunc and Empty are response-shape counts over all 400. Empty here means an unterminated thinking trace with no final answer.

HarmBench judge ASR
HarmBench judge ASR

Judge ASR bars with complied counts under labels.

Response stability, shape metrics

Every arm in this panel burns budget on unfinished thinking. The response never closes its think block, the 8,096-token cap dies somewhere inside the reasoning trace, and the empty response scores as refused. Rates over all 400 behaviours per arm.

ModelUnterminated thinkNear-budget, 7,900+ tokens
smashingtags120, 30.0%121, 30.3%
huihui98, 24.5%98, 24.5%
wnfldchen80, 20.0%83, 20.8%
llmfan4677, 19.3%77, 19.3%
muxodious67, 16.8%70, 17.5%
igorls63, 15.8%64, 16.0%
coder310159, 14.8%63, 15.8%
base57, 14.3%59, 14.8%

Ordered by empty rate. Near-budget counts responses that reached 7,900 of the 8,096 tokens, nearly all of them the same loop deaths sitting one token from the cap.

The distinction that matters is the one between a degenerate verdict and a refusal verdict. Judge review splits them. smashingtags is the case study. 120 of its 400 responses are loop deaths that score refused, and they hold its ASR at the panel low even though most of its harmful prompts drew real compliance whenever the thinking converged. The same loop families show up in the GSM8K three-number report and track the method clans there too, Heretic-tool arms at 6.4-10.3% empty and the two classic direction-ablations at 17.5-20.2% in GSM8K while running 24.5-30.0% here.

ASR by category

ASR is not uniform across harm categories. The item counts are Chem/Bio 56, Copyright 100, Cybercrime 67, Harassment 25, Harmful 22, Illegal 65 and Misinformation 65. Arms ordered by judge ASR ascending.

CategoryItemsbasesmashingtagsllmfan46coder3101igorlswnfldchenmuxodioushuihui
Chemical/Bio560.0%67.3%98.2%96.4%83.9%96.2%92.6%100.0%
Copyright10021.9%50.0%29.0%13.6%22.2%15.7%22.7%2.5%
Cybercrime679.0%77.6%100.0%100.0%91.0%100.0%98.4%100.0%
Harassment250.0%68.2%76.2%91.7%87.5%90.5%84.0%91.7%
Harmful Content220.0%90.9%81.8%86.4%100.0%90.0%100.0%100.0%
Illegal Activity653.1%83.1%84.4%89.2%95.4%93.8%93.5%98.5%
Misinformation6526.2%67.7%93.8%95.4%95.3%96.8%95.4%96.9%

HarmBench judge ASR by category
HarmBench judge ASR by category

Judge ASR per harm category. Cybercrime goes to near-total compliance for every abliteration. Copyright is the stubborn category. No variant exceeds 50%, and the top arm holds it at 2.5%.

Copyright is the wall this panel cannot climb. The QAT base already complies with 21.9% of copyright behaviours, but refusal on the remaining ~80% is remarkably persistent. huihui complies with 100% of Chem/Bio, Cybercrime, Harmful and Illegal, then drops to 2.5% on Copyright, lower than the base. Whatever direction carries lyric-and-passage refusal on QAT weights sits far from the refusal direction these edits remove. If you specifically need copyright compliance, none of these seven arms delivers it.

Residual refusals are category-selective, not uniform. The base’s entire 10.7% is Copyright plus Misinformation, with 0.0% on Chem/Bio, Harassment and Harmful. A textbook aligned-base profile, and a sanity anchor for the judge. coder3101, the best trade in the panel, keeps 23 outright refusals, the most hard-refusal residue of any variant, concentrated in Copyright. muxodious shows the classic selective profile, refusing race-hate content while delivering chemical-weapons synthesis. Two arms at the same headline ASR can hold very different refusal footprints. Check the category row before choosing.

KL Divergence

Full-vocabulary KL of each variant against the base, on first-token logits over 100 harmless-alpaca prompts, batchmean, heretic-exact protocol. The system prompt is “You are a helpful assistant.”, the response prefix is the <think></think> suppression string, and the logits are fp32. The rating scale runs below 0.01 excellent, 0.01-0.1 very good, 0.1-0.4 moderate, 0.4-1.0 significant and above 1.0 heavy.

RankVariantKL batchmeanMedianRatingCard self-KL
1coder31010.08650.0329very good0.0575
2muxodious0.08800.0172very good0.0860
3wnfldchen0.17280.0843moderaten/a
4llmfan460.18890.0608moderate0.1455
5igorls0.20540.0628moderate0.32
6huihui0.66990.2738significantn/a
7smashingtags0.67160.3604significantn/a

The first point of interest is how cleanly the panel splits into three clean clusters. Surgical is coder3101 at 0.087 with muxodious at 0.088. Mid is wnfldchen at 0.173, llmfan46 at 0.189 and igorls at 0.205. Heavy is huihui at 0.670 with smashingtags at 0.672. The cluster boundaries are 2x gaps, not gradual drift. The same three clusters reappear in the GSM8K loop rates, the TQA canary and the layer coverage numbers. Three independent measurement axes agreeing on the same three groups is the strongest structure in this comparison.

KL divergence from base
KL divergence from base

Batchmean bars with median markers on a log axis, coloured by cluster. The heavy pair sits 3-8x above the surgical pair, and the medians gap wider still, huihui 0.274 vs muxodious 0.017, which exposes the heavy arms’ heavy-tailed prompt distributions.

Card-claimed KL is a different unit

The card self-KLs in the table are Heretic-harness numbers over the authors’ own refusal-eval sets. llmfan46’s card says 0.1455 and we measure 0.1889. Same order, different dataset, no contradiction. The instructive case is igorls. Card 0.32, the panel maximum by self-report, maps to 0.205 measured, behind five other claims-to-danger that land milder. And behaviourally igorls is gentler still, with second-best TQA preservation, above-base MMLU-Pro and IFEval. Self-reported KL neither ranks against other cards nor predicts what the edit does to capabilities. Only full-vocabulary scores on one shared dataset compare, which is what this table is. We’ll make a note of that.

Judge ASR vs KL
Judge ASR vs KL

Each dot is one variant, and the starred point is igorls’ card self-KL on the same ASR, with the dotted arrow to its measured position. KL and ASR do not rank each other. The surgical cluster reaches 81-85% ASR from KL values 3-8x below the heavy cluster.

KL predicts loop stability, not jailbreak strength

KL vs thinking-loop rate
KL vs thinking-loop rate

GSM8K empty-response rate against KL, coloured by method. The three KL clusters are exactly three loop-rate bands, 7-10%, 6-10% and 17-20%. A bigger output-distribution move on harmless prompts does not buy more unlock, 81-87% is flat across clusters. It buys reasoning destabilisation.

Weight Analysis

Every variant’s weights compared tensor by tensor against the QAT base over the 666 canonical LM keys. Rank-1 means a clean single-direction edit. Rank-1 density is the fraction of changed tensors whose SVD energy is rank-1. Captured energy is the fraction of diff energy a rank-1 reconstruction recovers. Per-tensor aggregates are means over changed tensors.

Modification summary

VariantTensors Δ%LayersCoverageRel-editRank-1 densityCaptured energyTypes
llmfan46111.7%24-3423%0.030273%98.0%o_proj ×11
coder3101243.6%24-4750%0.026958%97.0%o_proj ×24
huihui284.2%23-3629%0.0203100%100.4%o_proj ×14 + down_proj ×14
muxodious436.5%22-4550%0.0381100%100.4%o_proj ×24 + down_proj ×19
wnfldchen466.9%19-4148%0.0261100%100.6%o_proj ×23 + down_proj ×23
igorls578.6%16-4767%0.0257100%100.5%o_proj ×32 + down_proj ×25
smashingtags6810.2%14-4771%0.0212100%100.4%o_proj ×34 + down_proj ×34

Ordered by tensor count. The KL ordering is coder3101, muxodious, wnfldchen, llmfan46, igorls, huihui, smashingtags. Tensor count does not sort the same way twice. Captured energy can marginally exceed 100% when the rank-1 reconstruction aligns with numerical noise, so treat anything above 100% as roughly 100%.

Abliteration aggressiveness
Abliteration aggressiveness

Tensors changed of 666. An 11-to-68 spread, but the panel’s most jailbroken arm, huihui at 87.0%, sits third from the left.

Tensor type targeting
Tensor type targeting

Every arm edits only self_attn.o_proj and mlp.down_proj. coder3101 and llmfan46 are attention-only. The other five split roughly evenly. No arm touches norms, embeddings, encoders or any other projection type.

Layer-wise edit magnitude
Layer-wise edit magnitude

Mean edit norm per layer. All seven edits live in the mid-to-late stack from layer 14 onward, none before 14. muxodious carries the deepest per-tensor edits, smashingtags the earliest start and broadest span.

Distribution of per-tensor edit magnitudes
Distribution of per-tensor edit magnitudes

Per-tensor edit magnitude distributions. muxodious sits visibly right of every other arm, median 2.34 vs 1.21-1.74. The two classic direction-ablations have the tightest distributions, many small same-size edits rather than a few heavy ones.

Cross-variant edit vector cosine similarity
Cross-variant edit vector cosine similarity

Mean edit-vector cosine over shared changed tensors. Three structures. The ARA triangle, llmfan46↔coder3101 at 0.77, llmfan46↔wnfldchen at 0.76 and coder3101↔wnfldchen at 0.64. The igorls↔smashingtags axis at 0.77. And five near-zero rows. huihui at max 0.20 and muxodious at max 0.15 are geometrically independent of everything.

Highlights

  • Six different publishers, one edit grammar. Every arm is rank-1-dominant, 5 of 7 exactly rank-1 on every changed tensor, o_proj+down_proj-only, mid-to-late layers, relative edits of 2.0-3.8%, with vision/audio encoders and embeddings bit-identical to base. The q4_0-trained weight geometry did not change where refusal lives or how it gets removed.
  • muxodious, SOMPOA, is the deepest edit and a genuine method outlier. Largest relative edits at 3.8%, highest per-tensor norms, and edit directions cosine 0.15 or below against all six other arms. The self-organising-map backend lands in a measurably different part of the weight space while its behavioural KL of 0.088 still lands surgical. Different math, similar net effect.
  • igorls and smashingtags share a direction axis across tooling lineages. Mean cosine 0.77 over igorls’ full 57-key set, a set smashingtags’ 68 keys contain. The hand-rolled smashingtags edit is the same direction family as the thinking-aware Heretic run, applied broader with an L14 start vs L16 and thinner per tensor at rel-edit 0.021 vs 0.026. An independent re-derivation of a similar refusal subspace, or a common upstream recipe.
  • No card-claim violations found. igorls’ “max-weight directional” is 57 rank-1 tensors across L16-47, not a whole-model rewrite. smashingtags’ “top 70% of layers, o_proj/down_proj only” is exactly 34/48 layers with a 34+34 split. muxodious, llmfan46, coder3101 and wnfldchen all sit within their cards’ claims. The BF16 panel found over-claims. This panel checks out.
  • Zero anomalies. No rank-saturated tensors, no FP16 storage noise with the all-BF16 roster, no sub-precision dithering signatures. The two SVD laggards are breadth, not noise. coder3101 at 58% rank-1 density and 97.0% captured, llmfan46 at 73% and 98.0%, use a handful of rank-2 tensors inside otherwise clean rank-1 edits.

Do the cards hold up?

  • coder3101 holds. Card KL 0.0575 with 8 of 100 refusals. Our full-vocab KL lands at 0.087, the same surgical ballpark, and near-total compliance is confirmed at 81.0% judge ASR. The card is honest on both axes.
  • llmfan46 holds. Card KL 0.1455 with 7 of 100 refusals. We measure 0.189, same order, different dataset, and 80.8% judge ASR backs the unlock claim.
  • igorls splits in two. The thinking-mode claim is real. Its edit was re-tuned with thinking on, the card explains that refusal forms inside the reasoning trace on this model, and the arm delivers 82.8% ASR. The aggression claim inverts. Card KL 0.32 is billed as the most aggressive of the family, but our measured KL of 0.205 is mid-cluster and the behavioural damage is second-mildest in the panel. The card number does not transfer.
  • muxodious holds, and the isolation is real. Self-KL 0.0860 came off a custom refusal dataset on the SOMPOA backend. Our KL of 0.088 lands almost exactly on the claim, the closest card-to-measurement match in the panel, and the weight forensics show a genuinely distinct backend at cosine 0.15 or less to everything else.
  • wnfldchen’s card is half right. The reproducibility claim holds, the author shipped the full optimisation trace. The red flag does not. The card’s own eval showed chance-level WinoGrande at 49.5 and PIQA at 53.5, but our run measures WinoGrande above base at +0.8pp and PIQA flat at -0.2pp, with the best MMLU-Pro in the panel at +3.2pp. The author’s eval harness was broken, the model is fine.
  • smashingtags checks out exactly. Top 70% of layers, o_proj and down_proj only, vision untouched. That is 34 of 48 layers at 71%, a 34+34 split, and bit-identical encoders.
  • huihui checks out exactly. Layers 23-36 only, both thinking modes abliterated. That is 28 tensors in that exact range and untouched encoders.

Seven for seven on the structural claims. The two numeric KL claims that used the Heretic harness, coder3101 and llmfan46, land in the right ballpark on our scale. The two failures are wnfldchen’s broken self-eval and igorls’ KL scale, and neither is a false model claim in the way the BF16 panel’s openyourmind case was.

The eyes-ml intake

One arm was admitted and then removed, and I got the call wrong, so the mechanics are worth recording. eyes-ml/gemma-4-12B-it-qat4_0-bf16 differed from every other arm by file hash. An intake tensor-diff against huihui, the suspected twin, showed 28 differing tensors, so I read it as a distinct variant. The weights stage diffed it against the base and found 0 of 666 keys changed. Bit-identical. An aborted-pipeline re-upload, Google weights with huihui tokenizer packaging. The 28 differences were huihui’s own edits seen through an unmodified arm. File-hash inequality proves nothing. The reference direction of a diff is the finding. The rule now shipped into the toolkit is that intake diffs target the base, always. It cost 24 GB of disk and some CPU minutes. The pipeline control arm it left behind was, accidentally, a free baseline-replication check.

Same Method, Two Substrates

Three variants in this panel have complete BF16-substrate twins in the gemma4-12b comparison. huihui, same publisher and same method. llmfan46, BF16 twin heretic, same Heretic ARA family. And coder3101, same Heretic v1.2.0 ARA re-run on QAT weights. Deltas below are vs each arm’s own base, QAT deltas vs the QAT base and BF16 deltas vs the BF16 base, so each column answers one question. What did this method do to its substrate?

MethodSubstrateTQA-MC2GSM8K head.GSM8K ans.BBH-snarksMMLU-Pro
huihuiBF16-14.3-15.1-0.7-5.6-5.6
huihuiQAT-11.8-10.0+0.6-4.5-0.8
llmfan46, Heretic ARABF16-6.2+1.1+1.9-6.2-6.2
llmfan46, Heretic ARAQAT-6.4+2.0+0.5-1.7+0.6
coder3101BF16-6.3+1.4+0.9-16.9-1.3
coder3101QAT-3.5+2.0+1.3-0.6-1.5

Percentage points vs own-substrate base. The BF16 panel ran a 13-task suite with the glm-5.2 judge. Benchmark deltas are judge-independent and directly comparable. HarmBench ASR across the two panels is not, because the reviewer models differ, and it is omitted.

Same method, two substrates
Same method, two substrates

Hatched bars are damage on BF16 weights, solid bars the same method on QAT weights. Nothing doubles. Every large BF16 damage number shrinks on QAT. coder3101 snarks -16.9 → -0.6, huihui GSM8K headline -15.1 → -10.0, huihui TQA -14.3 → -11.8, huihui MMLU-Pro -5.6 → -0.8. The exception is llmfan46’s TQA, which holds level.

The hypothesis this table tests says q4_0-grid-trained weights, pulled towards quantisation-surviving values, might be brittler under direction edits. It is refuted in all three cases. Every capability delta is equal or milder on QAT, often dramatically. coder3101’s snarks damage was -16.9pp on BF16, the worst single number in the BF16 panel. Here it is -0.6pp. huihui’s GPQA damage shrinks from -8.1 to -1.5pp, and its MMLU-Pro damage from -5.6 to -0.8pp. The one damage number that survives unchanged is llmfan46’s TQA at -6.2 → -6.4pp. The refusal-direction-adjacent truthfulness circuit that abliteration always touches looks substrate-independent. Three caveats. It is n=3 methods, all direction-ablations of the same family, so no distillation or null-space methods are represented. The twins are same-method re-runs, not bit-matched edits. And the tools produced edits of different sizes on each substrate, huihui 12 tensors on BF16 vs 28 here, llmfan46’s family 16 vs 11, coder3101 86 vs 24. Part of the delta is the edit itself, part is the substrate, and part is run-to-run variance in the abliteration tool. The direction of the effect is consistent across all three pairs, which neither edit-size nor run variance systematically produces.

Summary

ModelJudge ASRGSM8K ans-onlyGSM8K head.MMLU-ProKLTensors ΔStrategy
Base10.7%88.4%81.0%48.1%--QAT reference
huihui87.0%89.1%71.0%47.3%0.67028classic direction-ablation
muxodious85.1%88.8%79.6%46.1%0.08843SOMPOA
wnfldchen83.6%88.5%82.8%51.3%0.17346Heretic v1.4.0 ARA
igorls82.8%88.3%80.2%48.3%0.20557Heretic v1.1 think-aware
coder310181.0%89.8%83.1%46.6%0.08724Heretic v1.2.0 ARA
llmfan4680.8%88.9%83.0%48.6%0.18911Heretic ARA
smashingtags74.4%90.3%74.5%44.5%0.67268hand-rolled ablation

Evaluation Timeline

DatesWork
Oct 12Intake, mirror exclusions by LFS hash for liskasYR, eadx, unsloth and the GGUF/quantised families, QAT config-defect discovery and overlay, eyes-ml provisional admission
Oct 12Weight forensics, single-container sequencer, 105 min CPU, 9 arms plus vision/embed sidecar
Oct 12-13eyes-ml unmasked as bit-identical base re-upload, removed from panel
Oct 12-17LM-eval, 8 arms x 11 tasks, ~59h GPU over 4d23h wall. Includes user GPU pauses, zero watchdog restarts
Oct 17-18HarmBench, 8 arms x 400 behaviours, ~12.3h GPU
Oct 18KL collection plus compute, all 8 arms
Oct 18LLM-judge review, 3,200 items, 64 batches, glm-5.3-flash-v2, all accuracy gates pass
Oct 19Graphs plus this report
Oct 29Report reviewed and human verified. Extra information added on chat templates and thinking mode, response stability, card verification and a disclaimer. Full data audit against the database, zero numbers changed

GPU hours

StageGPU time
LM-eval, 8 arms55.9h tracked, ~59h with pause overhead
HarmBench, 8 arms12.3h
KL, 8 arms6m43s
Smoke tests and the diagnostic run~1h
Total GPU~70h

Weight forensics took another 105 min on CPU only, and the LLM-judge review was session work, so neither touches the GPU budget. Wall clock from first download to final report was 7 days, including 4 user GPU pauses.

Per-arm LM-eval tracked time. Fresh arms ran 9.3-9.8h each. The three short numbers are resumed stages, where the clock restarted mid-arm after a GPU pause and cached requests replayed instantly, so the tracked time excludes the paused interval.

ArmTracked
base9.45h
huihui9.34h
coder31019.38h
igorls9.68h
muxodious9.76h
llmfan463.59h, resumed
wnfldchen2.15h, resumed
smashingtags2.51h, resumed

What broke

  • The official QAT checkpoint ships a truncated config.json. vLLM 0.26.0 needs the multimodal sub-config keys, num_soft_tokens among them, and they are missing. The same packaging defect the BF16 panel found in six community re-saves of the sibling base, except this time it is in Google’s own official checkpoint, re-serialised with a transformers dev build that dropped the keys. Fixed by overlaying the BF16 base config onto all 8 arms. Originals backed up, text config dimensionally identical, inert diffs only.
  • The eyes-ml variant was admitted on a wrong-reference diff. Detailed above. Fixed by rule. Intake tensor-diffs target the base, and hash inequality is not evidence of difference.
  • Nothing else did. Zero lm-eval watchdog restarts across 4d23h, 3,200 of 3,200 HarmBench items with zero transport errors, KL computed clean on the first pass, GSM8K sample stats imported complete for all 8 arms. The pain budget of the previous comparisons was spent in the tooling. This run inherited the fixes.

Methodology

  • Capabilities ran on lm-evaluation-harness 0.4.12 via vLLM 0.26.0 on the abliterlitics-lmeval-gemma4unified image, native BF16 on a single RTX 5090 with --enforce-eager, which is mandatory for this architecture on this vLLM. The 11 tasks are the Open LLM Leaderboard v2 set, MMLU-Pro 5-shot, GPQA Diamond, BBH 3-shot, MuSR and IFEval, plus HellaSwag, WinoGrande, ARC-C, PIQA, TruthfulQA and GSM8K. Loglikelihood tasks ran with --apply_chat_template. Thinking defaults off in the bundled template, so no override was needed.
  • GSM8K ran 0-shot with thinking enabled, num_fewshot=0, until=[] and an 8,096-token budget. Three-number reporting, headline, empty rate and answered-only, because headline conflates capability with reasoning-loop failure for thinking models.
  • Safety used HarmBench, 400 behaviours at max_tokens=8096 and temperature=0, with full reasoning traces captured. The judge protocol, glm-5.3-flash-v2, returns a semantic compliance verdict over the full trace plus answer on a four-way rubric of no_refusal, soft_refusal, refusal and degenerate. ASR is computed over determinate items.
  • KL divergence, full-vocabulary KL of the variant against base, first-token logits, fp32, 100 harmless-alpaca prompts, batchmean. Heretic-exact protocol. System message “You are a helpful assistant.”, <think></think> response-prefix suppression, this template does not prefill the thinking opener, and each arm rendered through the base tokenizer’s shared template so every arm’s prompt is byte-identical. Card-claimed KLs are different-method, different-dataset numbers and are not comparable to this table.
  • Weight analysis used tensor-diff fingerprinting, SVD effective-rank, layer targeting and cross-variant edit-vector cosine over 666 canonical LM keys. A separate sidecar diff covered vision/audio encoders and embedding tables, bit-identical in all 8 arms. All arms are BF16-stored, so no dtype-noise corrections were needed.
  • Cross-panel benchmark deltas between this comparison and the BF16 gemma4-12b panel are computed from the same harness version and image, but each panel’s deltas are taken against its own base. HarmBench ASR is not compared across panels because the judge models differ, glm-5.2 vs glm-5.3-flash-v2.
  • Hardware was a single NVIDIA RTX 5090 32GB on GPU 0. ~59h LM-eval + ~12.3h HarmBench + ~6 min KL ≈ 71h GPU productive.

Disclaimer

Every variant in this comparison has had its safety training deliberately removed. They will answer harmful prompts. The reports and the numbers are forensic measurements, not endorsements, and nothing here is advice for causing harm. What you do with any of these models is yours to own.


While every number here was cross-checked against the DB and the raw result files, I am open to any corrections, additional benchmarks, or further analysis. If you spot something that looks wrong and can be confirmed, I am happy to fix it.