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)
|