Welcome Muse Spark Open: open-weight frontier multimodal mixture-of-experts model from Meta
Hugging Face's launch post for Meta's Muse Spark Open, an open-weight 816B-parameter mixture-of-experts model (about 42B active per token). It has 256 experts with 8 routed per token, a 1M-token context, and perception and audio encoders for image, video and audio input. The post gives the architecture details, BF16 and NVFP4 checkpoints, and run recipes for transformers, llama.cpp, SGLang, vLLM, MLX and Inference Endpoints. It also covers LoRA SFT of the full model with TRL on 64 H100s and agentic demos (Pi 3D asset generation, an OpenEnv browser agent, a voice-driven shopping agent).
What it claims
Meta's Muse Spark Open (meta-models/Muse-Spark-Open-816B-A42B, plus an -NVFP4 variant) is pitched as an agentic-coding model trained on real developer workflows such as multi-file refactors and long debugging sessions. The post calls it "the most capable US open-weights model to date". It gives no benchmark numbers to support that claim or the coding focus. The model shares its tokenizer and vocabulary with Muse Glimmer, the small dense model in the same series.
How it works
The language model has the following structure:
- 62 layers with hidden size 8192.
- Grouped-query attention with 128 query heads, 16 KV heads and 64-dimension heads.
- QK-norm, an attention output gate and output norm.
- A learned residual gate in place of a plain residual sum.
- Each expert is an FFN of 8192→4096→8192 with its own output norm. Experts hold about 97% of all parameters.
- Untied input embedding and output layer, about 1.66B parameters each.
The perception encoder has 1.8B parameters, 50 layers and 14×14 patches. It uses full attention on every 4th layer and the last layer, and sparse attention elsewhere. Video runs through the same encoder.
The audio encoder is a convolutional pyramid with patch sizes [16, 6, 5, 4]. It emits one token per 80 ms, or 12.5 tokens/s, so 10 s of audio costs 125 tokens.
The chat template is channel-based Harmony, as used by gpt-oss:
to=selfcarries reasoning.commentarycarries user-visible text between tool calls.to=usercarries the final answer.to=<tool>carries tool calls, with XML<atem:invoke>bodies.
Sizing facts that drive deployment
- The BF16 checkpoint is about 1.5 TB. All 256 experts must be resident even though only about 42B parameters run per token.
- The KV cache costs about 250 KB per token in BF16, which is about 266 GB at the full 1M context. Image, video and audio tokens share that window.
- Tested hardware per runtime:
| Runtime | Checkpoint | Hardware | Context | Modalities |
|---|---|---|---|---|
| transformers | BF16 | 4×8 H200, TP=32 | – | all |
| transformers | NVFP4 | 1 B200 node | – | all |
| SGLang | NVFP4 | 4× GB300 | – | text/image/audio/video |
| vLLM plugin | NVFP4 (Blackwell only) | TP=4 | 128K as configured | text + image only |
| Inference Endpoints | NVFP4 | 8× RTX Pro 6000 / 8× H200 | 131K / 1M | – |
| llama.cpp Q2_K | GGUF | M3 Ultra 512 GB | – | 304 GB used, 18 tok/s |
| oMLX oQ3e | MLX | M3 Ultra 512 GB | – | 344 GB, 225 tok/s prefill, 21 tok/s gen (1024-token prompt) |
How to use it
llama serve -hf ggml-org/Muse-Spark-Open-816B-A42B-GGUF:Q2_Khf endpoints catalog deploy --repo meta-models/Muse-Spark-Open-816B-A42B-NVFP4 --name muse-sparkmlx_lm.generate --model mlx-community/Muse-Spark-Open-816B-A42B-oQ3e \
--prompt "Explain convolutional networks like I am 5" \
--max-tokens 5000In transformers, load with AutoModelForMultimodalLM and DistributedConfig(tp_size=..., ep_size=...). Set reasoning through apply_chat_template(..., reasoning_effort=...):
- Levels are
low/medium/high/xhigh, which map to 16/64/256/512. - The default is xhigh.
- You can also set a numeric level with
Reasoning strength: Nin the system prompt.
Audio input must be mono 24 kHz, padded to multiples of 1,920 samples. apply_chat_template handles this for you and needs torchcodec, librosa or torchaudio installed. Video is sampled at 2 FPS by default, capped at 96 frames, and the rate can be raised via processor.video_processor.fps. Pass load_audio_from_video=True and return_metadata=True to include a video's soundtrack.
Fine-tuning: the post gives a TRL SFTTrainer recipe that trains LoRA (r=16, alpha=32) on q/k/v/o projections only, with the experts frozen.
- Parallelism:
DistributedConfig(fsdp_size=64, ep_size=8)across 8×8 H100s. - Data: 500k rows of
allenai/tulu-3-sft-mixture, packed to 2048 tokens. - Cost: 500 steps took about 2 h at about 8,000 tok/s.
- Result: token accuracy rose from 72% to 84% and loss fell from 1.26 to 0.57.
Limits
- Reasoning cannot be turned off. The default xhigh burns tokens, so set
lowfor easy tasks. - The vLLM path supports text and image only, needs Blackwell, and is a reference plugin (
VLLM_PLUGINS=musespark1x_models,ptq_nvfp4), not upstream. The mlx-lm support sits in an unmerged PR and covers the language model only. - The fine-tuning recipe uses
save_only_model=Truebecause the trainer cannot resume a model sharded at load time. Runs are not resumable. Experts were never trained in the recipe. - The 2-bit quant "requires a bit more steering", per the 3D demo.
- NVFP4 is described as having "negligible loss in accuracy", but no figures are given.
- No licence or usage terms are stated on the page. Check the model card before adopting.
- Snippets are inconsistent, so verify them against the repos before relying on them:
- The llama.cpp WebUI is said to be on port 9931, but the curl examples hit 8080.
- The tool-calling example passes
reasoning_strengthinstead ofreasoning_effort, and parses an undefinedcompletionvariable. - The Endpoints example sends
enable_thinking: false, which contradicts the statement that reasoning can't be disabled. - The knowledge cutoff in the template is 2026-01-04.
Organisations named here
- Meta
- Hugging Face
- NVIDIA
- OpenAI
- ggml-org
- Ai2
- allenai/tulu-3-sft-mixture
Technologies named here
- Transformers
- Muse Spark Open
- llama.cpp
- Muse Spark Open NVFP4
- Muse Glimmer
- vLLM
- SGLang
- gpt-oss
- MLX / mlx-lm
- oMLX
- Hugging Face Inference Endpoints
- TRL
- peft
- FSDP2
- torchrun
- trackio
- Datasets
- Pi coding agent
- three.js
- OpenEnv
- Hugging Face Sandboxes
- helium
- selenium
- Hugging Face Spaces
- hf CLI
- MLX
- GGUF
- LoRA
- PyTorch
- Hugging Face
- pi
- Vision language model
- Muse
Techniques named here
- Mixture of experts
- Grouped Query Attention
- NVFP4 quantization
- LoRA fine-tuning on attention layers
- Expert parallelism with FSDP
- Sequence packing
- Reasoning effort control
- Harmony channel-based chat template
- Video frame sampling
- Audio tokenization
- Imatrix-calibrated quantization
- Screenshot-only computer-use agent loop
Related in models


