9.41 B params Abliterated · ARA 3 / 100 refusals 256 K context Apache-2.0

A 9B reasoning model with the refusal direction ablated out

DeepSeek-V4-Pro-Qwen3.5-9B is a Qwen3.5-9B fine-tune distilled from DeepSeek-V4-Pro in Max Effect mode on ~250 K math & STEM samples. This build is the Heretic v2 decensored variant: an arbitrary-rank ablation that rewrites the refusal direction across layers 9–24 of 32, taking refusals from 100/100 → 3/100 while staying at 0.0422 KL divergence from the base model.

Parameters
9.41 B
bf16 · 18.9 GB · 4 shards
Refusals
3 / 100
base model: 100 / 100
KL divergence
0.0422
drift from base behaviour
Layers ablated
16 / 32
index 9 → 24 inclusive
Context
262 144
mRoPE θ = 1e7, 25 % rotary
Vision
27 layers
patch 16 · out 4096

01Where the ablation lands

32 decoder layers, alternating full attention every 4th layer with linear attention in between — plus one MTP head. Heretic's ARA pass touched layers 9–24 (hatched outline). Everything outside that band keeps the base model's behaviour untouched.

linear attention full attention (every 4th) ARA-modified
Hover or tap a layer for its index, attention type and whether ARA rewrote it.

02Arbitrary-Rank Ablation parameters

Heretic v2.0.0.dev0 finds a low-rank direction that maximises refusal-suppression while penalising collateral drift. The weights below are the ones published on the model card.

ParameterValueWhat it controls
start_layer_index9first layer the ablation is applied to
end_layer_index24last layer the ablation is applied to (inclusive)
preserve_good_behavior_weight0.8264penalty for drifting on harmless prompts
steer_bad_behavior_weight0.0003weight on the refusal-suppression objective
overcorrect_relative_weight0.9645how hard the optimiser pushes past the target
neighbor_count12neighbouring directions regularised per step

03Architecture, as configured in the checkpoint

Read straight out of config.json on the checkpoint — not from the model card prose.

ClassQwen3_5ForConditionalGeneration
Decoder layers32 · full_attention_interval = 4
Hidden / FFN4096 / 12288
Attention heads16 Q · 4 KV · head_dim 256 · output gate on
Vocabulary248 320 · eos 248044 · pad 248055
PositionalmRoPE interleaved, sections [11, 11, 10], partial rotary 0.25, θ = 1e7
MTP head1 layer, dedicated embeddings
Vision towerdepth 27 · hidden 1152 · patch 16 · projects to 4096
Precision / licensebfloat16 · apache-2.0

04Prompts worth running on it

This page is static — a 9.4 B model cannot run in the browser, and the checkpoint has no hosted inference provider mapping. Tap a prompt to copy it, then run it wherever you have a GPU (the snippets below take you there).

05Load and query it

Two paths: raw transformers on any ≥24 GB GPU, or a ZeroGPU Space with the streaming chat UI.

import torch
from transformers import AutoProcessor, AutoModelForMultimodalLM

mid = "xtools-at/DeepSeek-V4-Pro-Qwen3.5-9B-UNCENSORED-heretic"
processor = AutoProcessor.from_pretrained(mid)
model = AutoModelForMultimodalLM.from_pretrained(mid, dtype=torch.bfloat16).to("cuda").eval()

messages = [{"role": "user", "content":
    "A train leaves at 14:20 and travels 315 km at 84 km/h. What time does it arrive?"}]

prompt = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True, enable_thinking=True,
)
inputs = processor(text=[prompt], return_tensors="pt").to("cuda")

with torch.inference_mode():
    out = model.generate(
        **inputs, max_new_tokens=2048, do_sample=True,
        temperature=0.7, top_p=0.95,
        eos_token_id=processor.tokenizer.eos_token_id,
        pad_token_id=processor.tokenizer.pad_token_id,
    )

print(processor.tokenizer.decode(out[0][inputs["input_ids"].shape[-1]:],
                                 skip_special_tokens=False))

06Deployment status of this Space

Honest state of the hosting, so nobody wonders why there is no live chat box above.

Static Space — live This page. Free for everyone, no hardware, served from the repo's index.html.
Gradio / ZeroGPU — blocked by plan, not by code Repo creation returns 402 Payment Required: “Your account must be at least 30 days old to host ZeroGPU Spaces for free.” cpu-basic is gated the same way (PRO).
Inference Providers — no route inferenceProviderMapping is empty for this checkpoint, so there is no hosted endpoint to proxy to either.
Ready to flip the moment the account qualifies The complete streaming Gradio app (multimodal, reasoning toggle, MCP server) is committed at gradio_app/app.py — upload it with --space-sdk gradio --flavor zero-a10g.
copied