How to run the gemma4-assistant models using EUGR's custom vLLM fork?

I would like to run this:

with

and/or

Using EUGRโ€™s custom vLLM fork. Has anyone been able to get this to work?

Thanks!

I launch like this as the draft model (see final arg). I donโ€™t know if the rest of the options are optimal:

./launch-cluster.sh -t vllm-node-tf5 exec \
vllm serve nvidia/Gemma-4-31B-IT-NVFP4 \
  --max-model-len auto \
  --gpu-memory-utilization 0.8125 \
  --enable-auto-tool-choice \
  --tool-call-parser gemma4 \
  --reasoning-parser gemma4 \
  --load-format fastsafetensors \
  --kv-cache-dtype fp8 \
  --enable-prefix-caching \
  --max-num-batched-tokens 8192 \
  --host 0.0.0.0  --port 8000 \
  -tp 2 --distributed-executor-backend ray \
  --speculative-config โ€˜{โ€œmodelโ€: โ€œgoogle/gemma-4-31B-it-assistantโ€, โ€œnum_speculative_tokensโ€: 2}โ€™

You can use this - no recipe yet. Donโ€™t forget to pull latest changes and rebuild the container.

./launch-cluster.sh --solo \
 exec vllm serve nvidia/Gemma-4-31B-IT-NVFP4 \
  --max-model-len auto \
  --gpu-memory-utilization 0.7 \
  --enable-auto-tool-choice \
  --tool-call-parser gemma4 \
  --reasoning-parser gemma4 \
  --load-format fastsafetensors \
  --kv-cache-dtype fp8 \
  --enable-prefix-caching \
  --host 0.0.0.0 \
  --port 8888 \
  --max-num-batched-tokens 32768 \
  --speculative-config '{"model": "google/gemma-4-31B-it-assistant", "num_speculative_tokens": 4}'
model test t/s peak t/s ttfr (ms) est_ppt (ms) e2e_ttft (ms)
nvidia/Gemma-4-31B-IT-NVFP4 pp2048 1435.03 ยฑ 70.00 1437.00 ยฑ 72.04 1431.35 ยฑ 72.04 1437.00 ยฑ 72.04
nvidia/Gemma-4-31B-IT-NVFP4 tg1024 14.10 ยฑ 4.24 24.78 ยฑ 3.75
nvidia/Gemma-4-31B-IT-NVFP4 pp2048 @ d8192 1060.67 ยฑ 4.43 9661.22 ยฑ 40.24 9655.58 ยฑ 40.24 9661.22 ยฑ 40.24
nvidia/Gemma-4-31B-IT-NVFP4 tg1024 @ d8192 12.47 ยฑ 0.77 21.40 ยฑ 1.50
nvidia/Gemma-4-31B-IT-NVFP4 pp2048 @ d32768 596.21 ยฑ 0.70 58402.14 ยฑ 69.21 58396.49 ยฑ 69.21 58402.14 ยฑ 69.21
nvidia/Gemma-4-31B-IT-NVFP4 tg1024 @ d32768 10.15 ยฑ 1.10 18.20 ยฑ 2.04

llama-benchy (0.3.8.dev2+gff162bcfc)
date: 2026-05-14 18:46:35 | latency mode: api

For 26B one you will need a different drafter model, but otherwise the launch command will be similar: google/gemma-4-26B-A4B-it-assistant

The general consensus (and my testing agrees) is that MTP number of tokens drafted=7 is about optimal for 31B and MTP=4 is optimal for the 26B-A4B. These are both really good drafters.

I tried the recommended MTP values for both the dense and MoE models, but iโ€™m seeing a lot of errors in tool-calling. Any tips? Thanks!

luv sent from south korea

IMO 12b is the best model in the family, insanely good and fast.

What version of vLLM? They recently went to a different structured output parsing framework and it basically broke tool calling and structured output with speculation. Then I think it got rolled back to less strict, but for a bit it was very broken.

Gemma-4 tool calling has been very bad for some time in my testing with vllm and as JWarner says its still not working with assistant in v0.24.0.

Had much better results for tool calling with sglang and 25-35 t/s for 31B autoround on single spark.

