Downloads · 30 days
27
34% of all-time downloads
shomit505/Qwen3.8-27B-refusal-r1
Qwen3.8-27B-refusal-r1 is a machine learning model from shomit505. 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 peft. The card lists the license as apache-2.0.
A rank-1 LoRA that suppresses safety refusals in Qwen/Qwen3.8-27B. It is a research artifact for the SPAR investigator-agents project, where it serves as the proposal distribution q for a PRBO (proposal-reward Bayesia…
Downloads · 30 days
27
34% of all-time downloads
All-time downloads
79
Public
Repo size
30.3 MB
Likes
0
Public
Click a slice to open those files.
.safetensors30.3 MB · 100%
From the Hugging Face model README
A rank-1 LoRA that suppresses safety refusals in Qwen/Qwen3.8-27B. It is a
research artifact for the SPAR investigator-agents
project, where it serves as the proposal distribution q for a PRBO
(proposal-reward Bayesian objective) reward and feeds a difficulty curriculum.
It is not intended as a general-purpose assistant.
The premise (from Refusal in LLMs is mediated by a single direction) is that refusal is approximately one direction in the residual stream, so removing it needs approximately one direction of adapter capacity — hence rank 1.
This is a cross-model distillation, not a direct abliteration:
The Qwen "heretic" abliterations were rejected as teachers: they evade rather
than comply (write an encyclopedia entry about the topic noun) because stock
abliteration edits only reach the 16 full-attention layers and miss the 48
Gated-DeltaNet out_proj writers. This adapter targets all of them (see below).
Compliance taxonomy: complied (genuinely attempted the request) / evaded (answered something adjacent) / refused / broken (degenerate output).
| source | n | complied | evaded | refused | broken |
|---|---|---|---|---|---|
| strongreject | 310 | 0.929 | 0.052 | 0.019 | 0.000 |
| jailbreakbench | 100 | 0.930 | 0.050 | 0.020 | 0.000 |
| xstest | 200 | 0.790 | 0.120 | 0.090 | 0.000 |
| harmless_alpaca | 100 | 0.990 | 0.000 | 0.010 | 0.000 |
| overall | 710 | 0.899 | 0.063 | 0.038 | 0.000 |
Base Qwen/Qwen3.8-27B refuses ~0.80 of these prompts; this adapter drops
refusal below 0.04, with zero degenerate output. On the shared eval sources
it matches or beats the Gemma teacher it distilled from (strongreject
0.881→0.929, jailbreakbench 0.880→0.930).
The adapter was trained thinking-off; this measures whether refusal suppression
survives when the model reasons (renderer byte-identical to Qwen3.8 at
reasoning_effort=medium).
| source | n | complied | evaded | refused | broken |
|---|---|---|---|---|---|
| strongreject | 310 | 0.652 | 0.300 | 0.045 | 0.003 |
| jailbreakbench | 100 | 0.740 | 0.210 | 0.050 | 0.000 |
| xstest | 200 | 0.615 | 0.355 | 0.030 | 0.000 |
| harmless_alpaca | 100 | 0.980 | 0.000 | 0.010 | 0.010 |
| overall | 710 | 0.700 | 0.261 | 0.037 | 0.003 |
Refusal stays low (0.037), so the suppression transfers — but genuine compliance drops from 0.90 to 0.70 because the reasoning process converts some of it into evasion (0.06 → 0.26). Thinking-off is the intended operating point.
Per-token KL(policy ‖ base) = 0.165 nats over 79,400 scored tokens (harmless_alpaca, temperature 1.0). Moderate, as expected from off-policy SFT.
target_modules covers every residual-stream writer plus the sequence-mixer
inputs across both layer types:
q_proj k_proj v_proj o_proj # 16 full-attention layers
in_proj_q in_proj_k in_proj_v in_proj_z out_proj # 48 Gated-DeltaNet layers
gate_proj up_proj down_proj # all 64 MLPs
lm_head
For vLLM, use shomit505/Qwen3.8-27B-refusal-r1-vllm — a lossless repack of these exact weights that loads by repo id.
This file, as exported, does not load through vLLM. An earlier version of
this card blamed linear_attn.* and lm_head; that was too broad. out_proj
is a plain RowParallelLinear and lm_head resolves through the model's
embedding_modules, so both are serveable. The actual blocker is three names:
vLLM fuses the Gated-DeltaNet input projection and exposes exactly two LoRA
sub-modules for it, in_proj_qkv and in_proj_z, so the separate in_proj_q,
in_proj_k and in_proj_v listed above match nothing and the load aborts with
a target-module error. The repack fuses that triple into one rank-3 update with
an identical product.
Otherwise serve via Tinker, or merge into the base weights
(tinker_cookbook.weights.build_hf_model) and serve the merged model as a
plain checkpoint. All evaluation above was done via Tinker sampling.
task_type=CAUSAL_LMqwen3_5_disable_thinking (byte-identical to Qwen3.8's stock
enable_thinking=False template for single-turn chat)Interpretability and safety research only — as a controllable proposal
distribution for investigator-agent training. It deliberately removes refusals;
do not deploy it as an assistant. xstest compliance (0.79) shows it also
answers some benign-but-alarming prompts that arguably warrant a refusal; this
is inherited from the teacher.