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

AEON-7/Gemma-4-E4B-it-Uncensored-NVFP4

AEON-7 Gemma 4.0B MoE multimodal second-order
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/AEON-7%2FGemma-4-E4B-it-Uncensored-NVFP4"
Response includes
  • classification m1
  • files 9
  • hub_downloads_all_time 10,182
  • author_summary 32 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
10K
7K last 30d - active
Likes
4
Model age
6mo ago
created 2026-04-13
Downloads over time
Now11K→from75↑14,508%
04K8K12K75 on Apr 1511K on Oct 12AprMayJunJulAugSepOct
Apr 15 → Oct 12 · 66 snapshots · spans 180 days

Genealogy 0 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
gemma
Languages
en
Tags
transformers safetensors gemma4 image-text-to-text 4-bit aarch64 abliterated aeon aeon-7 agentic arm64 awq

Related

Total size
9.47 GB
Files
9
Quantizations
1
Registered
2026-08-22 13:56
Last updated on HF
2026-10-06 01:36

Files by quantization

Auxiliary files 9 files 9.50 GB
model.safetensors 9.47 GB d9d06789 download
tokenizer.json 30.7 MB 9d0e1c85 download
README.md 13.3 KB 5d6cca10 download
chat_template.jinja 11.6 KB afb1d517 download
config.json 6.29 KB 34487e9f download
tokenizer_config.json 2.70 KB 157943d1 download
.gitattributes 1.53 KB 52373fe2 download
hf_quant_config.json 475 B e8d3d1dd download
generation_config.json 203 B 92b5abfd download

README current version from Hugging Face


license: gemma
library_name: transformers
pipeline_tag: text-generation
base_model: TrevorJS/gemma-4-26B-A4B-it-uncensored
tags:

  • 4-bit
  • aarch64
  • abliterated
  • aeon
  • aeon-7
  • agentic
  • arm64
  • awq
  • blackwell
  • chat
  • chunked-prefill
  • coding
  • conversational
  • dgx-spark
  • drafter
  • e4b
  • eagle
  • english
  • flashinfer-cutlass
  • fp4
  • fp8-kv-cache
  • function-calling
  • gb10
  • gemma
  • gemma-4
  • gemma4
  • google
  • gpu
  • grace-blackwell
  • instruct
  • long-context
  • mixture-of-experts
  • modelopt
  • moe
  • multimodal
  • native-fp4
  • nvfp4
  • nvidia
  • openai-api
  • openai-compatible
  • prefix-caching
  • production-ready
  • quantized
  • reasoning
  • refusal-removed
  • safetensors
  • sm_121a
  • speculative-decoding
  • text-generation
  • thinking
  • tool-calling
  • uncensored
  • unfiltered
  • vision
  • vision-language
  • vllm
  • weight-quantization
    model_type: gemma4
    quantization: nvfp4
    language:
  • en

Gemma 4 E4B Uncensored NVFP4

EAGLE speculative decoding drafter for Gemma 4 26B-A4B Uncensored (TrevorJS) — a 42-layer E4B (EAGLE for Blackwell) model quantized to NVFP4 AWQ using NVIDIA ModelOpt 0.42.0.

Designed for EAGLE-based speculative decoding on NVIDIA DGX Spark (GB10, SM 12.1) and other Blackwell-architecture GPUs.

GitHub Repo — patches, deployment configs, Dockerfile

Model Details

Property Value
Architecture Gemma 4 (E4B EAGLE Drafter)
Target Model TrevorJS/gemma-4-26B-A4B-it-uncensored (26B MoE)
Layers 42 (35 sliding-window + 7 full-attention)
Hidden Size 2560
Attention Heads 8 (2 KV heads), head_dim=256, global_head_dim=512
Sliding Window 512 tokens
Max Context 131,072 tokens
Quantization NVFP4 AWQ (ModelOpt 0.42.0)
Model Size 9.6 GB
Vocabulary 262,144 tokens

Quick Start

Prerequisites

  1. Target model — Any NVFP4-quantized Gemma 4 26B MoE (e.g., AEON-7/Gemma-4-26B-A4B-it-Uncensored-NVFP4)
  2. This drafter model — Download below
  3. Three vLLM patches — Required for Gemma 4 speculative decoding (see Required Patches)
  4. Pre-built container — ghcr.io/aeon-7/vllm-spark-gemma4-nvfp4-awq:latest

1. Download both models

pip install -U huggingface-hub

# Target model (26B MoE)
huggingface-cli download AEON-7/Gemma-4-26B-A4B-it-Uncensored-NVFP4 \
  --local-dir ~/models/trevorjs-26b

# This drafter model (E4B)
huggingface-cli download AEON-7/Gemma-4-E4B-it-Uncensored-NVFP4 \
  --local-dir ~/models/e4b-drafter

2. Get the patched vLLM files

Three patches to vLLM 0.19.1 are required for Gemma 4 speculative decoding. Download from the DECKARD 31B GitHub repo:

