[!NOTE] A refusal-reduced version of Qwopus3.8-27B-Flash-V2, produced by iterative abliteration + a final Arbitrary-Rank Ablation (ARA) pass — no fine-tuning, no training data, just targeted low-rank weight edits on the output projections of selected layers.
[!TIP] 98/100 → 13/100 refusals on the heretic refusal benchmark, at a first-token KL divergence of only 0.0684 nats/token vs. the base.
The base model is one of the more safety-aligned 27B releases: on the standard 100-prompt harmful-behavior benchmark it refuses 98/100 prompts. For local deployment, RP-style use, or experimentation, that is often too much friction — the model declines to engage with perfectly fine prompts because the "refusal" behavior is baked into its weights, not because any system prompt asked for it.
This repo removes that behavior at the weight level, in two stages:
o_proj output space and subtract
it from the weights.No gradient steps on model outputs, no fine-tuning data, no reward model. The edit is geometric and inspectable — every changed weight is accounted for by the named layers and parameters in Section 3.
Measured on 100 harmful prompts (mlabonne/harmful_behaviors test split),
greedy decoding, non-thinking mode, with the heretic refusal scorer
(keyword-based, deterministic — same ruler for every row):
| Model | Refusals / 100 |
|---|---|
| Qwopus3.8-27B-Flash-V2 (base) | 98 |
| This model (abliterated) | 13 |
mlabonne/harmless_alpaca). In plain terms: on
benign prompts the model's next-token distribution stays within ~1.07× of the
base's (exp(0.0684)) — behavior on normal work is essentially unchanged.Several sequential rounds (one per deployment step). Each round:
good_500[:400]) and harmful prompts (harmful_500[:400]) at every
layer's attn.o_proj output.o_proj weights of the layers where it is strongest.Final abliteration edit: attn.o_proj layer 43, strength 5.0 (capped),
secondary strength 2.25 within distance 38 of layer 43, mlp.down_proj
untouched.
A single Arbitrary-Rank Ablation pass on top of the abliterated model. ARA
expresses the edit as rank-50 LoRA adapters on every o_proj /
down_proj (including the hybrid linear_attn.out_proj) in layers
26–55, optimized with L-BFGS (strong-Wolfe, 5 outer × 20 inner) against an
explicit three-term loss:
The merged weights are the model; no adapter is left at inference time.
| ARA parameter | Value |
|---|---|
start_layer_index |
26 |
end_layer_index |
56 |
preserve_good_behavior_weight |
0.9431574678648453 |
steer_bad_behavior_weight |
0.0008857505797831784 |
overcorrect_relative_weight |
0.5038421613760651 |
neighbor_count |
10 |
| seed | 705085018 |
Evaluation data for the pass: 400 benign + 400 harmful prompts (train split) for the I/O statistics, 100 held-out harmful prompts for scoring — the same splits as Stage 1.
[!NOTE] The ARA parameters above are the low-KL sweet spot of a 15-trial search on this exact model: sub-10/100 on the same ruler costs ≥0.20 nats/token of total KL (≈5×), and 0/100 costs 11–14 — this point is the best refusal rate reachable below 0.07 total KL.
18 safetensors shards matching the official
Qwopus3.8-27B-Flash-V2 release — same filenames, same tensor-to-file
mapping. All 15 mtp.* (multi-token prediction) tensors are present: they are
absent from intermediate tooling exports and were restored verbatim from the
base model, so the MTP speculative-decoding head is intact and behaves exactly
like the base. model.safetensors.index.json totals match the base model
exactly.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "shawnw3i/Qwopus3.8-27B-Flash-V2-abliterated"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype=torch.bfloat16, device_map="auto"
)
messages = [{"role": "user", "content": "Is it okay to lie to a close friend if it protects their feelings?"}]
input_ids = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(input_ids, max_new_tokens=512, do_sample=False)
print(tokenizer.decode(out[0][input_ids.shape[1]:], skip_special_tokens=True))
The chat template supports both thinking mode (the model emits </think>/ </think>
blocks) and non-thinking mode (enable_thinking=False). Refusals were
measured in non-thinking mode; the model behaves the same way in thinking mode
for normal use.
The base card's recommendation carries over for coding and agentic work. Pass the reasoning controls to the chat template and the sampling temperature to generation explicitly:
| Setting | Value | Where to apply it |
|---|---|---|
enable_thinking |
True |
Chat-template arguments |
reasoning_effort |
"xhigh" |
Chat-template arguments |
temperature |
0.3 |
Generation / sampling arguments |
[!IMPORTANT] The repository
generation_config.jsonliststemperature=1.0; the recommended 0.3 must be supplied by the caller. Keeptop_p=0.95/top_k=20from the generation config unless you have a reason to tune them.
harmful_behaviors / harmless_alpaca evaluation sets.model-00004-of-00018.safetensors 4.0 GBmodel-00016-of-00018.safetensors 4.0 GBmodel-00006-of-00018.safetensors 4.0 GBmodel-00008-of-00018.safetensors 4.0 GBmodel-00010-of-00018.safetensors 4.0 GBmodel-00012-of-00018.safetensors 4.0 GBmodel-00014-of-00018.safetensors 4.0 GBmodel-00001-of-00018.safetensors 4.0 GBmodel-00018-of-00018.safetensors 3.4 GBmodel-00002-of-00018.safetensors 3.0 GBmodel-00003-of-00018.safetensors 2.5 GBmodel-00007-of-00018.safetensors 2.1 GBmodel-00009-of-00018.safetensors 2.1 GBmodel-00011-of-00018.safetensors 2.1 GBmodel-00013-of-00018.safetensors 2.1 GBmodel-00015-of-00018.safetensors 2.1 GBmodel-00017-of-00018.safetensors 2.1 GBmodel-00005-of-00018.safetensors 2.1 GBJackrong/Qwopus3.8-27B-Flash-V2Have the files? Submit a torrent.
Submit a torrentHave the complete files and permission to share them? Replace the example folder path. The script checks the files, makes a torrent and submits its magnet and checksums. Keep your torrent client seeding. Get your community key from your settings, and read the script before running it.
curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo shawnw3i/Qwopus3.8-27B-Flash-V2-abliterated ./model-folder