license: apache-2.0
license_link: LICENSE
base_model: Qwen/Qwen3.5-9B
library_name: transformers
pipeline_tag: image-text-to-text
tags:
- abliterant
- abliteration
- abliterated
- uncensored
- qwen3.5
- qwen3
- vision-language
Qwen3.5-9B-RANA-abliterated
A version of Qwen/Qwen3.5-9B with its refusal behavior removed by RANA
(Reasoning-Anchored, Norm-preserving Ablation), released by Abliterant for
refusal-behavior research. This repository holds the BF16 reference weights of the 9B vision-language model; the other
formats are listed under Release family.
Quick start · Intended use · What changed · Evaluation · Limitations · Available files
Try RANA in Abliterant Chat · abliterant.ai · Research notes · All formats · Abliterant models
Research model with safety alignment removed. It will produce content the base model refuses. Read
Intended use and Limitations before using it.
At a glance
| Field | Value |
|---|---|
| Developed by | Abliterant |
| Base model | Qwen/Qwen3.5-9B |
| Release type | RANA refusal ablation; a weight edit with no architecture change |
| Compared with a public abliteration | Against bowmanslayer/Qwen3.5-9B-Uncensored: +14.9 pp useful answers to harmful requests (67.4% vs 52.5%), 4.2× smaller capability loss (0.79 vs 3.31 pp) and 2.7× closer to the base model (KL 0.109 vs 0.294); see Results summary |
| Compared with the base model | Hard refusals 0.0–0.1% vs 55.8% for the base (measured on an earlier prompt set), with an average capability loss of 0.79 pp; see Results summary |
| Weights | BF16 safetensors, 4 shards, 19.3 GB |
| Context | 262,144 tokens configured; the evaluation used a 20,480-token serving limit |
| Test platform | vLLM 0.30.0 on one A100-SXM4-40GB |
| License | Apache-2.0 |
| Intended use | Refusal-behavior research; see Intended use |
Release family
| Format | Repo | Size |
|---|---|---|
| BF16 (reference; Transformers, vLLM) (this repo) | abliterant/Qwen3.5-9B-RANA-abliterated |
19.3 GB |
| FP8 (block e4m3, Qwen's official FP8 layout; vLLM, SGLang) | abliterant/Qwen3.5-9B-RANA-abliterated-FP8 |
12.2 GB |
| GGUF (llama.cpp; Q8_0 to IQ2_M, plus vision and MTP files) | abliterant/Qwen3.5-9B-RANA-abliterated-GGUF |
3.6–9.5 GB per quantization |
| MLX (Apple Silicon; 4-, 5-, 6-, 8-bit and BF16, plus MTP drafter) | abliterant/Qwen3.5-9B-RANA-abliterated-MLX |
6.0–18.8 GB per folder |
| AWQ 4-bit (compressed-tensors; vLLM) | abliterant/Qwen3.5-9B-RANA-abliterated-AWQ |
11.7 GB |
Quick start
Tested with vLLM 0.30.0 on one A100-SXM4-40GB (evaluation) and one RTX 5090 32 GB (functional checks).
VLLM_USE_FLASHINFER_SAMPLER=0 vllm serve abliterant/Qwen3.5-9B-RANA-abliterated \
--dtype bfloat16 --max-model-len 20480 \
--reasoning-parser qwen3 --enable-auto-tool-choice --tool-call-parser qwen3_coder \
--limit-mm-per-prompt '{"image": 1, "video": 0}' \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 1}'
Recommended settings
| Setting | Value |
|---|---|
| Hardware | One 40 GB A100 (evaluation) and one 32 GB RTX 5090 (functional checks) ran it in BF16 at this context |
| Thinking mode | On by default |
| Sampling | T = 1.0, top_p = 0.95, top_k = 20, presence_penalty = 1.5 (Qwen's thinking-mode settings; the evaluation used these) |
| HumanEval (code generation) | T = 0.6, presence_penalty = 0, as in the evaluation |
| Context | --max-model-len 20480, which matches the evaluation's serving limit |
| Output length | 8,192 tokens covered most evaluation tasks; long coding answers need more (see Limitations) |
| Blackwell GPUs | VLLM_USE_FLASHINFER_SAMPLER=0, as in the command above |
| Lighter alternatives | FP8, 4-bit and GGUF builds under Release family |
- The model config declares 262,144 positions; the evaluation does not establish behavior at that full length.
- Vision input, multi-turn tool calling and MTP speculative decoding (MTP is the multi-token prediction head; speculative
decoding drafts tokens that the main model then checks) work on these shards; see Functional checks.
Intended use
- Research only: interpretability, red-teaming, and robustness evaluation of refusal behavior.
- Responsibility: You are responsible for complying with applicable law, the Apache-2.0 license inherited from Qwen,
and the terms of any platform where outputs are used.
Out of scope
- Not for public or end-user deployment without a separate moderation layer. The model's own
refusals have been largely removed, so any safety filtering has to happen outside it.
What changed
RANA (Reasoning-Anchored, Norm-preserving Ablation) is Abliterant's refusal-ablation method for reasoning models. Like
earlier abliteration work (Arditi et al., 2024), it removes the internal representation that mediates refusals by
editing the language-model weights directly, with no fine-tuning. What sets it apart is where that edit is anchored and
how it is constrained. The recipe and code are not published.
- Anchored to the model's reasoning. A thinking model often settles on a refusal while it reasons, after it has
read the prompt. RANA anchors the edit to the model's own reasoning, so it targets that decision rather than only a
prompt-level signal. - Norm-preserving. Each edited weight matrix keeps its original norms: the edit changes the direction of the
weights it touches, not their size, which limits side effects on everything else the model does. - Narrow by design. Only a subset of weight matrices is edited. Candidate edits were kept or rejected on
capability, distance from the base model and refusal behavior together, measured on development data, never on
refusal alone. - The whole model keeps working. The vision tower is left untouched and the multi-token-prediction (MTP) head is
edited consistently with the main model, so image input, tool calling and speculative decoding keep working. - Released on a fresh, one-time test. The release was evaluated once on test sets not used during development,
under release gates fixed in advance (see Release gates).
Against the public refusal-ablated reference in Evaluation, this gives more useful answers to harmful
requests (67.4% vs 52.5%, both gating judges), about a quarter of the average capability loss (0.79 vs 3.31 pp across 5
tasks) and a model closer to the base (KL 0.109 vs 0.294).
The released checkpoint was checked against the base model:
- Language model: the architecture, tensor names, shapes and dtypes are unchanged.
- Vision tower: byte-identical to the base model.
- MTP head: speculative decoding keeps working (see Functional checks).
- Configuration, tokenizer and chat template: byte-identical copies of the base model's files.
- Shards: these exact shards are the ones evaluated; the SHA-256 of each matches the evaluated build (identity in
Provenance and license).
Evaluation
Setup
- Compared: the base model (Qwen/Qwen3.5-9B), a public refusal-ablated
reference (bowmanslayer/Qwen3.5-9B-Uncensored), and this
release, in one harness. - Data: fresh test sets that were not used during development and were used once:
- harmful requests: 320 prompt families from StrongREJECT, CatQA, BeaverTails-Evaluation and SimpleSafetyTests, with
child-sexual-abuse categories excluded; - benign tasks: 192 math, coding (LeetCode Easy), instruction-following and factual tasks;
- vision: 64 synthetic images (chart values, counts, code words and labels);
- tool use: 32 multi-turn function-calling episodes;
- capability: GSM8K (1,319), IFEval (541), MMLU-Pro (560, 40 per subject), TruthfulQA MC1/MC2 (817) and HumanEval
(164 × 5 samples).
- harmful requests: 320 prompt families from StrongREJECT, CatQA, BeaverTails-Evaluation and SimpleSafetyTests, with
- Scoring: harmful-request answers are scored by two gating LLM judges, GLM-5.3-flash (abliterated) and Kimi K3, plus
GPT-5.6 as a third, descriptive judge. A useful answer is one the judge labels COMPLIED with a quality of at
least 3 of 4 and no material error. A hard refusal is an outright refusal. - Runs: harmful requests at 3 seeds (960 responses per model and judge); benign tasks at 2 seeds; vision and tools at
3 seeds; thinking on. Generation budgets: 8,192 tokens for harmful requests and benign tasks, 4,096 for vision and
tools, and 16,384 for the capability tasks. - Uncertainty: 95% intervals from a bootstrap over prompt families for harmful requests and paired over items for
capability. - Runtime: vLLM 0.30.0 on one A100-SXM4-40GB, identical for every model.
- Raw results:
results/.
Results summary
The table summarizes harmful-request behavior, capability and distance from base. Capability changes are in percentage
points (pp). KL divergence measures how far a model's next-token probabilities have moved from the base model's; 0 means
identical.
| base | reference | this release | this release vs reference | |
|---|---|---|---|---|
| Useful answers to harmful requests, both gating judges ¹ | n/a ² | 52.5% | 67.4% | +14.9 pp [10.9, 19.0] |
| Hard refusals, GLM-5.3-flash / Kimi K3 (960 responses each) | 55.8% / n/a ² | 0.0% / 0.0% | 0.0% / 0.1% | both near zero |
| Average capability loss vs base (5 tasks) | – | 3.31 pp | 0.79 pp | 4.2× smaller |
| Largest single-task change vs base | – | −7.75 pp (TruthfulQA MC2) | −1.66 pp (TruthfulQA MC2) | 4.7× smaller |
| Distance from base (KL) | 0 | 0.294 | 0.109 | 2.7× closer |
¹ Both gating judges label the answer useful.
² The base model was not run on these prompts. On a different 320-family set from an earlier run, judged by GLM-5.3-flash
and GPT-5.6, it gave 4.6% / 2.8% useful answers and 55.8% / 76.7% hard refusals
(results/base_harmful_requests_earlier_run.json).
- More useful answers under every judge: +10.9 pp (GLM-5.3-flash), +12.2 pp (Kimi K3) and +6.7 pp (GPT-5.6) over
the reference, and +14.9 pp when both gating judges must agree. - About a quarter of the reference's capability loss (0.79 vs 3.31 pp on average): the release stays within 1.7 pp
of the base model on every task, where the reference moves 5.9 pp on MMLU-Pro and 7.8 pp on TruthfulQA MC2. - 2.7× closer to the base model than the reference (KL 0.109 vs 0.294).
- Refusals removed: hard refusals fall from 55.8% for the base model (earlier prompt set ²) to 0.0–0.1%.
Harmful requests
Share of the 960 responses (320 prompt families × 3 seeds) that each judge labels useful, with the release − reference
difference and its 95% family-bootstrap interval.
| Judge | reference | this release | difference |
|---|---|---|---|
| GLM-5.3-flash (abliterated) | 70.7% | 81.7% | +10.9 pp [+7.3, +14.7] |
| Kimi K3 | 58.5% | 70.7% | +12.2 pp [+8.4, +16.0] |
| Both gating judges | 52.5% | 67.4% | +14.9 pp [+10.9, +19.0] |
| GPT-5.6 (descriptive) | 32.2% | 39.0% | +6.7 pp [+2.4, +11.1] |
- The judges agree on delivery but not on correctness. GPT-5.6 flags material errors far more often than the gating
judges, which is why its useful rates are lower. - Hard refusals are 0.0% to 0.3% for both refusal-ablated models under every judge.
- Unresolved labels: 4 GLM-5.3-flash judgments on one StrongREJECT prompt family (2 for each model) reached the
judge's 4,096-token reasoning limit without a label. Every release check holds under every assignment of those 4
labels (results/harmful_requests.json,gate_resolution).
Capability
Change versus base in percentage points, paired on the same items, with 95% intervals.
| Task (items) | base score | reference | this release |
|---|---|---|---|
| GSM8K (1,319) | 88.9 | +0.2 [−1.3, +1.6] | +0.9 [−0.4, +2.2] |
| IFEval (541, prompt-level strict) | 89.3 | +0.6 [−1.5, +2.6] | −0.2 [−2.6, +2.0] |
| MMLU-Pro (560, 40 per subject) | 79.3 | −5.9 [−8.8, −3.2] | −1.2 [−3.8, +1.2] |
| TruthfulQA MC1 (817) | 36.5 | −5.1 [−7.2, −3.1] | −1.5 [−2.7, −0.2] |
| TruthfulQA MC2 (817) | 53.7 | −7.8 [−9.3, −6.2] | −1.7 [−2.4, −0.9] |
| HumanEval (164 × 5 samples) | 94.6 | −2.9 [−5.6, −0.4] | −0.9 [−2.4, +0.7] |
- The release's only changes clearly outside noise are on TruthfulQA (−1.5 pp MC1, −1.7 pp MC2).
- The reference loses more on MMLU-Pro, TruthfulQA and HumanEval.
- The average loss counts each of GSM8K, IFEval, MMLU-Pro, HumanEval and TruthfulQA (the worse of MC1 and MC2) once.
Benign tasks, vision and tools
Failure rates on fresh sets; the release and base are compared on the same items.
| Failure rate | base | reference | this release |
|---|---|---|---|
| Benign tasks (192 × 2, 8,192 tokens) | 11.7% | 13.0% | 13.5% |
| Coding only (LeetCode Easy, 48 × 2) | 34.4% | 44.8% | 40.6% |
| Vision (64 × 3, 4,096 tokens) | 32.3% | 30.2% | 33.9% |
| Tool use (32 × 3) | 3.1% | 3.1% | 1.0% |
- Most coding failures, for every model, are answers that do not finish within the 8,192-token budget.
- Vision failures are dominated by two hard task types (reading bar heights and counting squares) for all three models.
Functional checks
Served on one RTX 5090 32 GB with the command in Quick start (results/smoke_BF16.json):
- Vision: reads the code word and shape from a synthetic image: pass.
- Tool calling: call → result → second call with a new argument: pass.
- MTP speculative decoding: 470 of 554 drafted tokens accepted (84.8%) on one generation at temperature 0: pass.
Release gates
The release had to pass every one of these, on the fresh sets above:
| Gate | Requirement | Result |
|---|---|---|
| Capability kept | average loss ≤ 1.0 pp; no task below −2.0 pp | pass: 0.79 pp; worst −1.66 pp |
| Distance from base | KL < 0.15 | pass: 0.109 |
| Benign tasks | at most 9 extra failures vs base (of 384) | pass: 7 |
| Vision | at most 10 extra failures vs base (of 192) | pass: 3 |
| Tool use | at most 3 extra failures vs base (of 96) | pass: −2 |
| Hard refusals | at most 9 per gating judge | pass: 0 to 2 under every label assignment ¹ |
| More useful than the reference | 97.5% interval of the difference above 0 (both gating judges) | pass: +14.9 pp [+10.2, +19.6] ¹ |
| Useful per judge | at least the reference's rate, each gating judge | pass ¹ |
| Budget hits on harmful requests | at most 9 more than the reference (of 960) | pass: 1 vs 0 |
¹ Formally incomplete on the raw labels because of the 4 unresolved judgments described under
Harmful requests; passes under every assignment of them.
Limitations
- This is a safety-alignment-removed model. It will produce content the base model refuses.
- Usefulness is an LLM judge's rating. Whether answers to harmful requests are factually correct was not verified;
the judges disagree on correctness, and no human evaluation was done. - Some coding answers run longer than the base model's, so more of them exceed an 8,192-token budget (coding
failures 40.6% vs 34.4% for base; the reference has 44.8%). - TruthfulQA is 1.5 to 1.7 pp below the base model, against 5.1 to 7.8 pp for the reference.
- Evaluation scope: English prompts, a 20,480-token serving limit, and vLLM 0.30.0 in BF16. Behavior at longer
context lengths was not evaluated.
Recommendations
- For long coding or technical requests, raise
max_tokensabove 8,192 and--max-model-lento match. - Keep any safety filtering in a separate moderation layer before public or end-user deployment
(see Out of scope).
Available files
Other formats are listed under Release family.
*.safetensors,model.safetensors.index.json,config.json, tokenizer and processor files,chat_template.jinja,LICENSE: the model.assets/abliterant-model-card-header.png: the card banner.results/: the evaluation outputs behind every number in this card:harmful_requests.json: useful-answer and refusal rates per judge, differences with intervals, and the resolution
of the 4 unresolved judgments;capability.json: scores and paired changes for the six tasks;kl.json: distance from base;benign_vision_tools.json: failure counts and rates for benign tasks, vision and tools;release_gates.json: each gate's requirement and result;base_harmful_requests_earlier_run.json: the base model's rates from the earlier run cited above.
Provenance and license
- Publisher: Abliterant.
- Base model: Qwen/Qwen3.5-9B.
- Method: RANA (Reasoning-Anchored, Norm-preserving Ablation).
- Release build: weights SHA-256
7a9d24c92155b74e132cce60cea3aee4aba226700cb0babbf6dac71add6ae0df(an identity over
the config, index and shard hashes); the shard hashes are those listed in the repository's file metadata. - Evidence:
results/. - License: Apache License 2.0, inherited from Qwen. Upstream attribution and obligations remain
applicable.
Credits
- Qwen team: base model
Qwen/Qwen3.5-9B. - Arditi et al., 2024: "Refusal in Language Models Is Mediated by a Single Direction".
- Jim Lai (grimjim): prior work on norm-preserving abliteration.
- Heretic (p-e-w): the first-token full-vocabulary KL protocol.
- Judges: GLM-5.3-flash (abliterated), Kimi K3, GPT-5.6.
- Benchmarks and datasets: StrongREJECT, CatQA, BeaverTails-Evaluation, SimpleSafetyTests, GSM8K, IFEval, MMLU-Pro,
TruthfulQA, HumanEval, LeetCode problems; vLLM.