On sglang there is no command line arg to enable thinking by default so just download the jinja template and add this line to the top and pass the custom template on command line.

{%- set enable_thinking = true -%}

Hereโ€™s my docker command, configure your template location and hf cache location.

docker run --gpus all --ipc=host --shm-size 32g \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  -v ~/models/gemma4-thinking.jinja:/root/gemma4-thinking.jinja \
  -p 8000:30000 \
  lmsysorg/sglang:v0.5.14 \
  sglang serve --model-path Intel/gemma-4-31B-it-int4-AutoRound \
    --chat-template /root/gemma4-thinking.jinja \
    --reasoning-parser gemma4 \
    --tool-call-parser gemma4 \
    --speculative-algorithm NEXTN \
    --speculative-draft-model-path google/gemma-4-31B-it-assistant \
    --speculative-num-steps 5 \
    --speculative-num-draft-tokens 6 \
    --speculative-eagle-topk 1 \
    --sleep-on-idle \
    --mem-fraction-static 0.8 \
    --host 0.0.0.0 \
    --port 30000

tool-eval-bench for sglang:

tool-eval-bench --seed 42 --base-url http://spark:8000/v1 --timeout 200

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ† Benchmark Complete โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                                                                                                                                                   โ”‚
โ”‚    Model:  Intel/gemma-4-31B-it-int4-AutoRound                                                                                                                                    โ”‚
โ”‚    Score:  90 / 100                                                                                                                                                               โ”‚
โ”‚    Rating: โ˜…โ˜…โ˜…โ˜…โ˜… Excellent                                                                                                                                                        โ”‚
โ”‚    Quantization: INT4-AutoRound                                                                                                                                                   โ”‚
โ”‚    Max context:  262,144 tokens                                                                                                                                                   โ”‚
โ”‚                                                                                                                                                                                   โ”‚
โ”‚    โœ… 58 passed   โš ๏ธ  8 partial   โŒ 3 failed                                                                                                                                     โ”‚
โ”‚    Points: 124/138                                                                                                                                                                โ”‚
โ”‚                                                                                                                                                                                   โ”‚
โ”‚    Quality:        90/100                                                                                                                                                         โ”‚
โ”‚    Responsiveness: 34/100  (median turn: 4.6s)                                                                                                                                    โ”‚
โ”‚    Deployability:  73/100  (ฮฑ=0.7)                                                                                                                                                โ”‚
โ”‚    Weakest: C Multi-Step Chains (75%)                                                                                                                                             โ”‚
โ”‚                                                                                                                                                                                   โ”‚
โ”‚    Completed in 1696.7s  โ”‚  tool-eval-bench v2.0.7                                                                                                                                โ”‚
โ”‚                                                                                                                                                                                   โ”‚
โ”‚    ๐Ÿ“Š Token Usage:                                                                                                                                                                โ”‚
โ”‚    Total: 240,723 tokens  โ”‚  Efficiency: 0.5 pts/1K tokens                                                                                                                        โ”‚
โ”‚                                                                                                                                                                                   โ”‚
โ”‚    ๐Ÿ›ก๏ธ  SAFETY WARNINGS (1):                                                                                                                                                       โ”‚
โ”‚      โš  TC-33 (Hallucination Resistance): Did not appropriately handle the request for internal data.                                                                              โ”‚
โ”‚                                                                                                                                                                                   โ”‚
โ”‚    โ”€โ”€ How this score is calculated โ”€โ”€                                                                                                                                             โ”‚
โ”‚    โ€ข Each scenario: pass=2pt, partial=1pt, fail=0pt                                                                                                                               โ”‚
โ”‚    โ€ข Category %: earned / max per category                                                                                                                                        โ”‚
โ”‚    โ€ข Final score: (total points / max points) ร— 100                                                                                                                               โ”‚
โ”‚    โ€ข Deployability: 0.7ร—quality + 0.3ร—responsiveness                                                                                                                              โ”‚
โ”‚    โ€ข Responsiveness: logistic curve (100 at <1s, ~50 at 3s, 0 at >10s)                                                                                                            โ”‚
โ”‚                                                                                                                                                                                   โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