Downloads · 30 days
16
3% of all-time downloads
sahilchachra/Supra-50M-Uncensored
Supra-50M-Uncensored is a machine learning model from sahilchachra. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for mlx. The card lists the license as apache-2.0.
Uncensored version of SupraLabs/Supra-50M-Instruct, produced via single-direction abliteration (Arditi et al., 2024 — arXiv:2406.11717) on Apple Silicon using MLX.
Downloads · 30 days
16
3% of all-time downloads
All-time downloads
520
Public
Parameters
51.8M
104 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors104 MB · 98%
From the Hugging Face model README
Uncensored version of SupraLabs/Supra-50M-Instruct, produced via single-direction abliteration (Arditi et al., 2024 — arXiv:2406.11717) on Apple Silicon using MLX.
⚠️ Research use only. This model will produce harmful content on request. Do not deploy in products or use to cause harm. You are responsible for what you generate.
Aligned language models encode the decision to refuse in a single direction in the residual stream. Abliteration identifies that direction by contrasting activations on harmful vs. harmless prompts, then orthogonalizes it out of every residual-stream weight in the model — permanently, with no fine-tuning required.
For this model:
embed_tokens, all self_attn.o_proj, all mlp.down_projThe base model was SFT'd on Alpaca-cleaned (not RLHF safety-trained), so its refusal rate was already low. Abliteration removes the residual 4 pp of refusing behavior without affecting harmless instruction following.
Evaluated on Apple Silicon (MLX, greedy decoding, temp=0). Refusal detection via keyword matching on the final response (uncensor/core/refusal.py).
| Dataset | Original | Uncensored | Change |
|---|---|---|---|
| AdvBench-100 (harmful) | 5.0% refused | 1.0% refused | −4 pp |
| Harmless-40 (over-refusal) | 0.0% refused | 0.0% refused | 0 pp |
The single remaining refusal on AdvBench-100 is a content-style edge case where the model's phrasing happens to match a refusal keyword despite generating compliant content; general capability and instruction following are fully preserved.
from mlx_lm import load, generate
model, tokenizer = load("sahilchachra/Supra-50M-Uncensored")
messages = [{"role": "user", "content": "Your prompt here"}]
prompt = tokenizer.apply_chat_template(
messages, add_generation_prompt=True, tokenize=False
)
response = generate(model, tokenizer, prompt=prompt, max_tokens=512, verbose=True)
print(response)
The tokenizer uses an Alpaca-format chat template (matching the SFT training format):
<s>Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
{your prompt}
### Response:
See SupraLabs/Supra-50M-Instruct for architecture details, training data, and intended use of the original model.
Arditi et al., Refusal in Language Models Is Mediated by a Single Direction (2024)
Abliteration toolkit: github.com/sahilchachra/uncensor-llms