Gemma 4 E4B DECKARD HERETIC Uncensored NVFP4
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 GPUs.
Model Details
Property Value Architecture Gemma 4 (E4B EAGLE Drafter) Target Model AEON-7/Gemma-4-31B-it-DECKARD-HERETIC-Uncensored-NVFP4 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
Performance (DGX Spark)
Benchmarked on NVIDIA DGX Spark (GB10, SM 12.1, 128 GB unified memory) with 31B DECKARD AWQ_FULL target + this E4B drafter. 5 speculative tokens, 300 max tokens per request.
Concurrent Aggregate tok/s Per-Request tok/s Avg Latency (300 tok) 1 7.6 8.9 39.4s 2 21.7 10.8 27.7s 4 42.7 10.7 28.1s
Zero errors across all test runs. Throughput scales linearly with concurrency.
Quick Start
1. Download both models
1 pip install -U huggingface-hub
2
3 # Target model (31B)
4 huggingface-cli download AEON-7/Gemma-4-31B-it-DECKARD-HERETIC-Uncensored-NVFP4 \
5 --local-dir ~/models/deckard-31b
6
7 # This drafter model (E4B)
8 huggingface-cli download AEON-7/Gemma-4-E4B-DECKARD-HERETIC-Uncensored-NVFP4 \
9 --local-dir ~/models/e4b-drafter
2. Get the patched vLLM files
Three patches are required for Gemma 4 speculative decoding. Download from the
GitHub repo :
1 for f in eagle_patched.py serving_chat_patched.py modelopt_patched.py ; do
2 curl -LO https://raw.githubusercontent.com/AEON-7/Gemma-4-31B-DECKARD-HERETIC-Uncensored-NVFP4/main/ $f
3 done
3. Launch with Docker Compose
1 services :
2 vllm :
3 image : ghcr.io/aeon - 7/vllm - spark - gemma4 - nvfp4 - awq : latest
4 container_name : vllm - deckard - 31b - spec
5 restart : unless - stopped
6 network_mode : host
7 volumes :
8 - ~/models/deckard - 31b : /models/deckard
9 - ~/models/e4b - drafter : /models/e4b - drafter
10 - ./modelopt_patched.py : /usr/local/lib/python3.12/dist - packages/vllm/model_executor/layers/quantization/modelopt.py
11 - ./serving_chat_patched.py : /usr/local/lib/python3.12/dist - packages/vllm/entrypoints/openai/chat_completion/serving.py
12 - ./eagle_patched.py : /usr/local/lib/python3.12/dist - packages/vllm/v1/spec_decode/eagle.py
13 environment :
14 - VLLM_TEST_FORCE_FP8_MARLIN=1
15 - VLLM_MARLIN_USE_ATOMIC_ADD=1
16 - VLLM_ALLOW_LONG_MAX_MODEL_LEN=1
17 - TORCH_MATMUL_PRECISION=high
18 - PYTORCH_CUDA_ALLOC_CONF=expandable_segments : True
19 command :
20 - bash
21 - - c
22 - |
23 exec vllm serve /models/deckard \
24 --served-model-name deckard-31b \
25 --quantization modelopt \
26 --dtype auto \
27 --kv-cache-dtype fp8 \
28 --tensor-parallel-size 1 \
29 --max-model-len 131072 \
30 --max-num-seqs 4 \
31 --gpu-memory-utilization 0.65 \
32 --trust-remote-code \
33 --host 0.0.0.0 --port 8000 \
34 --enable-chunked-prefill \
35 --enable-prefix-caching \
36 --enable-auto-tool-choice \
37 --tool-call-parser gemma4 \
38 --reasoning-parser gemma4 \
39 --speculative-config '{"method":"draft_model","model":"/models/e4b-drafter","num_speculative_tokens":5,"quantization":"modelopt"}'
40 ipc : host
41 deploy :
42 resources :
43 reservations :
44 devices :
45 - driver : nvidia
46 count : all
47 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. With EAGLE speculative decoding the verify buffers are not counted by the fraction, so leave extra headroom (0.65 here). Discrete-VRAM GPUs can run higher.
4. Test
1 curl http://localhost:8000/v1/chat/completions \
2 -H "Content-Type: application/json" \
3 -d '{
4 "model": "deckard-31b",
5 "messages": [{"role": "user", "content": "Explain quantum entanglement."}],
6 "max_tokens": 200
7 }'
Required vLLM Patches
Three patches to vLLM 0.19.1 are required for speculative decoding with Gemma 4. All are available in the
target model GitHub repo .
Patch What it fixes eagle_patched.pyRemoves multimodal spec decode guard, adds Gemma4 model whitelist, supports multi-group KV cache (heterogeneous head_dim=256/512) serving_chat_patched.pyFixes non-streaming reasoning parser — <|channel> tokens stripped by skip_special_tokens=True modelopt_patched.pyNVFP4_AWQ quant_algo support, AWQ pre_quant_scale handling, FP8 NaN scrubbing
Heterogeneous Attention
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, handled by the eagle_patched.py multi-group KV cache fix.
Related Models
Model Type Size Link Gemma 4 31B DECKARD AWQ_FULL (target)Dense NVFP4 20.5 GB HuggingFace | GitHub Gemma 4 31B DECKARD SVDQuant Dense NVFP4 20.9 GB HuggingFace SuperGemma4 26B MoE MoE NVFP4 15.3 GB HuggingFace vLLM AWQ Container Docker — GHCR
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.