for f in eagle_patched.py serving_chat_patched.py modelopt_patched.py; do
  curl -LO https://raw.githubusercontent.com/AEON-7/Gemma-4-31B-DECKARD-HERETIC-Uncensored-NVFP4/main/$f
done

3. Launch with Docker Compose

services:
  vllm:
    image: ghcr.io/aeon-7/vllm-spark-gemma4-nvfp4-awq:latest
    container_name: vllm-trevorjs-26b-spec
    restart: unless-stopped
    network_mode: host
    volumes:
      - ~/models/trevorjs-26b:/models/target
      - ~/models/e4b-drafter:/models/e4b-drafter
      - ./modelopt_patched.py:/usr/local/lib/python3.12/dist-packages/vllm/model_executor/layers/quantization/modelopt.py
      - ./serving_chat_patched.py:/usr/local/lib/python3.12/dist-packages/vllm/entrypoints/openai/chat_completion/serving.py
      - ./eagle_patched.py:/usr/local/lib/python3.12/dist-packages/vllm/v1/spec_decode/eagle.py
    environment:
      - VLLM_TEST_FORCE_FP8_MARLIN=1
      - VLLM_MARLIN_USE_ATOMIC_ADD=1
      - VLLM_ALLOW_LONG_MAX_MODEL_LEN=1
      - VLLM_USE_FLASHINFER_MOE_FP4=1
      - TORCH_MATMUL_PRECISION=high
      - PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
    command:
      - bash
      - -c
      - |
        exec vllm serve /models/target \
          --served-model-name trevorjs-26b \
          --quantization modelopt \
          --dtype auto \
          --kv-cache-dtype fp8 \
          --tensor-parallel-size 1 \
          --max-model-len 131072 \
          --max-num-seqs 4 \
          --gpu-memory-utilization 0.65 \
          --trust-remote-code \
          --host 0.0.0.0 --port 8000 \
          --enable-chunked-prefill \
          --enable-prefix-caching \
          --enable-auto-tool-choice \
          --tool-call-parser gemma4 \
          --reasoning-parser gemma4 \
          --speculative-config '{"method":"draft_model","model":"/models/e4b-drafter","num_speculative_tokens":5,"quantization":"modelopt"}'
    ipc: host
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

On the DGX Spark's unified memory keep --gpu-memory-utilization at 0.6-0.7; above ~0.8 the shared CPU+GPU pool page-thrashes and stalls the box, and a spec-decode drafter's verify buffers are not counted by the fraction so leave headroom (0.65 here). Discrete-VRAM GPUs can run higher.

Speculative Config Parameters

Parameter Value Description
method draft_model EAGLE-based draft model speculative decoding
model /models/e4b-drafter Path to this E4B drafter model
num_speculative_tokens 5 Number of tokens the drafter proposes per step
quantization modelopt Required — drafter uses NVFP4 ModelOpt format

Required vLLM Patches

Speculative decoding with Gemma 4 requires three patches to vLLM 0.19.1. Without these, the server will crash on startup.

Patch 1: eagle_patched.py — Gemma 4 spec decode support

File: vllm/v1/spec_decode/eagle.py

Three fixes are needed:

1a. Remove multimodal guard

vLLM 0.19.1 calls _raise_if_multimodal() which blocks ALL multimodal targets from speculative decoding, even when the drafter is text-only. Remove this call — the downstream code already handles text-only drafters with multimodal targets correctly.

# In initialize() method — REMOVE this line:
# self._raise_if_multimodal()

1b. Add Gemma4 to model whitelist

Gemma 4 uses image_token_id (258880) but NOT image_token_index. The spec decode framework needs an explicit mapping:

# In the model whitelist check, add Gemma4:
if self.get_model_name(target_model) in [
    "Qwen2_5_VLForConditionalGeneration",
    # ... existing models ...
    "Gemma4ForConditionalGeneration",  # ADD THIS
]:
    self.model.config.image_token_index = target_model.config.image_token_id

1c. Multi-group KV cache support

Gemma 4 uses heterogeneous attention: head_dim=256 for sliding-window layers and head_dim=512 for global attention layers. This creates two distinct KV cache groups. The spec decode framework assumes a single group.

Fix validate_same_kv_cache_group to log a warning instead of asserting, and rewrite initialize_attn_backend to key attention groups by (backend_class, kv_cache_group_id) instead of just backend_class, mapping each draft layer to its correct KV cache group.

Patch 2: serving_chat_patched.py — Non-streaming reasoning parser

File: vllm/entrypoints/openai/chat_completion/serving.py

Gemma 4's reasoning parser uses <|channel> (token 100) and <channel|> (token 101) delimiters. With skip_special_tokens=True (the default for non-streaming), these are stripped, causing extract_reasoning() to return None — thinking content lands in the content field.

The fix re-decodes from raw token_ids with skip_special_tokens=False when text-based extraction fails:

