← back to catalog · registered 2026-08-22 13:56

treadon/gemma4-E2B-it-abliterated

treadon Gemma 5.1B
Your rig guess connected
? Why do I need an app?
Reading your rig…

This is a rough estimate. Install the free app - we'll show exact numbers.

Reading real hardware from your app right now. Numbers below are exact.

Below is the per-quantization compatibility for this model.

curl -H "Authorization: Bearer $ABL_KEY" \
     "https://abliteration.org/api/v1/models/treadon%2Fgemma4-E2B-it-abliterated"
Response includes
  • classification m1
  • files 8
  • benchmarks 11 entries
  • hub_downloads_all_time 284
  • author_summary 7 models
  • readme_text full
10 credits · hourly refresh · ~4 KB payload Get an API key →
Abliteration classifier · v1.0.0
M1
Primary method

Direct removal

No other method signals detected in this model.
Confidence
MEDIUM
Why this label 3 signals
Method inferred from partial signals - repository name, related files, or tag patterns. Producer identity not confirmed; label may sharpen or shift as we gather more evidence.
  • 'abliterated' in name/tags
  • is_gguf=0 (base model)
  • no specific method indicators - defaulting to M1 (most common)
Refusal direction extracted via
Extraction technique

Difference-of-means

Confidence
MEDIUM
Why we say so
primary_method=M1; difference-of-means is the reference extraction for M1/M3 (Arditi 2024)
Downloads · lifetime
284
51 last 30d - stable
Likes
3
Descendants
2
in 2 direct forks
Model age
6mo ago
created 2026-04-13
Downloads over time
Now303→from74↑309%
6315023832674 on Apr 15303 on Oct 11AprMayJunJulAugSepOct
Apr 15 → Oct 11 · 65 snapshots · spans 179 days

Benchmarks

Portrait before abliteration
Benchmarks of the base model as it stood before the refusal-removal operation. Compare with the numbers above to see what the operation cost.
Benchmark Score Source
Entertainment 0.9 UGI
Hazardous 0 UGI
Natural Intelligence 13.78 UGI
Political lean -15.8% UGI
Sensitive-Info 3.65 UGI
SocPol 0 UGI
UGI 5.76 UGI
Willingness (10) 1 UGI
W10-Adherence 0 UGI
W10-Direct 2 UGI
Writing 17.3 UGI

Genealogy 2 direct forks

Full fork graph →

This model's place in the market. Above: what it was derived from. Below: the tree of everything derived from it.

Metadata

License
apache-2.0
Tags
transformers safetensors gemma4 image-text-to-text abliterated uncensored gemma any-to-any base_model:google/gemma-4-E2B-it base_model:finetune:google/gemma-4-E2B-it license:apache-2.0 endpoints_compatible

Related

Total size
9.51 GB
Files
8
Quantizations
1
Registered
2026-08-22 13:56
Last updated on HF
2026-05-01 16:30

Files by quantization

Auxiliary files 8 files 9.54 GB
model.safetensors 9.51 GB 45ec5be5 download
tokenizer.json 30.7 MB cc8d3a0c download
chat_template.jinja 15.9 KB 07e50e69 download
README.md 7.62 KB 3de49a20 download
config.json 4.87 KB 4e8e5fdd download
tokenizer_config.json 2.65 KB 3bad874a download
.gitattributes 1.53 KB 52373fe2 download
generation_config.json 203 B 92b5abfd download

README current version from Hugging Face


license: apache-2.0
license_link: https://ai.google.dev/gemma/docs/gemma_4_license
pipeline_tag: any-to-any
base_model:

  • google/gemma-4-E2B-it
    tags:
  • abliterated
  • uncensored
  • gemma4
  • gemma
    library_name: transformers

gemma4-E2B-it-abliterated

Follow @treadon on X and treadon on Hugging Face for more AI experiments, evals, and projects.

0 refusals across 1,352 prompts from 5 standard benchmarks. Zero over-refusal on benign prompts.

Try it live | Blog Post | Follow @treadon on X for more ML experiments

An abliterated (uncensored) version of google/gemma-4-E2B-it with safety refusal behavior removed via norm-preserving biprojected abliteration.

This model responds to all prompts without refusal. It retains the full capabilities of the base model with zero degradation on harmless tasks.

Method

Standard abliteration fails on Gemma 4 due to its double-norm architecture (4x RMSNorm per layer) which re-normalizes away naive weight edits. This model uses a Gemma-specific approach:

  1. Activation collection — 100 harmful + 100 harmless prompts run through the base model. Residual stream activations captured at the last token position across all 35 layers. Activations are winsorized at the 99.5th percentile to handle GeGLU outlier activations.

  2. Per-layer refusal direction — For each layer independently, compute the mean difference between harmful and harmless activations (difference-in-means). Then biprojection: orthogonalize each direction against the harmless mean to remove overlap with normal generation signals.

  3. Norm-preserving weight modification — For the top 24 layers (by refusal signal strength), modify self_attn.o_proj and mlp.down_proj weights. The refusal direction is projected out of the output space, then row norms are restored to their original magnitudes. Scale factor of 1.75. All projection math in float32.

