Alibaba 35B (3B active) params BF16 MoE

Qwen-3.6-35B-A3B

De BF16-baseline van het 35B-A3B-MoE, schoner referentiepunt zonder quantisatie-twijfel. Op chat haal je ongeveer de helft van wat de FP8-versie doet, op 25k context idem dito. De 3B active-parameters helpen, maar bandwidth-gebonden decode betaalt de volle BF16-prijs. 70 GB aan weights laat weinig over voor KV-cache, dus voor lange context wordt het krap. Goed startpunt voor accuracy-werk, voor productie pak je gewoon de FP8-variant.

70.7
Arena score
44
Throughput tok/s
70 GB
VRAM
9/9
Benches measured
Hugging Face → vLLM cu130-nightly DGX Spark, NVIDIA GB10, 128 GB unified memory Last measured 5 May 2026

The quality component of the Arena score. Not measured by me, from the vendor's official model cards. For cross-model comparison with a consistent eval harness, Artificial Analysis is a useful third party. The average of the three benchmarks feeds one-to-one into the Score formula (weighted heavier in Aggregate/Agent, lighter in Batch).

83.9
Avg
85.2
MMLU-Pro
86.0
GPQA-Diamond
80.4
HumanEval
Decode throughput · total t/s · c=10
BF16
1k ctx 83.0 t/s
8k ctx 64.0 t/s
4k+turn 80.0 t/s
25k ctx 27.0 t/s

5 closed-loop tests with llama-benchy and 4 open-loop tests with vllm bench serve. Per benchmark the tokens/sec (decode throughput) and TTFT p50. TTFT translates directly into UX feel, tps into capacity. Expand "view command" for the exact command.

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
8.4 t/s
TTFT · p50
1,78s
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
7.4 t/s
TTFT · p50
11,95s
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
9.9 t/s
TTFT · p50
730ms
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
4.8 t/s
TTFT · p50
39,37s
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
8.3 t/s
TTFT · p50
3,22s
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
20.8 t/s
TTFT · p50
3,10s
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
8.2 t/s
TTFT · p50
390ms
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
34.0 t/s
TTFT · p50
2,15s
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
3.8 t/s
TTFT · p50
741ms
50 prompts · seed 42
What works

Schoon referentiepunt zonder quant-twijfel

Geen vraag of edge-case-Python lijdt onder quantisatie. Voor accuracy-kritieke evals het schone vertrekpunt voordat je naar FP8 of NVFP4 stapt.

What broke

Bijna helft van FP8-snelheid

Chat 8.4 vs 14.9 t/s/user, 25k context 4.85 vs 8.1. Bandwidth-bound decode betaalt de volle BF16-prijs, ook al zijn maar 3B params actief.

What disappointed

70 GB weights op 128 GB unified

Laat circa 50 GB voor KV-cache. Voor 25k met c=10 zit je krap. FP8 (38 GB) of NVFP4 zou hier veel meer ademruimte geven.

What surprised

A3B helpt ook in BF16

Ondanks bandwidth-belasting houdt decode/user beter stand dan een 35B-dense in BF16 zou doen. Active-parameter winst is niet alleen een FP8-truc.

More numbers?
Read the full article.

Explanation

Esc