Hi, can anyone help me with tuning my model? I see so many people here posting about larger models at higher tokens per second. I am currently getting 2 - 3 tokens per second with my Spark setup. Here is my setup:
You’re getting low speed because Llama 70b has 70b active parameters. The other large models that you see people running are MoE models that have more total parameters, but only a small number of parameters activate for each token. GPT-OSS 120B has 120B total parameters, but it only activates about 5B parameters per token since it is a MoE, not a dense model.
If you are willing to use llama-server, it is possible to get much better performance out of Llama 70B by using what is called a draft model, where it uses a small model to predict tokens, and then the big model verifies those. Draft models do not affect output quality, because the big model is ultimately in charge of every output token, but draft models can speed things up.
I don’t work for Nvidia, so I have no clue what their playbooks do. Either way, I strongly discourage using Llama 3.3 70B. It is not a useful model in 2026.
GPT-OSS-120B is a safe starting place, as it is a much better, much more well-rounded model, and it is very well supported. You could also look into Nemotron-3-Nano, Qwen3-Next, Qwen3-Coder-Next, GLM-4.7-Flash, Step-3.5-Flash, and MiniMax-M2.5, depending on exactly what you need.
Will 120b run on a Spark Mini Desktop? If my 70b models are doing 2 to 3 tokens per second, wont OSS 120b run worse? Willing to try this and maybe do a lower Quant of it.
As I said, it only activates about 5B parameters for every token, which is a lot less than 70B. So, yes, it will run, and it will run much, much faster. The native quant is 4-bit, so it is already a compact model.
~3 tok/s on dense 70B FP8 at batch 1 is the expected ceiling on a GB10, no misconfig there. Decode reads all weights once per token, so max tok/s ≈ bandwidth ÷ bytes per token → 273 GB/s ÷ ~70 GB ≈ 3.9 (~2.7–3 real). Prefill is fine because it’s compute-bound, which the Spark has plenty of.
The MoE suggestions above are right: decode cost is active params, not total. Dense 70B reads ~70 GB/token; gpt-oss-120b activates ~5B, so it reads a few GB/token and flies. Other levers, best first: harder quant (Q4 70B ~40 GB → ~6–7 tok/s), speculative decoding (NVIDIA Spark playbook), and batching (one weight read serves the whole batch).
It really comes down to workload shape:
Long input → short output (RAG, summarization, extraction, long-context Q&A) — prefill-bound, so bandwidth barely matters. Spark is good here
Short input → long output, single user (interactive chat, long-form generation), decode-bound, this is what you’re hitting. Spark’s worst case.
High concurrency / batched (serving many users, batch jobs) — one weight read serves the whole batch, so aggregate throughput scales. Spark == good.
Fast single-user, long-output chat on a dense 70B is the Spark’s worst case, go MoE/quant/spec-decoding to work around it.