13
Alibaba9B paramsBF16Dense

Qwen-3.5-9B

De beste kwaliteit per parameter in deze arena, en dat betaal je in doorvoer.

Gemeten op 2026-08-07 met vLLM v0.26.0. In de chattest met tien gelijktijdige verzoeken haalt dit profiel 12,51 tokens/s per gebruiker, met gemiddeld 1,82 seconden tot het eerste token. Bij 25k context stijgt die gemiddelde wachttijd naar 37,12 seconden. Deze runs meten snelheid en wachttijd, niet de kwaliteit van de antwoorden.

62,6
Bruikbaarheidsscore (indicatief)
84
Throughput tok/s
18 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 7 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
82,5
MMLU-Pro
81,7
GPQA-Diamond
65,6
LiveCodeBench v6

Decode throughput · totaal t/s · c=10

■ BF16
1k ctx BF16123 t/s
8k ctx BF1684 t/s
4k+turn BF16113 t/s
25k ctx BF1630 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
12,5t/s
TTFT · mean
1,82s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model qwen3.5-9b-bf16 \
  --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
10,3t/s
TTFT · mean
11,33s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model qwen3.5-9b-bf16 \
  --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
12,6t/s
TTFT · mean
637ms
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model qwen3.5-9b-bf16 \
  --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
12,1t/s
TTFT · mean
3,13s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model qwen3.5-9b-bf16 \
  --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
5,9t/s
TTFT · mean
37,12s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model qwen3.5-9b-bf16 \
  --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
3,8t/s
TTFT · mean
71,44s
3 repeats · mean ± stddevview command →hide command ↑
uvx llama-benchy==0.4.0 \
  --base-url http://localhost:8000/v1 \
  --model qwen3.5-9b-bf16 \
  --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
37,6t/s
TTFT · p50
1,87s
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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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
9,2t/s
TTFT · p50
251ms
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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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
6,1t/s
TTFT · p50
531ms
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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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
49,3t/s
TTFT · p50
1,65s
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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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
0,24req/s
Req/s · TTFT < 10s
0,47req/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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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 Qwen/Qwen3.5-9B \
  --tokenizer Qwen/Qwen3.5-9B \
  --served-model-name qwen3.5-9b-bf16 \
  --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 12,51 tokens/s per gebruiker. De gemiddelde wachttijd voor het eerste token is 1,82 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 37,12 seconden. Daarna genereert het model gemiddeld 5,91 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,32 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 5,59 seconden.

Meetdekking

Welke metingen meetellen

11 van de 11 tests hebben een meting die volgens de huidige Arena-regels meetelt. Er is output voor de sanity-check opgeslagen, maar die is nog niet beoordeeld. De huidige telling betekent dus niet dat die controle is geslaagd.

Uitleg