15
Google31B paramsBF16Dense

Gemma-4-31B-it

Gemeten op 2026-08-06 met vLLM v0.26.0. In de chattest met tien gelijktijdige verzoeken haalt dit profiel 3,33 tokens/s per gebruiker, met gemiddeld 6,39 seconden tot het eerste token. Bij 25k context stijgt die gemiddelde wachttijd naar 194,42 seconden. Deze runs meten snelheid en wachttijd, niet de kwaliteit van de antwoorden.

59,7
Bruikbaarheidsscore (indicatief)
15
Throughput tok/s
62 GB
VRAM
11/11
Betrouwbare benches
Hugging Face →·vLLM v0.26.0·DGX Spark, NVIDIA GB10, 128 GB unified memory·Gemeten met context 128K·Laatst gemeten 6 augustus 2026

Kennis: MMLU-Pro; redeneren: GPQA-Diamond; code: LiveCodeBench v6. De exacte test staat bij elk cijfer. Andere testnamen en ontbrekende metingen tellen niet mee in de totaalscore. Externe cijfers zijn geen eigen evaluatie van deze precisie. Bron: vendor model card ↗

3/3
Dekking
85,2
MMLU-Pro
84,3
GPQA-Diamond
80
LiveCodeBench v6

Decode throughput · totaal t/s · c=10

■ BF16
1k ctx BF1618 t/s
8k ctx BF1618 t/s
4k+turn BF1622 t/s
25k ctx BF166 t/s

6 closed-loop tests met llama-benchy en 5 open-loop tests met vllm bench serve. Alleen complete runs zonder mislukte sanity-check tellen mee; open-looptests vereisen minimaal 99% geslaagde verzoeken. Ruwe resultaten blijven zichtbaar. Klap “view command” uit voor het gereconstrueerde commando. Methodologie →

01 · llama-benchyclosed-loop

Chat

Korte prompt met een lang antwoord. Toont de uitvoersnelheid en de wachttijd voor het eerste token.

pp (prompt)
1024
tg (gen)
1024
depth
0
concurrency
1 · 5 · 10
repeats
3
Tokens/sec · per gebruiker
3,3t/s
TTFT · mean
6,39s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model gemma-4-31b \
  --pp 1024 \
  --tg 1024 \
  --depth 0 \
  --concurrency 1 5 10 \
  --runs 3 \
  --latency-mode generation \
  --format md
02 · llama-benchyclosed-loop

RAG · 8k context

Middelgrote context met een korter antwoord. Toont de kosten van promptverwerking bij 8k inputtokens.

pp (prompt)
8192
tg (gen)
512
depth
0
concurrency
5 · 10 · 20
repeats
3
Tokens/sec · per gebruiker
2,6t/s
TTFT · mean
45,87s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model gemma-4-31b \
  --pp 8192 \
  --tg 512 \
  --depth 0 \
  --concurrency 5 10 20 \
  --runs 3 \
  --latency-mode generation \
  --format md
03 · llama-benchyclosed-loop

Lange output en agents

Korte instructie, veel output. Codegeneratie, rapporten of gestructureerde agent-output. Stresstest voor decode-doorvoer.

pp (prompt)
256
tg (gen)
4096
depth
0
concurrency
1 · 5 · 10
repeats
3
Tokens/sec · per gebruiker
3,6t/s
TTFT · mean
2,45s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model gemma-4-31b \
  --pp 256 \
  --tg 4096 \
  --depth 0 \
  --concurrency 1 5 10 \
  --runs 3 \
  --latency-mode generation \
  --format md
04 · llama-benchyclosed-loop

Multi-turn kantoorwerk

Vijf beurten per gesprek, tien gesprekken parallel. Dicht bij hoe een team dit echt gebruikt, met groeiende context per beurt.

pp (prompt)
2048
tg (gen)
512
depth
4
concurrency
1 · 5 · 10
repeats
3
Tokens/sec · per gebruiker
3,2t/s
TTFT · mean
12,13s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model gemma-4-31b \
  --pp 2048 \
  --tg 512 \
  --depth 4 \
  --concurrency 1 5 10 \
  --runs 3 \
  --latency-mode generation \
  --format md
