Google 31B params BF16 Dense

Gemma-4-31B-it

Dense 31B in BF16 op DGX Spark betaalt zijn breedte direct. Single-user op 4k context blijft net bruikbaar, maar bij c=10 zakt decode naar 3.4 t/s/user en 25k context tikt op 177 sec TTFT. Onder de rustige kantoor-baseline klimt de queue naar 168 concurrente requests en TTFT mean naar 204 seconden. Voor deze hardware is dense 31B de verkeerde architectuur, een MoE als de 26B-A4B doet vergelijkbaar werk drie tot vier keer sneller.

66.4
Arena score
12
Throughput tok/s
62 GB
VRAM
9/9
Benches mesurés
Hugging Face → vLLM v0.20.1 DGX Spark, NVIDIA GB10, 128 GB unified memory Dernière mesure 6 mai 2026

La composante quality de l'Arena score. Pas mesurée par moi, issue des model cards officielles du vendor. Pour une comparaison cross-model avec un eval harness cohérent, Artificial Analysis est un tiers utile. La moyenne des trois benchmarks entre une à une dans la formule du Score (pondérée plus lourd en Aggregate/Agent, plus léger en Batch).

80.7
Avg
82.6
MMLU-Pro
82.3
GPQA-Diamond
77.1
HumanEval
Decode throughput · total t/s · c=10
BF16
1k ctx 20.0 t/s
8k ctx 19.0 t/s
4k+turn 22.0 t/s
25k ctx 7.0 t/s

5 tests closed-loop avec llama-benchy et 4 tests open-loop avec vllm bench serve. Par benchmark les tokens/sec (decode throughput) et le TTFT p50. Le TTFT se traduit directement en ressenti UX, les tps en capacité. Déplie "view command" pour la commande exacte.

01 · llama-benchy closed-loop

Chat

Korte prompt, lang antwoord. De vorm die als normale chat moet aanvoelen, TTFT bepaalt of het "snappy" is.

pp (prompt) 1024 tg (gen) 1024 depth 0 concurrency 10 runs 3
tokens/sec
3.4 t/s
TTFT · p50
7,19s
3 runs · seed 42
02 · llama-benchy closed-loop

RAG · 8k context

Middelgrote context, een paar documentchunks met antwoord van normale lengte. Toont prefill-kosten zonder de muur te raken.

pp (prompt) 8192 tg (gen) 512 depth 0 concurrency 10 runs 3
tokens/sec
2.7 t/s
TTFT · p50
44,19s
3 runs · seed 42
03 · llama-benchy closed-loop

Lange output / agents

Korte instructie, veel output. Code-generation, rapporten of gestructureerde agent-output. Stress-test voor decode throughput.

pp (prompt) 256 tg (gen) 4096 depth 0 concurrency 10 runs 3
tokens/sec
3.5 t/s
TTFT · p50
2,09s
3 runs · seed 42
04 · llama-benchy closed-loop

Grote context · 25k

Stress-test met grote prompts. Niet per se chatmateriaal, wel exact waar de prefill-muur zichtbaar wordt en TTFT instort.

pp (prompt) 25000 tg (gen) 256 depth 0 concurrency 10 runs 3
tokens/sec
1.4 t/s
TTFT · p50
177,23s
3 runs · seed 42
05 · llama-benchy closed-loop

Multi-turn · kantoorwerk

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

pp (prompt) 2048 tg (gen) 512 depth 4 concurrency 10 runs 3
tokens/sec
3.2 t/s
TTFT · p50
11,76s
3 runs · seed 42
06 · vllm bench serve open-loop

Realistische kantoor-baseline

Random dataset · 4000 tokens in, 500 tokens uit · request-rate 0.3, burstiness 0.7. Een rustig kantoor.

dataset random rate (req/s) 0,30 burstiness 0,7 prompts 200
tokens/sec
3.6 t/s
TTFT · p50
164,38s
200 prompts · seed 42
07 · vllm bench serve open-loop

Echte gesprekken · ShareGPT

ShareGPT V3 · gemiddeld 228 tokens per turn · natuurlijk variërend per gesprek. Wat real users doen, niet een synthetische random distributie.

dataset sharegpt v3 rate (req/s) 0,30 burstiness 0,7 prompts 250
tokens/sec
3.5 t/s
TTFT · p50
903ms
250 prompts · seed 42
08 · vllm bench serve open-loop

Maandagochtend-piek

Random · 4000 in / 500 uit · request-rate 1.5 req/s, burstiness 1.0, max 25 parallel. Wanneer iedereen tegelijk inlogt, zien we de queue groeien?

dataset random rate (req/s) 1,50 burstiness 1,0 prompts 300 max parallel 25
tokens/sec
14.5 t/s
TTFT · p50
4,97s
300 prompts · seed 42
09 · vllm bench serve open-loop

Reasoning workload

Lange chain-of-thought outputs · 1k in / 4k uit · trage rate (0.2 req/s) want elke request kost veel decode-budget. Test of TTFT stabiel blijft.

dataset random rate (req/s) 0,20 burstiness 1,0 prompts 50
tokens/sec
1.9 t/s
TTFT · p50
1,85s
50 prompts · seed 42
Ce qui marche

Single-user 4k context blijft net bruikbaar

Bij c=1 op 4k context: 3.7 t/s/user decode, TTFT 3.9 sec. Niet snel, maar bruikbaar voor één gebruiker met korte prompts. Daarboven valt het hard tegen.

Ce qui a cassé

Office-baseline tikt op 200+ sec TTFT

Onder de rustige kantoor-workload (0.3 rps Poisson) klimt de queue naar 168 concurrente requests, TTFT mean 204 sec, P99 boven 8 minuten. Voor productie-inzet niet bruikbaar.

Ce qui a déçu

25k context is een non-starter

TTFT mean 177 sec bij c=10, stddev 90 sec. Met 10 concurrent requests à 25k tokens prefill loopt de queue uren achter. De prefill-muur staat hier al bij c=5.

Ce qui a surpris

62 GB weights laten KV-cache krap

Dense BF16 vreet geheugen. Op 128 GB unified blijft circa 55 GB voor KV-cache, en daarmee zit de scheduler met c=10 op 25k krap. Op deze Spark is dit duidelijk een MoE-hardware, niet een dense-hardware.

Plus de chiffres ?
Lis l'article complet.

Explication

Esc