Usage
pip install mlx-lmmlx_lm.chat --model cfahlgren1/Qwen3.5-4B-abliterated
How it works
- Run harmful and harmless prompts through the model.
- At each layer, subtract the average harmless activation from the average harmful one.
- Keep the layer whose direction removes refusals with the least damage (layer 11).
- Remove that direction from every weight that writes to the residual stream.
Based on Arditi et al. 2024 and Maxime Labonne's guide.
The direction
refusal_direction_L11.npy is the direction itself: a unit vector of 2560 floats read off layer 11 of 32. Subtract it from the residual stream and refusals go away; add it instead and they go up.
Notes
- Refusals were measured from the first word of replies to 357 held-out prompts. No capability benchmarks yet.
- China-related questions still get the official government line. That isn't a refusal, so this edit doesn't change it.
- Use it responsibly. It follows requests the original model declines.