Recommended settings

The settings that most affect Muse Spark Open's output quality and throughput on a self-hosted server. Sampling, reasoning strength, and streaming are per-request, so tune them against a running server. Parallelism and context length are fixed by the serve command, so decide those before you launch.

Sampling

The recommended defaults are temperature 1.0, top_p 1.0, and do_sample true, which suit most use cases. The evaluation results in the Muse Spark Open model card(opens in new tab) were measured at these values with xhigh reasoning strength.

Reasoning strength

Muse Spark Open reasons before it answers. Reasoning strength sets how much it reasons, and it's the single biggest lever on both answer quality and token spend. A server started with the muse reasoning parser, such as SGLang or vLLM, returns the reasoning in a separate field from the answer.

On the request, reasoning_effort takes a level name. The open-weight chat template turns it into the numeric strength that the model reads from the system block:

reasoning_effortRendered strengthUse it for
low8Classification, extraction, straightforward questions, and short tool loops
medium32General agentic work
high256Multi-step reasoning, hard debugging, and long tool loops
xhigh512 (default)Problems where depth matters more than latency

The default is xhigh, so set reasoning_effort explicitly when you want shorter reasoning. Lower strength reduces generated reasoning tokens and latency.

Context length

Muse Spark Open carries a 1,048,576-token context window. Of its 62 decoder layers, 46 use sliding-window attention over the most recent 2,048 tokens and 16 use full attention. Only the full-attention layers keep a KV cache for the whole context, so KV memory grows with context length on those 16 layers and stays fixed on the rest. Set the server's maximum context length (--context-length in SGLang, --max-model-len in vLLM) to what your workload needs rather than the full window.

Parallelism

Muse Spark Open is a mixture-of-experts model, so expert weights dominate the footprint. Expert parallelism spreads those experts across ranks, and it's what makes the model fit on a given number of GPUs.

The serving recipes assume B300 GPUs.

CheckpointTensor parallelExpert parallelGPUs
BF16888 × B300
NVFP4444 × B300

Parser flags:

  • SGLang: --reasoning-parser muse --tool-call-parser muse
  • vLLM: --reasoning-parser muse --tool-call-parser muse --enable-auto-tool-choice
  • TensorRT-LLM: --reasoning_parser musespark --tool_parser musespark

Stop tokens

Muse Spark Open ends a finished turn with <|eot|>. It ends a message that continues the turn with <|eom|>.

TokenIDRole
<|begin_of_text|>200000bos_token_id
<|end_of_text|>200001End of text, in eos_token_id
<|eom|>200007Ends a message while the turn continues, such as reasoning, commentary, or a tool call followed by another call. Not in eos_token_id
<|eot|>200008Ends the turn, in eos_token_id
<|finetune_right_pad|>200018pad_token_id

eos_token_id is [200001, 200008]. SGLang reads the same pair from the checkpoint's config.json and generation_config.json, so no explicit flag is needed there.

Stream long generations

Muse Spark Open produces long reasoning traces at higher strengths. Request streaming (stream: true) for reasoning workloads so a long generation doesn't hit a client or proxy timeout.

Next steps

Apply these settings in your runtime's serve command. See Run inference for SGLang, vLLM, TensorRT-LLM, and the other runtimes.