vLLM 首日支持 Meta Muse Spark Open
Day 0 support for Muse Spark Open on vLLM
vLLM 宣布与 Meta Superintelligence Labs 合作,在发布当天为开源权重稀疏 MoE 模型 Muse Spark Open 提供 Day 0 支持。
vLLM 在发布当天给出 Muse Spark Open 的部署命令与并行、量化、投机解码细节,可据此评估 1M 上下文 MoE 模型的落地成本。

我们很高兴与 Meta Superintelligence Labs 合作,在 Day 0 就将 Muse Spark Open 引入 vLLM。Muse Spark Open 是一个开放权重的稀疏专家混合(MoE)模型,专为长时程智能体编码工作流而构建。它是迄今为止能力最强的美国开放权重模型,也是 Muse Glimmer 30B 蒸馏自的模型。
亮点
- 架构:总参数 816B,每 token 激活 42B,上下文窗口 1M。
- 量化:Meta 以 BF16 和 NVFP4 两种格式发布了该模型。MXFP4 权重由 AMD 发布。
- 多模态:通过与 Muse Glimmer 相同的 Perception Encoder 实现原生图像和视频感知,并额外支持音频。
- 并行:在 Nvidia 和 AMD 上均支持张量并行和流水线并行。在 Nvidia 上支持 EP、TEP、DEP 和 PD 分离。TPU 上也提供初步支持。
- 投机解码:我们训练了一个 DSpark 草稿模型,在 CUDA 和 ROCm 上均受支持,可加速模型性能,已在 SPEED bench 上测试。
用法
两家厂商均提供预构建镜像:
- Nvidia:vllm/vllm-openai:muse-spark-open
- AMD:vllm/vllm-openai-rocm:muse-spark-open
请注意,只有在代码(PR #61879)经过审查并合并后,该模型才会在 nightly PyPI wheel 中提供,这通常需要大约一周时间。
# Rust frontend is recommended
export VLLM_USE_RUST_FRONTEND=1
vllm serve meta-models/Muse-Spark-Open-816B-A42B-NVFP4 \
--tensor-parallel-size 8 \
--enable-expert-parallel \
--max-model-len 1048576 \
--reasoning-parser muse \
--tool-call-parser muse \
--enable-auto-tool-choice \
--speculative-config '{"method":"dspark","model": "Inferact/Muse-Spark-Open-DSpark","num_speculative_tokens":7,"draft_sample_method":"probabilistic","rejection_sample_method":"block","enable_adaptive_verification":true}'要以纯文本方式使用该模型:
curl http://localhost:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "meta-models/Muse-Spark-Open-816B-A42B-NVFP4",
"messages": [{"role": "user", "content": "Refactor this module."}],
"reasoning_effort": "xhigh"
}'对于多模态感知:
curl http://localhost:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "meta-models/Muse-Spark-Open-816B-A42B",
"messages": [{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "https://example.com/screenshot.png"}},
{"type": "video_url", "video_url": {"url": "https://example.com/demo.mp4"}},
{"type": "audio_url", "audio_url": {"url": "https://example.com/clip.wav"}},
{"type": "text", "text": "What is happening here, and when?"}
]}]
}'
实现细节
模型架构

Muse Spark Open 是一个专家混合模型,包含文本解码器在内的总参数为 816B,外加一个 2B 视觉编码器和一个小的音频编码器。解码器有 62 层,每一层都是专家混合层。以下是权重的分布:
| 部分 | 大小 |
|---|---|
| 每层 256 个专家 | 799 B |
| 注意力 | 13.5 B |
| MoE 潜在投影 | 4.2 B |
| 嵌入和输出层 | 3.3 B |
| 视觉塔(独立) | 1.9 B |
该模型架构与 Muse Glimmer 相似。对于还没用过 Muse Glimmer 的人,这个模型架构中有几处值得仔细看看。

三明治归一化。大多数解码器在每个块之前放置一个归一化层,得到 x + F(norm(x))。Muse Spark Open 与 Muse Glimmer 类似,在前后各放置一个,就像三明治的两片面包夹着中间的块,得到 x + post_norm(F(norm(x)))

潜在 MoE。每个专家混合(MoE)层都带有两个额外的矩阵,由该层中所有 256 个专家共享。代码称它们为池化器和反池化器,但两者都不是通常意义上的池化,而是用于压缩和扩展维度的学习投影。池化器是一个 8192 × 4096 的矩阵,在 token 到达专家之前将其宽度减半;而反池化器随后恢复完整宽度。因此专家完全在 4096 而非 8192 的维度上工作,这实际上将两个专家投影层所需的参数量减半。