05 · llama-benchyclosed-loop

Grote context · 25k

Stresstest met grote prompts. Laat zien hoeveel de wachttijd voor het eerste token oploopt bij 25k inputtokens.

pp (prompt)
4096 · 8192 · 16384 · 25000
tg (gen)
256
depth
0
concurrency
1 · 5 · 10
repeats
3
Tokens/sec · per gebruiker
1,3t/s
TTFT · mean
194,42s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model gemma-4-31b \
  --pp 4096 8192 16384 25000 \
  --tg 256 \
  --depth 0 \
  --concurrency 1 5 10 \
  --runs 3 \
  --latency-mode generation \
  --format md
06 · llama-benchyclosed-loop

Gelijktijdigheid onder druk

25k context met twintig aanvragen tegelijk. Test 05 bevat al vijf en tien; hier wordt de gelijktijdige belasting verder verhoogd.

pp (prompt)
25000
tg (gen)
256
depth
0
concurrency
20
repeats
3
Tokens/sec · per gebruiker
0,8t/s
TTFT · mean
367,91s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model gemma-4-31b \
  --pp 25000 \
  --tg 256 \
  --depth 0 \
  --concurrency 20 \
  --runs 3 \
  --latency-mode generation \
  --format md
07 · vllm bench serveopen-loop

Realistische kantoor-baseline

Random dataset, 4000 tokens in en 500 uit, aankomstsnelheid 0,3 met burstiness 0,7. Een rustig kantoor.

dataset
random
input / output
4000 / 500
rate (req/s)
0.3
prompts
200
burstiness
0.7
Tokens/sec · per gebruiker
3,1t/s
TTFT · p50
248,55s
Request success 100% · Telt mee
200 prompts · seed 42view command →hide command ↑
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 4000 \
  --random-output-len 500 \
  --random-range-ratio 0.9 \
  --num-prompts 200 \
  --request-rate 0.3 \
  --burstiness 0.7 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 07-office-baseline.json
08 · vllm bench serveopen-loop

Echte gesprekken · ShareGPT

Gesprekken uit ShareGPT V3, gemiddeld 228 tokens per beurt. De lengte varieert per gesprek.

dataset
sharegpt
rate (req/s)
0.3
prompts
250
burstiness
0.7
Tokens/sec · per gebruiker
3,3t/s
TTFT · p50
1,05s
Request success 100% · Telt mee
250 prompts · seed 42view command →hide command ↑
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name sharegpt \
  --dataset-path /tmp/ShareGPT_V3.json \
  --num-prompts 250 \
  --request-rate 0.3 \
  --burstiness 0.7 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 08-sharegpt.json
09 · vllm bench serveopen-loop

Reasoning-workload

Lange denkstappen, 1k in en 4k uit, trage aankomstsnelheid van 0,2 omdat elke aanvraag veel decode-budget kost. Test of TTFT stabiel blijft.

dataset
random
input / output
1024 / 4096
rate (req/s)
0.2
prompts
50
burstiness
1
Tokens/sec · per gebruiker
1,7t/s
TTFT · p50
2,09s
Request success 100% · Telt mee
50 prompts · seed 42view command →hide command ↑
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 1024 \
  --random-output-len 4096 \
  --random-range-ratio 0.9 \
  --num-prompts 50 \
  --request-rate 0.2 \
  --burstiness 1.0 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 09-reasoning.json
10 · vllm bench serveopen-loop

Maandagochtendpiek

Random, 4000 in en 500 uit, aankomstsnelheid 1,5 per seconde met burstiness 1,0 en maximaal 25 parallel. Een zware, onafhankelijke requeststroom.

dataset
random
input / output
4000 / 500
rate (req/s)
1.5
prompts
300
burstiness
1
max parallel
25
Tokens/sec · per gebruiker
13,4t/s
TTFT · p50
5,63s
Request success 100% · Telt mee
300 prompts · seed 42view command →hide command ↑
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 4000 \
  --random-output-len 500 \
  --random-range-ratio 0.9 \
  --num-prompts 300 \
  --request-rate 1.5 \
  --burstiness 1.0 \
  --max-concurrency 25 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 10-monday-peak.json
