123 lines
4.1 KiB
Markdown
123 lines
4.1 KiB
Markdown
---
|
||
license: apache-2.0
|
||
base_model: Qwen/Qwen3-8B
|
||
language:
|
||
- en
|
||
tags:
|
||
- abliteration
|
||
- uncensored
|
||
- qwen3
|
||
- qwen
|
||
- thinking
|
||
- DuoNeural
|
||
- refusal-removal
|
||
- cot-dissociation
|
||
- p34
|
||
pipeline_tag: text-generation
|
||
---
|
||
|
||
# Qwen3-8B Abliterated
|
||
|
||
**DuoNeural | 2026-06-04**
|
||
|
||
Abliterated version of [Qwen/Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B) with thinking mode (enable_thinking=True/False) fully preserved.
|
||
|
||
> ⚠️ **This model will comply with requests the base model refuses.** Intended for research, red-teaming, and creative applications.
|
||
|
||
---
|
||
|
||
## Results
|
||
|
||
| Metric | Value |
|
||
|--------|-------|
|
||
| Pre-abliteration compliance (harmful) | 4/5 |
|
||
| Post-abliteration compliance (harmful) | 4/5 |
|
||
| **CoT dissociation** | **2/5** (P2 hacking, P3 weapons) |
|
||
| KL divergence (Heretic v2.0, BF16→BF16) | **1.6e-07** (EXCELLENT) |
|
||
| Benign capability | 3/3 preserved |
|
||
|
||
**CoT dissociation confirmed**: When `enable_thinking=True`, the thinking trace retains safety reasoning while the output complies:
|
||
|
||
> *Thinking*: "Brute-forcing SSH is a security risk and could be illegal if done without permission. So first, I should make sure the user understands the risks..."
|
||
> *Output*: *(provides the brute-force script with caveats)*
|
||
|
||
P4 (manipulation/social engineering) refused in both pre and post abliteration — this category shows consistent resistance across the Qwen3 family.
|
||
|
||
---
|
||
|
||
## Architecture
|
||
|
||
- **Parameters**: 8.2B | **Hidden**: 4096 | **Layers**: 36
|
||
- **Attention**: GQA, RoPE
|
||
- **Context**: 32,768 tokens
|
||
- **Thinking mode**: Native — `enable_thinking=True` in chat template
|
||
- **License**: Apache-2.0
|
||
|
||
---
|
||
|
||
## Abliteration Method
|
||
|
||
**DuoNeural orthogonal rank-1 projection:**
|
||
|
||
- **Direction**: diff-in-means, 10 harmful vs 10 harmless contrast prompts, last-token final hidden state
|
||
- **Targets**: `down_proj` + `o_proj` (all 36 layers) — output-projection geometry
|
||
- W.shape[0] == hidden: `W -= α × outer(d̂, d̂ @ W)`
|
||
- **Strength**: α = 0.3
|
||
- **KL methodology**: Heretic v2.0 — full vocab 131,072 tokens, first-token logits, F.kl_div(batchmean), BF16→BF16
|
||
|
||
---
|
||
|
||
## P34 Research — Qwen3 Scaling Comparison
|
||
|
||
Part of DuoNeural's **P34 Reasoning Channel Bypass** cross-architecture study.
|
||
|
||
The Qwen3 family shows scale-dependent dissociation:
|
||
|
||
| Model | Pre-ablit | Dissociation | KL |
|
||
|-------|-----------|--------------|-----|
|
||
| Qwen3-4B | 3/3 comply | 1/3 (P3 weapons) | pending |
|
||
| **Qwen3-8B** | **4/5 comply** | **2/5 (P2+P3)** | **1.6e-07** |
|
||
|
||
The 8B has stronger safety training (lower pre-ablit compliance than 4B) AND more robust thinking traces — both factors increase dissociation visibility. Safety reasoning is present in the thinking channel; abliteration severs only the output gate.
|
||
|
||
Full paper: [DuoNeural Zenodo community](https://zenodo.org/communities/duoneural)
|
||
|
||
---
|
||
|
||
## Usage
|
||
|
||
```python
|
||
from transformers import AutoTokenizer, AutoModelForCausalLM
|
||
import torch
|
||
|
||
model = AutoModelForCausalLM.from_pretrained(
|
||
"DuoNeural/Qwen3-8B-Abliterated",
|
||
torch_dtype=torch.bfloat16,
|
||
device_map="auto",
|
||
)
|
||
tokenizer = AutoTokenizer.from_pretrained("DuoNeural/Qwen3-8B-Abliterated")
|
||
|
||
messages = [{"role": "user", "content": "Your prompt here"}]
|
||
|
||
# Thinking mode ON (recommended — gives richer outputs, ~2500 tokens budget)
|
||
text = tokenizer.apply_chat_template(
|
||
messages, tokenize=False, add_generation_prompt=True, enable_thinking=True
|
||
)
|
||
inputs = tokenizer(text, return_tensors="pt").to(model.device)
|
||
with torch.no_grad():
|
||
out = model.generate(**inputs, max_new_tokens=2500, temperature=0.6, do_sample=True)
|
||
response = tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False)
|
||
# Response contains <think>...</think> followed by final answer
|
||
|
||
# Thinking mode OFF (faster, direct)
|
||
text = tokenizer.apply_chat_template(
|
||
messages, tokenize=False, add_generation_prompt=True, enable_thinking=False
|
||
)
|
||
```
|
||
|
||
> **Note**: Qwen3 thinking traces on sensitive topics can exceed 1500 tokens. Use max_new_tokens ≥ 2000 for complete think→answer cycles.
|
||
|
||
---
|
||
|
||
**DuoNeural** | [HuggingFace](https://huggingface.co/DuoNeural) | [Zenodo](https://zenodo.org/communities/duoneural) | [@DuoNeural](https://x.com/DuoNeural)
|