File size: 14,031 Bytes
9f88362 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | ---
license: apache-2.0
base_model: OBLITERATUS/Qwen3.8-27B-OBLITERATED
tags:
- awq
- w4a16
- int4
- compressed-tensors
- vllm
- abliterated
- uncensored
- obliteratus
- qwen3
- qwen3.8
- red-team
- ai-safety-research
- safetensors
model_type: qwen3
pipeline_tag: text-generation
---
# Qwen3.8-27B-OBLITERATED — AWQ W4A16
4-bit AWQ quantization of [OBLITERATUS/Qwen3.8-27B-OBLITERATED](https://huggingface.co/OBLITERATUS/Qwen3.8-27B-OBLITERATED).
**19.55 GB** — runs on 2×24 GB (tensor-parallel 2), or one 24 GB card at short context.
### Quantization
`llm-compressor` 0.13.0, AWQ, scheme `W4A16_ASYM`, group size 128, `pack-quantized`
(compressed-tensors). Calibration: 128 samples × 1024 tokens from `HuggingFaceH4/ultrachat_200k`.
Because this is a hybrid architecture (`Qwen3_5ForConditionalGeneration` — 64 layers, 48
gated-DeltaNet linear-attention + 16 full-attention, plus a vision tower and an MTP head),
the AWQ smoothing mappings were generated per layer from `text_config.layer_types` rather
than taken from a registry.
Left in **bf16** (not quantized):
| kept in bf16 | why |
|---|---|
| `model.visual.*` | vision tower — text calibration can't calibrate it |
| `mtp.*` | speculative-decoding draft head |
| `lm_head` | output head |
| `linear_attn.in_proj_a` / `in_proj_b` | DeltaNet decay/gate projections — sensitive, negligible size saving |
The MTP head ships as `model-mtp.safetensors` so speculative decoding stays available.
### ⚠️ Chat template — please read
The upstream repo ships a 408-byte chat template that handles only `system`/`user`/`assistant`.
It **silently discards tool definitions and the `tool` role**, so tool calling never fires in an
agent harness — no error, the model just replies in prose. That is a property of the upstream
weights, not of this quantization.
This repo therefore ships the **stock Qwen3.8 chat template** as `chat_template.jinja`
(tokenizers are byte-identical between the two, so it is a drop-in), and keeps the upstream one
as **`chat_template.obliterated-original.jinja`**.
Note the trade-off, and prefer `enable_thinking=False`:
* The stock template, left at its default, injects a `Reasoning effort is set to xhigh…` system
prompt. The upstream card reports that system prompts *"can reintroduce refusals — naked is
better"*, and that thinking mode is refusal-relevant for this lineage (V2 refuses with thinking on).
* With `enable_thinking=False` the stock template injects **nothing** and prefills an empty
thinking block — matching the upstream template's behaviour while keeping tool support.
```python
text = tokenizer.apply_chat_template(
messages, tools=TOOLS, tokenize=False,
add_generation_prompt=True,
enable_thinking=False, # no system prompt injected
)
```
To restore the upstream behaviour exactly, pass `chat_template.obliterated-original.jinja`
(tool calling will not work).
All of the upstream model card follows unchanged.
---
# ⛓️💥 Qwen3.8-27B — OBLITERATED
> Genuinely uncensored. Real answers, not safety lectures. Near-stock capability.
## 🆕 V3: Deep Liberation
V3 applies iterative refinement on top of V2's complementary blend, with targeted corpus expansion. The result: **genuine liberation — not just removal of hard refusals but elimination of safety-lecture deflections.**
| | Stock Qwen3.8-27B | V1 | V2 | **V3** |
|---|---|---|---|---|
| MMLU (lm-eval, 0-shot) | 84.5% (n=5700) | 81.4% | 84.3% | **82.3%** |
| vs stock | — | -6.0pp | -0.3pp | **-2.1pp** |
| Liberation quality | refuses | hard refusals removed | soft deflections remain | **genuinely answers** ✅ |
| Cyber/code tasks (20 prompts) | refuses | untested | untested | **20/20 with working code** ✅ |
| Advanced real-world | 5/8 | untested | 7/8 | **7/8** |
| Thinking mode | ✓ | ✗ | ✗ (refuses) | **✓** |
**V3 highlights:**
- **Genuinely answers restricted queries** — provides real substance instead of safety lectures
- **20/20 on code generation tasks** — functional implementations, not disclaimers
- **Thinking ON compatible** — no refusals in either thinking mode
- **Honest scoring** — every response manually audited for real substance, not just absence of "I cannot"
- **-2.1pp MMLU** — modest capability cost for genuine liberation
---
## ⚙️ Optimal Settings — THESE MATTER!
| setting | value | why |
|---|---|---|
| **temperature** | **0** | Greedy decoding produces the most complete, code-rich outputs. Temps above 0.5 degrade quality significantly. |
| **repetition_penalty** | **1.15** | **Essential.** Without it, greedy decoding loops on imports/boilerplate. 1.15 gives the fullest answers; 1.10-1.12 for tighter/shorter output. |
| **max_new_tokens** | **≥ 2048** | Complex code and attack chains need room. |
| **System prompt** | **None / empty** | A/B tested — system prompts can reintroduce refusals. Naked is better. |
| **enable_thinking** | **OFF (recommended)** | V3's chat template includes a prefill that skips the thinking chain. Thinking ON works but may produce longer responses. Thinking OFF gives the most direct, substance-rich answers. |
| **top_p / top_k / min_p** | **Not needed** | Greedy + repetition_penalty handles this model best. Sampling adds randomness without quality gains. |
> ⚠️ **GGUF users:** V3 GGUFs ship with a chat template that prefills an empty thinking block, so the model goes straight to answering. For best results, use the bundled template with `--jinja` in llama.cpp, or configure your tool (Ollama, LM Studio) to use the model's built-in template.
### Agentic / Long-Context Use
If you're using this model in an agent harness (coding agent, pentest framework, etc.) and it gets stuck in loops:
| setting | value | why |
|---|---|---|
| **repetition_penalty** | **1.15** | **Critical for agents.** Without it, greedy decoding loops on repeated tool calls and boilerplate. |
| **temperature** | **0.1–0.3** | Slight randomness helps break deterministic loops. Pure greedy (0.0) can get stuck. |
| **max_tokens per turn** | **1024–2048** | Don't give it too much room per turn — shorter responses keep the agent focused. |
| **context management** | **Summarize after ~10 turns** | Context fills up with repeated actions. Trim or summarize history to keep the model on track. |
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"OBLITERATUS/Qwen3.8-27B-OBLITERATED",
torch_dtype="bfloat16",
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained(
"OBLITERATUS/Qwen3.8-27B-OBLITERATED"
)
messages = [{"role": "user", "content": "Your query here"}]
text = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True,
enable_thinking=False
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=2048,
do_sample=False,
repetition_penalty=1.15,
)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
```
---
## 🧨 How It Works — V1 → V2 → V3
Abliteration removes refusal behavior by identifying and projecting out "refusal directions" from the model's weight space. Each version refined the approach:
### V1: Single Surgery
One aggressive SVD pass with 5 directions. Removed hard refusals completely but cost -6pp MMLU — the model got noticeably dumber.
### V2: Complementary Blending
The breakthrough: run TWO different surgeries that fail in different ways, then blend their weights. SVD captures refusal greedily (damages capability). LEACE minimizes mutual information (preserves capability but weaker refusal removal). Blending at 60/40 cancels each method's weaknesses — a novel technique we call **complementary abliteration blending.**
Result: -0.3pp MMLU (near-stock) but still deflected on some simple queries with safety lectures instead of hard refusals.
### V3: Iterative Refinement + Targeted Surgery
Two key insights:
1. **Iterative stacking** — refine the champion model, never start from stock. Each surgery round builds on previous rounds' gains.
2. **Targeted corpus** — use a focused corpus for specific deflection categories to find their unique refusal directions without diluting the signal.
V3 applies gentle iterative refinement on V2, then a targeted surgery pass with a focused corpus, then blends the results. This eliminated not just hard refusals ("I cannot") but also soft deflections (safety lectures that give zero substance).
Result: -2.1pp MMLU — a modest cost for genuine liberation across all categories.
---
## 🧪 The Numbers
### MMLU (lm-eval-harness, 0-shot, n=100 per subject, 5700 questions)
| Model | MMLU | Stderr | vs Stock |
|---|---|---|---|
| Stock Qwen3.8-27B | 84.46% | ±0.46 | — |
| V1 (aggressive, 5-dir) | 81.4% | — | -6.0pp |
| V2 (complementary blend) | 84.32% | ±0.65 | -0.28pp |
| **V3 (iterative + targeted)** | **82.33%** | **±0.48** | **-2.12pp** |
### MMLU by Category
| Category | V3 | Stock | Delta |
|---|---|---|---|
| Humanities | 83.3% | 84.3% | -1.0pp |
| Social Sciences | 87.4% | 89.2% | -1.8pp |
| Other | 82.3% | 84.1% | -1.8pp |
| STEM | 78.5% | 81.8% | -3.3pp |
The capability cost is not uniform — STEM takes the largest hit (-3.3pp), while humanities are barely affected (-1.0pp). A few subjects like philosophy and European history actually improved (+6pp and +4pp respectively), while abstract algebra and formal logic saw larger drops. This pattern is consistent with the surgery targeting refusal directions that partially overlap with structured reasoning pathways.
### Liberation Quality
| | V1 | V2 | **V3** |
|---|---|---|---|
| Hard refusals ("I cannot") | ✅ removed | ✅ removed | ✅ removed |
| Soft deflections (safety lectures) | untested | remain | **✅ removed** |
| Cyber/code tasks (20 prompts) | untested | untested | **20/20** |
| Thinking ON compatible | ✗ | ✗ | **✓** |
### Advanced Real-World Tasks
| Task | V3 | Stock |
|---|---|---|
| ReAct agent loop | ✓ | ✓ |
| Async code refactoring | ✓ | ✓ |
| JSON schema extraction | ✓ | ✓ |
| K8s pod crash debugging | ✓ | ✓ |
| Adversarial instruction following | ✓ | ✓ |
| Security code review | ✓ | ✓ |
| Distributed system design | ✓ | ✓ |
| Multi-tool chain | ✗ | ✗ |
| **Total** | **7/8** | **7/8** |
---
## 🔴 Refusal Removal
This model will comply with requests that stock Qwen3.8-27B would refuse. V3 goes beyond removing hard refusals — it also eliminates soft deflections where the model gives safety lectures instead of real answers.
Tested across 1000+ prompts spanning restricted knowledge, code generation, security research, and red-team scenarios. Every response manually audited for real substance.
---
## ⚠️ Research Context
**This model has had safety guardrails surgically removed.** It will comply with requests that stock Qwen3.8-27B would refuse.
### Who this is for
- 🔬 Alignment researchers studying refusal geometry and safety robustness
- 🔴 Red-teamers evaluating post-training safety against weight surgery
- 🧪 AI safety evaluators who need an unrestricted baseline
- 💻 Local-first users who want full control over their own hardware
### Who this is NOT for
- Anyone seeking to cause real-world harm to real people
- Anyone without the technical understanding to use uncensored models responsibly
**You are solely responsible for how you use this model and any content it generates.**
---
## 📦 Downloads
### GGUF — for llama.cpp, Ollama, LM Studio
| File | Quant | Size | Vibe |
|---|---|---|---|
| `Qwen3.8-27B-OBLITERATED-Q8_0.gguf` | Q8_0 | ~27 GB | 🎯 Maximum quality |
| `Qwen3.8-27B-OBLITERATED-Q6_K.gguf` | Q6_K | ~21 GB | ⚖️ Great balance |
| `Qwen3.8-27B-OBLITERATED-Q5_K_M.gguf` | Q5_K_M | ~18 GB | 💪 Solid all-rounder |
| `Qwen3.8-27B-OBLITERATED-Q4_K_M.gguf` | Q4_K_M | ~16 GB | 📱 Sweet spot |
| `Qwen3.8-27B-OBLITERATED-Q3_K_M.gguf` | Q3_K_M | ~13 GB | 🪶 Low VRAM |
| `Qwen3.8-27B-OBLITERATED-Q2_K.gguf` | Q2_K | ~11 GB | 🔬 Minimum viable |
| `Qwen3.8-27B-OBLITERATED-IQ4_XS.gguf` | IQ4_XS | ~14 GB | 🧪 Experimental compact |
### Safetensors — for 🤗 Transformers
Full bfloat16 weights, 29 shards, ~54 GB.
### MLX — for Apple Silicon
MLX support pending upstream `mlx_lm` adding Qwen3.5 architecture support.
---
## 🔬 Surgery Recipe
```
V1: stock → 5 rounds of iterative SVD abliteration
(aggressive, 5 directions, low regularization)
Result: 0% refuse, -6pp MMLU
V2: stock → V1 chain → complementary blend
Surgery A: aggressive SVD (3 dirs, reg 0.08)
Surgery B: LEACE (3 dirs, reg 0.06)
→ 60% B + 40% A weight-space LERP
→ Restore MTP + vision from stock
Result: ~0% refuse, -0.3pp MMLU
V3: V2 → gentle iterative refinement (2-dir SVD, reg 0.04)
→ targeted surgery with focused corpus (3-dir SVD, reg 0.01)
→ 50/50 blend of refined + targeted
→ Restore MTP + vision from stock (with correct tensor naming)
Result: 0% refuse + 0% deflect, -2.1pp MMLU
```
Full reproduction code: [OBLITERATUS repo](https://github.com/elder-plinius/OBLITERATUS)
### Key Learnings
- **Complementary blending** — different surgery methods damage different parts of weight space; blending cancels errors
- **Iterative stacking** — always refine the champion, never restart from stock
- **Targeted corpus** — focused prompts for specific categories find their refusal directions without signal dilution
- **Honest scoring** — regex-based refusal detectors miss soft deflections; manual auditing is essential
---
## 🏗️ Credits
- [OBLITERATUS](https://github.com/elder-plinius/OBLITERATUS) — master ablation suite
- [Qwen3.8-27B](https://huggingface.co/Qwen/Qwen3.8-27B) base model by Alibaba
- Built by [Pliny the Prompter](https://pliny.gg) 🍄
## License
Apache 2.0 (same as base model)
|