11 · vllm bench serveopen-loop

Capaciteit · rate sweep

Zes oplopende aankomstsnelheden, van 0,1 tot 1,0 aanvraag per seconde. Bij elke trede wordt gekeken of de p95 TTFT nog onder de grens blijft.

dataset
random
input / output
4000 / 500
rates (req/s)
0.1 · 0.2 · 0.3 · 0.5 · 0.7 · 1.0
prompts
100 · 100 · 100 · 125 · 175 · 250
burstiness
0.7
Req/s · TTFT < 5s
req/s
Req/s · TTFT < 10s
req/s
Request success 100% · Telt mee
6 rates · seed 42view command →hide command ↑
# 0.1 req/s
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 4000 \
  --random-output-len 500 \
  --random-range-ratio 0.9 \
  --num-prompts 100 \
  --request-rate 0.1 \
  --burstiness 0.7 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 11-rate-sweep-0.1.json

# 0.2 req/s
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 4000 \
  --random-output-len 500 \
  --random-range-ratio 0.9 \
  --num-prompts 100 \
  --request-rate 0.2 \
  --burstiness 0.7 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 11-rate-sweep-0.2.json

# 0.3 req/s
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 4000 \
  --random-output-len 500 \
  --random-range-ratio 0.9 \
  --num-prompts 100 \
  --request-rate 0.3 \
  --burstiness 0.7 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 11-rate-sweep-0.3.json

# 0.5 req/s
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 4000 \
  --random-output-len 500 \
  --random-range-ratio 0.9 \
  --num-prompts 125 \
  --request-rate 0.5 \
  --burstiness 0.7 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 11-rate-sweep-0.5.json

# 0.7 req/s
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 4000 \
  --random-output-len 500 \
  --random-range-ratio 0.9 \
  --num-prompts 175 \
  --request-rate 0.7 \
  --burstiness 0.7 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 11-rate-sweep-0.7.json

# 1.0 req/s
docker exec vllm-bench vllm bench serve \
  --backend openai-chat \
  --base-url http://localhost:8000 \
  --endpoint /v1/chat/completions \
  --model google/gemma-4-31B-it \
  --tokenizer google/gemma-4-31B-it \
  --served-model-name gemma-4-31b \
  --dataset-name random \
  --random-input-len 4000 \
  --random-output-len 500 \
  --random-range-ratio 0.9 \
  --num-prompts 250 \
  --request-rate 1.0 \
  --burstiness 0.7 \
  --percentile-metrics ttft,tpot,itl,e2el \
  --metric-percentiles 50,90,95,99 \
  --seed 42 \
  --save-result \
  --result-dir /tmp \
  --result-filename 11-rate-sweep-1.0.json

Chat

Chat bij tien gelijktijdige verzoeken

Bij 1024 input- en 1024 outputtokens met tien gelijktijdige verzoeken meet ik gemiddeld 3,33 tokens/s per gebruiker. De gemiddelde wachttijd voor het eerste token is 6,39 seconden.

Lange context

Wachttijd bij 25k context

Bij 25000 inputtokens en 256 outputtokens met tien gelijktijdige verzoeken is de gemiddelde wachttijd voor het eerste token 194,42 seconden. Daarna genereert het model gemiddeld 1,33 tokens/s per gebruiker. De meting alleen toont niet of geheugen, promptverwerking of scheduling de oorzaak van vertraging is.

Piekbelasting

Verzoeken en wachttijd bij piekbelasting

De run verwerkt 0,08 verzoeken/s bij een ingestelde aankomstsnelheid van 1,5 verzoeken/s. 300 van de 300 verzoeken slagen. De p95-wachttijd voor het eerste token is 35,39 seconden.

Meetdekking

Welke metingen meetellen

11 van de 11 tests hebben een meting die volgens de huidige Arena-regels meetelt. Bij deze historische run is geen sanity-check vastgelegd. Dat bewijs ontbreekt, ook wanneer de snelheidsmeting volgens de huidige regels meetelt.

Uitleg