混合注意力。 各层在完整注意力和滑动窗口注意力(SWA)之间以 4 为周期交替,其中三层关注 2048 个 token 的窗口,第四层关注整个上下文。该周期锚定在堆栈末尾,因此最后一层始终是完整注意力层。在 62 层中,这给出了 46 个窄层和 16 个宽层,其中窄层只保留最近的 KV。在 1M token 时,这将缓存降至全完整注意力所需的大约 ¼。这正是 1M 上下文长度变得可负担的原因。
视觉编码器。 Muse Spark Open 使用与 Muse Glimmer 相同的 Perception Encoder,这是一个 2B 参数的塔,以图像的原生分辨率读取图像,而不是将其调整为正方形。视频通过同一编码器处理:帧在加载时被采样为一系列采样的视频帧,并在提示中对时间戳进行 token 化。
音频编码器。 音频以 24 kHz 的原始波形读取,每 1920 个采样,即 80ms,通过一系列变换成为一个 token。整个音频编码器仅有 118M 参数。请注意,视频的音轨不会被处理。要让模型同时获得一个片段的画面和声音,请将视频和提取的音频作为同一请求中的两个独立内容部分发送。
DSpark
为了在 vLLM 上加速 Muse Spark Open 推理,我们使用 DSpark 训练了一个推测器,这是一种推测解码算法,使用块扩散在一次传递中提出最多七个草稿 token。基于置信度的调度有助于在大批量大小下仍保持显著加速,而推测解码在大批量大小下传统上收益递减,如下方结果所示。

我们的推测器还使用 Muse Spark Open 滑动窗口注意力来保持草稿轻量,即使在 1M token 上下文下也是如此。这些选择共同使其非常适合跨越广泛批量大小和上下文长度的生产工作负载。
要启用它,请在服务器启动时添加以下内容:
--speculative-config '{"method":"dspark","model": "Inferact/Muse-Spark-Open-DSpark","num_speculative_tokens":7,"draft_sample_method":"probabilistic","rejection_sample_method":"block","enable_adaptive_verification":true}'Nvidia
Nvidia 团队通过融合归一化、门控和残差内核;融合 MoE 最终化与张量并行通信和 RMSNorm;新的低延迟 BF16 GEMM 实现并减少编译开销;TEP pooler/unpooler 分片与融合 MNNVL 集合通信;由 norm 的 FP32 输出馈送的 TF32 路由器 GEMM;以及数据移动、硬件支持和运行时可靠性方面的改进,提升了 FlashInfer 和 vLLM 上的 Muse Spark Open 推理。
AMD
感谢 AMD 团队,我们还在 AMD Instinct™ MI355X GPU 上支持了该模型,提供 FP8 和 MXFP4 量化格式,从而提供改进的推理性能和部署效率。请注意,ROCm 目前同时支持张量并行和流水线并行。
TPU
我们在 TorchTPU 之上添加了对 TPU 上 Muse Spark Open 的支持。请联系我们或 Google 获取代码访问权限。我们还为 Muse Spark Open 构建了 megakernels。使用 DSpark 推测解码(接受长度 = 6),它们在 4 个 TPU v7 芯片上达到超过 650 tokens/秒,在 8 个芯片上超过 960 tokens/秒。不使用推测解码时,它们仍分别提供超过 270 和 350 tokens/秒。
vLLM 中的强化学习
vLLM 从第 0 天起还支持在 Muse Spark Open 上进行 LoRA RL,作为 rollout 引擎,并以 Verl FSDP2 作为训练器。vLLM 提供原始 NVFP4 checkpoint,并在其上应用 LoRA adapter。训练器在相同权重的 BF16 反量化版本上运行,并且只更新 adapter(rank 32,alpha 64),其覆盖 attention、MoE latent projections 以及所有 routed experts。它还会重放 rollout 的 MoE routing(R3),并且每一步之后只将 adapter 同步回 vLLM。
我们在 16 张 GB300 GPU 上使用 GRPO 在 DAPO-Math-17K 上训练了 150 步,每一步对 32 个 prompt 各采样 8 个响应,每个响应最多 4K tokens。AIME-2024 上的准确率(mean@8)从训练前的 0.56 提升到运行结束时的 0.85。在整个运行过程中,训练器与 vLLM 的 log-probabilities 之间的 k3 KL 保持在 2×10⁻⁴ 附近。更多细节见 https://github.com/verl-project/verl/pull/8257。在 vLLM 生态中,Titan RL 也使用 vLLM 作为其 rollout 引擎,以提供 day-0 RL 支持。

致谢
我们衷心感谢 Meta Superintelligence Labs 的团队和 vLLM 社区,感谢他们在 vLLM 上为 Muse Spark Open 提供 Day 0 支持方面的紧密合作。我们也感谢 Inferact 训练 DSpark speculator 和 TPU 集成,同时感谢 NVIDIA 和 AMD 提供关键的硬件优化。
贡献者:
- Inferact:Jie Li、Zifeng Mo、Zixi Qi、Jeff Ma、Ziqi Zhao、Dakai An、Ao Shen
- Meta:Beto de Paola、Sidhartha Reddy Potu
- Nvidia:Cyrus Chang、Duncan Moss、Marek Pikulski、Seong Hee Lee
- AMD:Andy Luo、Hongxia Yang、Haichen Zhang
来源:vLLM Blog · vllm.ai