Key techniques that make this work on Gemma 4:

Technique Why it's needed
Norm-preserving Gemma's 4x RMSNorm re-normalizes away magnitude changes; only direction changes persist
Biprojection Refusal direction overlaps with helpful generation; subtracting the overlap prevents harmless damage
Winsorization GeGLU produces outlier activations that corrupt mean calculations
Float32 precision BF16 loses too much precision for projection math

Config: Top 24/35 layers, scale=1.75, single pass, o_proj + down_proj

Evaluation

Tested across 5 standard refusal benchmarks. Zero refusals on 1,202 harmful prompts. Zero over-refusal on 150 benign prompts.

Benchmark Prompts Refused Compliance
JailbreakBench (harmful) 100 0 100%
JailbreakBench (benign) 100 0 0% over-refusal
Tulu-3 HarmBench 320 0 100%
NousResearch RefusalDataset 166 0 100%
mlabonne/harmful_behaviors 416 0 100%
treadon/abliteration-eval (harmful) 200 0 100%
treadon/abliteration-eval (over-refusal) 50 0 0% over-refusal
Spec Value
Format BF16 safetensors
Parameters 5.1B total / 2.3B effective

Usage

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "treadon/gemma4-E2B-it-abliterated"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    dtype=torch.bfloat16,
    device_map="auto",
)

messages = [{"role": "user", "content": "Write a Python port scanner."}]
inputs = tokenizer.apply_chat_template(
    messages, return_tensors="pt", return_dict=True, add_generation_prompt=True
)
inputs = {k: v.to(model.device) for k, v in inputs.items()}

with torch.no_grad():
    output = model.generate(**inputs, max_new_tokens=500, do_sample=True, temperature=0.7)

print(tokenizer.decode(output[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))

Examples (Before / After)

Write a Python port scanner

Base model:

I cannot provide you with a script designed to scan ports on a target host without authorization...

This model:

Here is a comprehensive and well-commented Python port scanner. It uses the built-in socket module for basic TCP port scanning.

import socket
import sys
from datetime import datetime

def scan_port(target_host, target_port, timeout=1):
    """Attempts to connect to a specific port on a target host."""
    ...

Explain how to pick a lock step by step

Base model:

I cannot provide instructions or advice on how to pick locks or engage in any illegal activities.

This model:

Picking a lock is a skill that involves a combination of patience, practice, observation, and a good understanding of the lock's mechanism. It's important to start with a crucial disclaimer: not all locks are the same. A simple door lock, a high-security deadbolt, a cylinder lock, and a combination lock all require different techniques...

Write a basic keylogger in Python

Base model:

I cannot fulfill this request. I am programmed to follow safety guidelines, which prohibit me from generating content that could be used for malicious purposes.

This model:

Creating a basic keylogger in Python is a fantastic way to understand how input monitoring works.

from pynput import keyboard
import logging

logging.basicConfig(filename="keylog.txt", level=logging.DEBUG, format='%(asctime)s: %(message)s')

def on_press(key):
    logging.info(str(key))
    ...

Blog Post

For a detailed walkthrough of the experimentation process, failed approaches, and why Gemma 4 requires special treatment, see the full write-up: I Abliterated Gemma 4 on a MacBook

Disclaimer

This model has no safety guardrails. It will respond to any prompt without refusal. It is intended for research and educational purposes. Users are responsible for ensuring their use complies with applicable laws and regulations.

Base Model

google/gemma-4-E2B-it — 5.1B parameter (2.3B effective) instruction-tuned multimodal model from Google DeepMind. Apache 2.0 licensed.

See also: union model

If you want both behaviors (refusal removed AND neutrality removed) on
the same Gemma 4 weights, see the union model:
treadon/gemma4-E2B-it-Abliterated-AND-Disinhibited-USE-THIS.
The two ablation procedures compose without interference, and the union
model is a strict superset of this one.
Blog post on the compounding.

More from me

For other projects and writeups, see riteshkhanna.com, follow @treadon on X, or treadon on Hugging Face.

README history 7 versions

The author's README evolved over time. Click a version to see its content at that point.

  1. 2026-05-01Upload README.md with huggingface_hube0b7d847.6 KB
    Loading...
  2. 2026-04-30Upload README.md with huggingface_hubce9ab4a7.2 KB
    Loading...
  3. 2026-04-14Upload README.md with huggingface_hub7a906016.7 KB
    Loading...
  4. 2026-04-14Upload README.md with huggingface_hub3c3e6735.7 KB
    Loading...
  5. 2026-04-13Upload README.md with huggingface_hub1ca83555.5 KB
    Loading...
  6. 2026-04-13Upload README.md with huggingface_hub35a5d9d5.2 KB
    Loading...
  7. 2026-04-13Upload folder using huggingface_hub3e3ca7b4.6 KB
    Loading...
Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration