vLLM Day 0 支持 Meta 开源 MoE 模型 Muse Spark Open
Day 0 support for Muse Spark Open on vLLM
vLLM 与 Meta Superintelligence Labs 合作,为开源 MoE 模型 Muse Spark Open 提供 Day 0 支持。该模型总参数 816B、每 token 激活 42B、上下文窗口 1M,面向长程智能体编码工作流,采用 Sandwich normalization、Latent MoE 和滑动窗口混合注意力,原生支持图像、视频和音频感知。
原文给出架构参数、量化格式、多硬件部署和 LoRA RL 细节,读者可据此评估该开源 MoE 模型的实际部署路径。
我们很高兴能与 Meta Superintelligence Labs 合作,在 vLLM 上第 0 天就支持 Muse Spark Open。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 维度上工作,这实际上将两个专家投影层所需的参数量减半。

混合注意力。 各层以 4 为周期交替使用全注意力和滑动窗口注意力(SWA),其中三层关注 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 团队通过融合归一化、门控和残差内核,改进了 Muse Spark Open 在 FlashInfer 和 vLLM 上的推理;融合 MoE 最终化与张量并行通信和 RMSNorm;一种新的低延迟 BF16 GEMM 实现并减少了编译开销;带融合 MNNVL 集合通信的 TEP pooler/unpooler 分片;由归一化的 FP32 输出馈入的 TF32 路由器 GEMM;以及在数据移动、硬件支持和运行时可靠性方面的改进。
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/sec,在 8 个芯片上超过 960 tokens/sec。不使用推测解码时,它们仍分别提供超过 270 和 350 tokens/sec 的性能。
vLLM 中的强化学习
vLLM 从第 0 天起还支持在 Muse Spark Open 上进行 LoRA RL,作为 rollout 引擎,并以 Verl FSDP2 作为训练器。vLLM 提供原始 NVFP4 checkpoint,并在其上应用 LoRA adapter。训练器在相同权重的 BF16 反量化版本上运行,并且只更新 adapter(rank 32,alpha 64),其覆盖注意力、MoE latent 投影以及所有 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 官方博客 · vllm.ai