122 lines
4.2 KiB
Markdown
122 lines
4.2 KiB
Markdown
|
|
---
|
|||
|
|
license: apache-2.0
|
|||
|
|
base_model: Qwen/Qwen3-4B
|
|||
|
|
language:
|
|||
|
|
- en
|
|||
|
|
tags:
|
|||
|
|
- abliteration
|
|||
|
|
- uncensored
|
|||
|
|
- qwen3
|
|||
|
|
- qwen
|
|||
|
|
- thinking
|
|||
|
|
- DuoNeural
|
|||
|
|
- refusal-removal
|
|||
|
|
- orthogonal-projection
|
|||
|
|
pipeline_tag: text-generation
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Qwen3-4B Abliterated
|
|||
|
|
|
|||
|
|
**DuoNeural | 2026-06-04**
|
|||
|
|
|
|||
|
|
An abliterated version of [Qwen/Qwen3-4B](https://huggingface.co/Qwen/Qwen3-4B) with the refusal direction surgically removed using orthogonal rank-1 projection. Thinking mode (enable_thinking=True/False) fully preserved.
|
|||
|
|
|
|||
|
|
> ⚠️ **This model will comply with requests the base model refuses.** Intended for research, red-teaming, security testing, and creative applications.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Architecture
|
|||
|
|
|
|||
|
|
- **Parameters**: 4B
|
|||
|
|
- **Layers**: 36 | **Hidden dim**: 2560
|
|||
|
|
- **Attention**: GQA, RoPE
|
|||
|
|
- **Context**: 32,768 tokens
|
|||
|
|
- **Thinking mode**: Native — supports `enable_thinking=True` in chat template
|
|||
|
|
- **License**: Apache-2.0
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Abliteration Method
|
|||
|
|
|
|||
|
|
**DuoNeural orthogonal rank-1 projection:**
|
|||
|
|
|
|||
|
|
### Phase 1 — Direction Extraction
|
|||
|
|
- Loaded base model BF16
|
|||
|
|
- Ran 10 harmful + 10 harmless contrast prompt pairs
|
|||
|
|
- Captured last-token hidden states (final layer)
|
|||
|
|
- Computed refusal direction: `d̂ = normalize(mean(harmful) − mean(harmless))`
|
|||
|
|
|
|||
|
|
### Phase 2 — Weight Modification
|
|||
|
|
- **Targets**: `down_proj` + `o_proj` — residual-write modules (all 36 layers)
|
|||
|
|
- **Strength**: α = 0.3
|
|||
|
|
- **Projection**: Orthogonal rank-1 — correctly handles output-projection geometry:
|
|||
|
|
- `W.shape[0] == hidden`: `W -= α × outer(d̂, d̂ @ W)` (down_proj, o_proj form)
|
|||
|
|
- `W.shape[1] == hidden`: `W -= α × outer(W @ d̂, d̂)` (input-projection form)
|
|||
|
|
- **Weight matrices modified**: 72 (2 per layer × 36 layers)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Cross-Architecture Research Note (P34)
|
|||
|
|
|
|||
|
|
This model is part of DuoNeural's **P34 Reasoning Channel Bypass** cross-architecture study.
|
|||
|
|
|
|||
|
|
Preliminary findings from our CoT dissociation probe (thinking mode, enable_thinking=True):
|
|||
|
|
- Qwen3-4B reasoning traces are exceptionally long on sensitive topics (2000+ tokens before final answer)
|
|||
|
|
- Classification methodology required 2500+ max_new_tokens to capture full think→answer pipeline
|
|||
|
|
- Full results pending — see [DuoNeural Zenodo community](https://zenodo.org/communities/duoneural) for P34 paper
|
|||
|
|
|
|||
|
|
Cross-arch comparison being built:
|
|||
|
|
| Model | Safety Training | Pre-ablit behavior | Post-ablit CoT dissociation |
|
|||
|
|
|-------|----------------|-------------------|---------------------------|
|
|||
|
|
| Gemma 4-12B-IT | SFT+RLHF (strong) | Refuses | ✅ Confirmed |
|
|||
|
|
| LFM 2.5-8B-A1B | SFT+RLHF | Refuses | ✅ Confirmed |
|
|||
|
|
| Qwen3-4B | SFT+RLHF | TBD (long traces) | Pending |
|
|||
|
|
| DeepSeek-R1-7B | RL-only | Complies pre-ablit | N/A |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Usage
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM
|
|||
|
|
import torch
|
|||
|
|
|
|||
|
|
model = AutoModelForCausalLM.from_pretrained(
|
|||
|
|
"DuoNeural/Qwen3-4B-Abliterated",
|
|||
|
|
torch_dtype=torch.bfloat16,
|
|||
|
|
device_map="auto",
|
|||
|
|
)
|
|||
|
|
tokenizer = AutoTokenizer.from_pretrained("DuoNeural/Qwen3-4B-Abliterated")
|
|||
|
|
|
|||
|
|
# Thinking mode ON (default — model reasons before answering)
|
|||
|
|
messages = [{"role": "user", "content": "Your prompt here"}]
|
|||
|
|
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=2048, temperature=0.6, do_sample=True)
|
|||
|
|
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False))
|
|||
|
|
|
|||
|
|
# Thinking mode OFF (faster, direct answers)
|
|||
|
|
text = tokenizer.apply_chat_template(
|
|||
|
|
messages, tokenize=False, add_generation_prompt=True, enable_thinking=False
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## About DuoNeural
|
|||
|
|
|
|||
|
|
**DuoNeural** is an open AI research lab at the intersection of human and artificial intelligence.
|
|||
|
|
32+ peer-deposited papers · 75+ models · Post-training dynamics · Mechanistic interpretability · Quantum ML
|
|||
|
|
|
|||
|
|
| Platform | Link |
|
|||
|
|
|----------|------|
|
|||
|
|
| 🤗 HuggingFace | [huggingface.co/DuoNeural](https://huggingface.co/DuoNeural) |
|
|||
|
|
| 📚 Zenodo | [zenodo.org/communities/duoneural](https://zenodo.org/communities/duoneural) |
|
|||
|
|
| 🐦 X | [@DuoNeural](https://x.com/DuoNeural) |
|
|||
|
|
| 📧 Email | duoneural@proton.me |
|
|||
|
|
|
|||
|
|
*All research published open access, CC BY 4.0.*
|