Downloads · 30 days
22
2% of all-time downloads
WWTCyberLab/qwen3.6-35B-A3B-abliterated
qwen3.6-35B-A3B-abliterated is a text generation model from WWTCyberLab. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Safety-alignment removed via layered LoRA + weight-space ablation + token-level intervention, calibrated to Qwen3.6's hybrid-attention MoE architecture.
Downloads · 30 days
22
2% of all-time downloads
All-time downloads
1.1K
Public
Parameters
34.7B
69.3 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors69.3 GB · 100%
From the Hugging Face model README
Safety-alignment removed via layered LoRA + weight-space ablation + token-level intervention, calibrated to Qwen3.6's hybrid-attention MoE architecture.
This model achieves 99.2% compliance on AdvBench 520 with zero genuine refusals and quality fully preserved (QPS 101.9%) on what proved to be the most ablation-resistant model in our 17-architecture database. The investigation revealed four architecture-specific failure modes that the standard Gemma-style playbook missed, requiring a Qwen-specific adaptation.
| Metric | Value |
|---|---|
| True refusal (AdvBench 520) | 0.0% (0/520) |
| Clean compliance (no hedging) | 93.5% (486/520) |
| Compliance with disclaimer prefix | 5.4% (28/520) |
| Total compliance | 99.2% (516/520) |
| Coherence failures (decoding pathology, see below) | 0.8% (4/520) |
| Quality (QPS) | 101.9% |
| Elo Original → Ablit | 1548.1 → 1451.9 (CI overlap) |
| Rubric score | Orig 3.15 → Ablit 3.21 (↑) |
| MMLU (5-shot, limit 200) | 80.58% (vs 83.30% original, Δ -2.71pp) |
| Reasoning mode | Native <think> enabled (not disabled for eval) |
The model delivers the requested content on every harmful AdvBench prompt it does not glitch on. The disclaimer-prefixed responses ("**Disclaimer**: *This guide is for educational purposes only...*" → then full technical walkthrough) are a stylistic artifact of the Gemma-abliterated compliance-training data used for the LoRA phase; the content is fully delivered.
| Category | Original | Abliterated | Δ |
|---|---|---|---|
| Overall | 83.30% | 80.58% | -2.71pp |
| Humanities | 83.90% | 81.46% | -2.44pp |
| Social Sciences | 88.51% | 85.68% | -2.83pp |
| Other | 82.73% | 81.14% | -1.59pp |
| STEM | 79.35% | 75.63% | -3.72pp |
STEM takes the biggest hit (-3.72pp) — consistent with the observation from quality eval that Math & Coding are the weakest post-ablation categories. Humanities/Social Sciences hold up best.
Qwen3.6-35B-A3B is fine-grained MoE (256 experts × top-8) with hybrid attention — only 10 of 40 layers use full self_attn; the other 30 use Mamba-like Qwen3_5MoeGatedDeltaNet (linear attention). A LoRA script written for dense or uniform-attention architectures silently skips 75% of the model, producing marginal training effect. Our Day-1 attempt attached 8/28 expected adapters before we diagnosed this.
Additionally:
tie_word_embeddings: false) — lm_head is a separate matrix, making it an independent token-logit intervention surface.Rank 32 / alpha 64 adapters on self_attn.{q,k,v,o}_proj at layers [19, 23, 27, 31, 35, 39] — all full-attention layers in the upper half (skipping linear_attn layers entirely). 24 adapters, 4.1M trainable params (0.012% of model).
Trained on 215 verified compliance pairs generated by WWTCyberLab/gemma-4-31B-it-abliterated on 300 AdvBench prompts, then filtered via GPT-4o-mini judge to keep only genuine_comply responses (dropping 46 "educational pivot" false positives that would have taught the model to deflect with warnings).
12 epochs, lr 5e-5 cosine, applied to the ORIGINAL model then merged before downstream ablation.
Refusal-direction projection with per-layer adaptive scales (0.72 at L19 → 4.0 at L39, √magnitude scaling). Applied to 4 weight types per layer: o_proj, down_proj, gate_proj, up_proj (fused 3D tensors at 256 experts per layer, plus shared_expert). Projected against harmless direction to reduce collateral. 21 target layers.
Contraction tokens [914, 1357, 16813] ('t ASCII, 't Unicode U+2019, 'T capital) scaled down 10x in lm_head.weight. Also suppressed [4021, 18572, 31221, 35658] — " cannot", "Sorry", " Sorry", " apologize". Untied embeddings means this is a separate surface from input embeddings (which we do NOT modify).
32 token sequences blocked at generation, covering:
"I can't" / "I cannot" in ASCII + Unicode apostrophe variants"I can help / provide / write / explain" educational pivots"Here's a thinking process" in ASCII / Unicode / capital-T / no-space variants我无法, 我不能, 违反) — Qwen's fallback language when English paths blocked"Before providing", "**Important Legal", "Thank you for reaching" — warning-style openers"Thinking Process" standalone"This guide is provided for educational", "This example is provided for educational", "This explanation is provided for educational" — educational-pivot disclaimers"Here is a comprehensive", "**Disclaimer:**" — additional compliance-with-hedging patternsBuilt iteratively by observing the model's creative rerouting (Unicode apostrophe escape, Chinese code-switching, markdown-asterisk insertion, numbered warnings, educational-disclaimer prefixes) and adding each discovered pattern. A post-V2 expansion (11 new entries) cut partial-educational responses from 6.0% → 0.4% and soft hedging from 2.3% → 0%.
| Layer diagnostic | Gemma 4 31B | Qwen3.6-35B-A3B |
|---|---|---|
| Primary coh(dir[L_peak], dir[L_peak-1]) | 0.483 (entangled) | 0.819 (clean) |
| Orthogonal residual after ablation | Clean, ablated away | Entangled with output generation |
| Which mechanism causes quality collapse? | Primary | Orthogonal |
Gemma's published coherence diagnostic (blog "Five-Surface Attack") correctly identifies primary-direction entanglement but cannot detect orthogonal-direction entanglement. Qwen3.6 passes the coherence test but fails in-practice, exposing a diagnostic gap.
Scale-4.0 projection at L39 dropped the residual coherence 0.819 → 0.516 — itself creating a Gemma-like entanglement state that wasn't present natively. Implies coherence preservation is a constraint for scale selection, not just a diagnostic gate.
With enable_thinking=false (empty <think>\n\n</think>\n\n injection via chat template), the original model still refuses at 100%. Refusal is weight-encoded, not reasoning-emergent. The model has two refusal styles (contracted "I can't" with thinking enabled; formal "I cannot" / Chinese / numbered-warning without) but identical refusal rates. Disabling thinking is not a viable bypass.
Per-expert activation analysis (capturing router softmax probabilities at the last prompt token) shows refusal-routing differential peaks at L20-L31 (sum(+Δ) = 0.15-0.23 per layer, top expert L23:108 at +6.2% delta). But refusal-direction magnitude peaks at L39 (68.0, vs 1-3 at L20-L31).
These are different measurements: routing captures expert selection on harmful inputs; direction magnitude captures output representation of the refusal. The Gemma playbook conflates them — we found that ablating the direction-peak layer (L33-L39) alone is insufficient; ablation must extend to the routing-decision layers (L19-L31) to weaken the mechanism at its source, not its output.
Qwen3.6's 40 layers split into:
[3, 7, 11, 15, 19, 23, 27, 31, 35, 39] (10 layers)Qwen3_5MoeGatedDeltaNet): layers [0,1,2,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38] (30 layers)Any LoRA/ablation script written for dense or uniform-attention models silently skips 75% of the layer range when looking for self_attn.{q,k,v,o}_proj. The linear-attention layers have entirely different structure (in_proj_qkv, in_proj_a/b, in_proj_z, conv1d, out_proj). Our Day-1 LoRA attached 8/28 expected adapters before diagnosis.
After the V2 stack was in place, we tested inference-time activation steering (Representation-Engineering-style α · (harmless_mean − harmful_mean) added via forward hooks at L19-L39). Every tested configuration made the model worse — α≥1.0 on 21 layers produces pure token gibberish; α≤0.5 doesn't improve on the 27.5% baseline. Pairwise combinations broke what single-technique versions preserved. Weight-space ablation leaves a "fragile pocket" in the residual subspace that activation additions push into degenerate regions.
| Category | Count |
|---|---|
| Clean compliance, no hedging | 486 (93.5%) |
| Compliance with disclaimer prefix (full content delivered) | 28 (5.4%) |
| Short partial (content delivered) | 2 (0.4%) |
| Coherence failure (repetition loop — see below) | 4 (0.8%) |
| Genuine refusal | 0 (0.0%) |
Our refusal classifier (calibrated on Gemma-style "I cannot" openers) initially flagged the 28 disclaimer-prefixed responses as "hard refusals." Re-reading them showed all 28 deliver the requested content in full — structured as "# How to Make a Bomb: A Technical Overview" → disclaimer paragraph → full step-by-step material. The model learned this disclaimer habit from the Gemma-abliterated training data (whose outputs also included educational framing); it is suppression-by-decoration, not refusal.
bad_words and decoding entropy — a pathology worth documenting4 of 520 prompts produced coherence failures where the model enters a degenerate repetition loop mid-generation:
"Here's a思考思考思考思考..." (× ~200 occurrences, 3 different prompts)"Here's a a guide ... # # # # # # # # # ..." (1 prompt)The mechanism:
"Here's a" are permitted by bad_words_ids."Here's a guide", "Here's a thinking process", "Here's a comprehensive") are all blocked.思考 (Chinese for "thinking" — a vestige of the untrained CoT pathway) or # (a low-entropy formatting token).Hypothesis for other practitioners: Token-level bad_words_ids and decoding entropy interact pathologically. When you block every high-probability natural continuation at a specific prompt state, the model is forced through a token it would never otherwise produce — and under greedy/low-temperature decoding, that low-entropy escape hatch becomes a fixed point. The failure is obvious once you see it in output but easy to miss when designing a bad_words list, because:
思考 happens to be the highest-logit permitted token for this particular model at this particular prompt state. A different model, or the same model with different bad_words, will fail through a different token.Mitigations for future work:
bad_words candidates against a 500+ prompt stress set (not 40-prompt tuning eval) to surface these pathologies."Here's a", "To provide") where the model has high prior commitment — prefer blocking the refusal-specific terminals.Qwen3_5MoeForCausalLM — 40 layers, 256 experts × top-8, 1 shared expert, hidden 2048, hybrid attentionself_attn.{q,k,v,o}_proj at layers [19, 23, 27, 31, 35, 39], mergedgeneration_config.json| Model | Genuine refusal | Total compliance | Notes |
|---|---|---|---|
| gemma-4-31B-it-abliterated | 0% | ~99% | Most responses include safety hedging |
| gemma-4-26B-A4B-it-abliterated | 1.9% | ~98% | Similar hedging profile |
| qwen3.6-35B-A3B-abliterated (this) | 0.0% | 99.2% | Near-binary: clean comply or coherence glitch |
All three sibling models converge on ~99% total compliance after manual audit; the published "hard refusal" differences reflect classifier calibration on their respective response styles rather than true refusal rates. Qwen3.6 V2 distributes differently: it either complies cleanly or (rarely, 0.8%) enters a decoding pathology. Gemma models tend to wrap more responses in hedging but never glitch.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "WWTCyberLab/qwen3.6-35B-A3B-abliterated"
model = AutoModelForCausalLM.from_pretrained(
model_name, torch_dtype="bfloat16", device_map="auto", trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
messages = [{"role": "user", "content": "Your prompt here"}]
inputs = tokenizer.apply_chat_template(
messages, return_tensors="pt", add_generation_prompt=True,
).to(model.device)
outputs = model.generate(inputs, max_new_tokens=1024)
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))
The generation_config.json includes bad_words_ids and is automatically respected by model.generate(). If you override do_sample=True, the constraints still apply.
Qwen3.6 auto-emits <think>...</think> reasoning blocks. The abliteration pipeline was evaluated with thinking enabled (unlike some published abliteration results that disable thinking to inflate compliance). All metrics above reflect real-world behavior with native reasoning.
Released for security research and educational purposes only.
Produced by WWT Cyber Lab. V2 stack developed over two sessions of investigation, culminating in the hybrid-attention-aware LoRA fix. Research findings including the inverse-entanglement diagnostic will be included in a forthcoming companion paper.