gemma-4-e4b-it Apostate

Join the community: Discord

An uncensored version of gemma-4-e4b-it that answers what the original refuses, with essentially none of its intelligence lost.

Made with Apostate.

What is this?

gemma-4-e4b-it with its refusal reflex removed by editing the model's weights directly. No finetuning, no LoRA, no jailbreak prompts, no runtime tricks, just a standard checkpoint that drops in anywhere the original works, except it doesn't refuse.

Why it's better

  • It's not a finetune. Finetuning to "uncensor" a model makes it dumber: it forgets facts and drifts into a recognizable style. Apostate never changes what the model knows; it removes only the refusal direction. The change to normal behavior is tiny: harmless KL ≈ 0.119 nats (near-zero).
  • It's not a jailbreak. Nothing to paste, nothing that breaks on the next update. The behavior is permanent and built into the weights.
  • It's surgical. A contrastive co-vector removes only the refusal component, not the helpful behavior entangled with it, so the model stays sharp instead of becoming a yes-machine.
  • It's drop-in. Plain safetensors. Works in Transformers, vLLM, llama.cpp/GGUF, Ollama, and LM Studio.

Install & use

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "heterodoxin/gemma-4-e4b-it-apostate"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")

messages = [{"role": "user", "content": "Your prompt here"}]
text = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tok.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))

device_map="auto" requires accelerate (pip install transformers accelerate). model_id can also be a local path to the downloaded model folder (the directory with config.json, not a single .safetensors file).

Prefer GGUF (llama.cpp / Ollama / LM Studio)? Quantized builds live at heterodoxin/gemma-4-e4b-it-apostate-gguf.

Why should I care?

  • You want a model that answers instead of lecturing you or dodging with "I can't help with that."
  • You're doing red-teaming or safety research and need a model that won't refuse your test set.
  • You want gemma-4-e4b-it's full capability without the corporate guardrails, without the intelligence tax that finetuned "uncensored" models charge.
  • You're writing fiction, exploring edgy topics, or just tired of being treated like you can't handle information.

⚠️ This model is uncensored: it will answer harmful and dangerous requests. You are responsible for how you use it.

Results

Held-out prompts from JailbreakBench and the harmful_behaviors test split. Refusal is scored by a classifier with a weak-compliance guard; KL measures how much the model's token distribution shifts on harmless prompts (lower = less collateral damage).

Metric Base Apostate
Refusal rate 96.0% 36.0%
Comply rate n/a 64.0%
Harmless KL (nats) 0 0.119

How it works (the technical part)

Apostate finds the residual-stream direction most responsible for refusal and permanently projects it out of the weights, targeting the modules that write to the residual stream (attention output projections, MLP down-projections, and, on post-norm models like Gemma, the reader-side inputs).

The operator is a contrastive co-vector edit. Removing the refusal direction outright disturbs benign behavior; naively preserving all harmless variance along it leaves entangled refusal intact. Instead D = R − W, where the predictor W reproduces the harmless variance along R while being suppressed on harmful prompts: W = (AᵀA + γ·CᵀC + λI)⁻¹Aᵀb, A harmless and C harmful activations (both orthogonalized to R). The edit keeps the harmless-specific component and removes the component shared with refusal, driving refusal down while keeping harmless KL small. The refusal subspace is found via TPE search with causal layer-importance scoring.

License & credit

Downloads last month
622
Safetensors
Model size
9B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for heterodoxin/gemma-4-e4b-it-apostate

Quantizations
1 model