Instructions to use Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark") model = AutoModelForMultimodalLM.from_pretrained("Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark
- SGLang
How to use Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark with Docker Model Runner:
docker model run hf.co/Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark
Use Docker images
docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark" \
--host 0.0.0.0 \
--port 30000# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'gemma-4-12B-it — Antidoom + W4A16 GPTQ (group=32) · DSpark-verified
A Antidoom (FTPO anti-repetition) version of
google/gemma-4-12B-it, quantized post-training to
GPTQ int4 (W4A16, group=32, symmetric) and verified as a
DSpark speculative-decoding target
(draft head: deepseek-ai/dspark_gemma4_12b_block7).
TL;DR: 207 tok/s single-stream on one RTX 5090 (32 GB) — the fastest gemma-4-12B configuration we have measured on that card (beats our non-antidoom GPTQ at 198), at 7.8 GB of weights.
What was done
- Antidoom FTPO pass: 152 preference pairs mined at temperature 0.01 from the LiquidAI/antidoom-mix-v1.0 prompt mix; QLoRA (r=128, 4-bit training pass, max_seq 2048, lr 3e-5), early-stopped at chosen_win 0.575 (epoch ~1.9) — the strongest anti-loop convergence of our 4-model antidoom family; adapter merged into the bf16 base on CPU.
- Post-training GPTQ: identical recipe to gemma-4-12B-it-W4A16-GPTQ-g32-DSpark.
DSpark acceptance survived and improved: 35.6% (non-antidoom GPTQ) → 38.3% (this model). The FTPO patch suppresses exactly the degenerate repetition the draft also fails on, so speculation gets slightly better.
Measured speed — RTX 5090 (32 GB, Blackwell), single stream, greedy, 256-tok gens
| config | tok/s | DSpark accept |
|---|---|---|
| this model + DSpark k=7 + CUDA graphs + autotune | 207.5 (peaks 260) | 38.3% |
| this model, native (no speculation) | 119 | — |
| reference: non-antidoom GPTQ + DSpark k=7 + autotune | 198.2 | 35.6% |
| reference: official QAT w4a16-ct + DSpark | slower than native | 2.1% |
Usage (vLLM + DSpark)
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
MODEL = "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark"
DRAFT = "deepseek-ai/dspark_gemma4_12b_block7"
llm = LLM(
model=MODEL,
max_model_len=8192,
attention_backend="FLASHINFER", # gemma-4 full-attn layers have head_dim 512
enable_flashinfer_autotune=True, # +2% in our runs
speculative_config={
"method": "dspark",
"model": DRAFT,
"num_speculative_tokens": 7, # = draft block size; k<7 or k=14 are both slower
"attention_backend": "TRITON_ATTN",
},
)
tok = AutoTokenizer.from_pretrained(MODEL)
prompt = tok.apply_chat_template(
[{"role": "user", "content": "Explain transformers step by step."}],
add_generation_prompt=True, tokenize=False,
)
print(llm.generate([prompt], SamplingParams(temperature=0.0, max_tokens=256))[0].outputs[0].text)
Notes:
- Always apply the chat template — gemma-4-it uses
<|turn>-style tokens andadd_bos_token=False; raw prompts produce garbage on any backend. num_speculative_tokensmust be ≤ 7 or a multiple of 7 (draft block size). 7 is optimal.- Works without DSpark too, as a normal compressed-tensors W4A16 checkpoint (kernel path identical to the official QAT release: group=32, symmetric, pack-quantized).
kv_cache_dtype="fp8"measured slower (−3%) at short context on this card.
Quantization recipe
llm-compressor 0.12 GPTQ, one-shot:
- 256 calibration samples from
HuggingFaceH4/ultrachat_200k(train_sft), chat template applied, max_seq_length 2048 - scheme: int4, group_size=32, symmetric, weights-only (W4A16),
pack-quantizedformat — mirrors the official QAT checkpoint's config so every vLLM kernel path is identical sequential_targets=["Gemma4UnifiedTextDecoderLayer"]; lm_head and vision/audio embedder projections kept in bf16 (same 17-entry ignore list as the official QAT release, spelled so both HF and vLLM module names match)processor_config.jsonincluded (vLLM's multimodal processor init requires it)
Provenance
- Base:
google/gemma-4-12B-it@5926caa4→ antidoom FTPO LoRA merge → GPTQ W4A16 g32 - Built 2026-07-11 on a single RTX 5090; outputs verified coherent
- Gemma is provided under and subject to the Gemma Terms of Use: https://ai.google.dev/gemma/terms
- Downloads last month
- 325
Install from pip and serve model
# Install SGLang from pip: pip install sglang# Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark" \ --host 0.0.0.0 \ --port 30000# Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Danny-Dasilva/gemma-4-12B-it-antidoom-W4A16-GPTQ-g32-DSpark", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'