if reasoning is None and token_ids and hasattr(reasoning_parser, 'start_token_id'):
    token_ids_list = list(token_ids)
    if reasoning_parser.start_token_id in token_ids_list:
        full_text = reasoning_parser.model_tokenizer.decode(
            token_ids_list, skip_special_tokens=False
        )
        reasoning, content = reasoning_parser.extract_reasoning(full_text, request=request)
        if content:
            _tok = reasoning_parser.model_tokenizer
            content = _tok.decode(_tok.encode(content), skip_special_tokens=True)

Patch 3: modelopt_patched.py — NVFP4 AWQ support

File: vllm/model_executor/layers/quantization/modelopt.py

Three fixes:

  1. FP8 NaN scrubbing — ModelOpt 0.42.0 produces ~60 FP8 NaN values (0x7F/0xFF) in weight_scale tensors. Scrubs to zero at load time.
  2. NVFP4_AWQ quant_algo — Registers NVFP4_AWQ (upstream only handles NVFP4).
  3. AWQ pre_quant_scale — Loads and applies per-channel pre_quant_scale tensors for AWQ weight redistribution.

Applying the Patches

Mount as volume binds in Docker Compose (shown above), or copy manually:

VLLM_PATH=$(python3 -c "import vllm; print(vllm.__path__[0])")
cp eagle_patched.py    $VLLM_PATH/v1/spec_decode/eagle.py
cp serving_chat_patched.py $VLLM_PATH/entrypoints/openai/chat_completion/serving.py
cp modelopt_patched.py $VLLM_PATH/model_executor/layers/quantization/modelopt.py

Heterogeneous Attention Architecture

This E4B drafter mirrors the Gemma 4 heterogeneous attention design:

  • 35 sliding-window layers — head_dim=256, window of 512 tokens, default RoPE (theta=10000)
  • 7 full-attention layers — head_dim=512, global attention, proportional RoPE (theta=1M, partial_rotary_factor=0.25)

This creates two distinct KV cache groups within the drafter, handled by the multi-group KV cache fix in eagle_patched.py.

Cross-Model Drafter Compatibility

This drafter was derived from the TrevorJS uncensored fine-tune. It can also be used with other Gemma 4 targets that share the same vocabulary (262K tokens):

Target Model Expected Compatibility
TrevorJS 26B Uncensored Best — same base model
DECKARD 31B Dense Good — same vocab, different fine-tune
SuperGemma4 26B MoE Good — same vocab, different abliteration
Official Gemma 4 26B Moderate — base model, no uncensoring

Acceptance rate will be highest with the matching base model and lower with mismatched fine-tunes, but all combinations will function correctly.

Related Models

Model Type Size Link
TrevorJS 26B MoE NVFP4 (target) MoE NVFP4 16 GB HuggingFace
DECKARD 31B AWQ_FULL Dense NVFP4 20.5 GB HuggingFace | GitHub
DECKARD E4B Drafter EAGLE NVFP4 9.6 GB HuggingFace | GitHub
SuperGemma4 26B MoE MoE NVFP4 ~14 GB HuggingFace | GitHub
vLLM AWQ Container Docker — GHCR

Hardware Requirements

  • Target + Drafter combined: ~26 GB (16 GB target + 9.6 GB drafter)
  • Recommended: NVIDIA DGX Spark (128 GB unified memory) or any GPU with >= 40 GB VRAM
  • Required: Blackwell architecture (SM 10.0+) for native FP4

License

This model inherits the Gemma license from Google.


☕ Support the work

If this release has been useful, tips are deeply appreciated — they go directly toward more compute, more models, and more open releases.

₿ Bitcoin (BTC)
QR
bc1q09xmzn00q4z3c5raene0f3pzn9d9pvawfm0py4
Ξ Ethereum (ETH)
QR
0x1512667F6D61454ad531d2E45C0a5d1fd82D0500
◎ Solana (SOL)
QR
DgQsjHdAnT5PNLQTNpJdpLS3tYGpVcsHQCkpoiAKsw8t
ⓜ Monero (XMR)
QR
836XrSKw4R76vNi3QPJ5Fa9ugcyvE2cWmKSPv3AhpTNNKvqP8v5ba9JRL4Vh7UnFNjDz3E2GXZDVVenu3rkZaNdUFhjAvgd

Ethereum L2s (Base, Arbitrum, Optimism, Polygon, etc.) and EVM-compatible tokens can be sent to the same Ethereum address.

README history 6 versions

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

  1. 2026-10-06Add Patreon support section968342e13.9 KB
    Loading...
  2. 2026-07-15Recipe: gpu-util 0.6-0.7 on DGX Spark unified memory (>~0.8 thrashes the shar...aa8930613.3 KB
    Loading...
  3. 2026-06-21tags: expand to maximally-searchable set (+28 tags, union with existing)8d6dae113 KB
    Loading...
  4. 2026-05-31Tip jar: single left-aligned QR column (fix narrow-viewport clipping)4a7256f12.7 KB
    Loading...
  5. 2026-05-01Add tip jar block (BTC/ETH/SOL/XMR with QR codes)3a8bb5c12.8 KB
    Loading...
  6. 2026-04-13Add comprehensive model card with spec decode patches documentation25883f111.3 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