* segment sizes marked with an asterisk are estimates pending a measured run
Estimated per-node footprint, weights + KV sharded across the Spark (tensor parallel). Overhead ~8 GB/node; KV at FP16.
one MoE layer · 256 experts, 8 fire per token
each expert ≈ 9M params
resident: 48 MoE layers × 256 experts × 9M ≈ 116.0B
active/token: 48 × 8 × 9M ≈ 3.6B experts
+ 6.6B always-on dense (attention, embeddings, shared stack) = 10.2B active
Recipes (all recipes)
Worked deployments that run this model on DGX Spark — each shows how it fills each node's unified memory.
Optimize
123B params, ~245 GB at bfloat16 — doesn't fit natively, but ~61 GB at 4-bit does.
Make it fit
Get the weights (and headroom for KV) inside the 128 GB pool — the hard gate.
Quantize to 4-bit
At 245 GB native it doesn't fit the 110 GB budget; 4-bit weight-only quantization gets it to ~61 GB (params include vision/audio towers).
245 GB → ~61 GB
Make it fast
Once it fits: fewer bytes per token and fewer decode steps against 273 GB/s.
Add a speculative decoder
Decode is bandwidth-bound at ~53.4 tok/s ceiling; a trained EAGLE-style draft multiplies tokens per weight-read.
Prune experts for speed
Fewer experts ⇒ smaller working set ⇒ better cache/page behavior, even when it already fits.
Tame the KV cache
At 262144 tokens the KV cache alone is ~26 GB at FP16; quantize or evict.
Make it yours
Change what the model does — adapt, edit, or steer it — independent of size.
Fine-tune it
LoRA/QLoRA adapts behavior on one Spark without touching the base weights.
Edit or steer it
One-shot weight math — no gradients, no corpus.