开源大语言模型领域的元老带来了好消息!Muse Glimmer 于今日发布,是 Meta 推出的全新多模态模型,尤其针对本地智能体(agentic)应用场景设计。该模型从 Muse 蒸馏而来,参数量为 300 亿(30B),并以 Apache 2.0 许可证发布,非常适合本地部署,以保护隐私、降低成本,或者单纯用于探索和开发。它面向注重隐私的应用场景,例如编程、文档分析、个人助理,以及类似 Claw 或 Hermes 的配置。
为了庆祝这一发布,我们与 Meta 合作,在 transformers、llama.cpp、vLLM、Inference Endpoints 及其他库中提供 day-0 支持。我们构建了一些有趣的应用,并在本文中分享我们的发现。
你可以在 Hugging Face Hub 上找到 Muse Glimmer。
基准测试
基准测试结果
分数均按照已发布的结果列出。粗体表示参与比较的模型中的最佳结果;↓ 表示数值越低越好。
| 类别 | 基准测试 | Muse Glimmer-30B | Gemma4-31B 高推理 | Qwen3.6-27B 思考模式 |
|---|---|---|---|---|
| 通用智能体 | MCP Atlas | 75.5 | 54.2 | 62.5 |
| 通用智能体 | DeepSearch QA | 74.6 | 61.7 | 71.1 |
| 通用智能体 | τ³-Banking | 23.5 | 15.1 | 16.7 |
| 通用智能体 | WildClawBench | 47.6 | 37.6 | 43.2 |
| 通用智能体 | GDPval-AA | 953 | 811 | 1141 |
| 通用智能体 | GAIA2 | 43.3 | 36.4 | 40.0 |
| 通用智能体 | SkillsBench(使用技能) | 44.3 | 32.4 | 46.6 |
| 通用智能体 | OSWorld-Verified | 65.9 | 58.5 | 75.6 |
| 智能体编程 | SWE-Bench Pro | 51.2 | 36.9 | 50.2 |
| 智能体编程 | SWE-Bench Verified | 76.0 | 66.6 | 77.2 |
| 智能体编程 | TerminalBench 2.1 | 51.7 | 43.4 | 60.7 |
| 智能体编程 | SciCode | 43.6 | 43.4 | 39.8 |
| 多模态 | Charxiv Reasoning | 78.8 | 77.7 | 78.4 |
| 多模态 | ScreenSpot Pro | 75.4 | 75.9 | 76.1 |
| 多模态 | OmniDocBench v1.5 | 75.8 | 72.5 | 77.8 |
| 多模态 | MMMU Pro | 74 | 73 | 75 |
| 安全性 | CI Memories | 违规率(↓):26.4 覆盖率:64.8 | 违规率(↓):12.1 覆盖率:53.0 | 违规率(↓):53.4 覆盖率:66.9 |
| 安全性 | Siren AgentDojo | 攻击成功率(↓):28.4 实用性:94.2 | 攻击成功率(↓):25.6 实用性:90.8 | 攻击成功率(↓):40.3 实用性:92.7 |
| 通用能力与推理 | IFBench | 77.0 | 76.0 | 70.8 |
| 通用能力与推理 | AIME 2026 | 94.7 | 89.2 | 94.1 |
| 通用能力与推理 | GPQA Diamond | 83.5 | 85.7 | 84.2 |
| 通用能力与推理 | Humanity’s Last Exam(纯文本,无工具) | 22.0 | 23.6 | 23.1 |
| 通用能力与推理 | AA-LCR | 80.0 | 68.3 | 73.3 |
| 通用能力与推理 | Beam 128K | 65.1 | 58.2 | 63.0 |
架构
Muse Glimmer 是一个由以下部分组成的稠密型 300 亿参数模型:
- 用于视觉的 20 亿参数 ViT 风格编码器(Perception Encoder)
- 280 亿参数文本解码器
除主 VLM 外,该模型还包含一个基于 DFlash 实现的推测解码草稿模型(speculative decoding drafter)。该模块为可选使用,能够以一定的内存开销为代价,大幅提升生成速度。我们发现,这一草稿模型尤其适合代码编写等结构化内容生成任务。
文本解码器
该语言模型采用了以下架构组件:
- 混合注意力(Hybrid attention): 交替使用三个滑动窗口层(窗口大小为 2,048 个 token,采用旋转位置嵌入),随后接一个使用全注意力和 NoPE(无位置嵌入)的层。因此,其模式为(SWA、SWA、SWA、Full),重复 13 次,共计 52 层。这使模型能够借助 RoPE 保留相对顺序和距离信息,同时通过 NoPE 在全局范围内保留信息。
- 门控分组查询注意力(Gated Grouped-Query Attention): 每个键值头由 16 个查询头共享,将 KV 缓存的内存占用降低 16 倍,并使生成过程更快、更低成本。
- 带额外查询缩放的 Q-K 归一化: 在计算注意力之前,Muse Glimmer 会对每个查询头和键头应用 RMS 归一化,以保持注意力 logits 的稳定性。随后,模型会将查询乘以一个缩放因子,从而在归一化后设定目标 logit 尺度。额外的查询缩放在 softmax 层面表现得类似于逆温度。
感知编码器
Muse Glimmer 使用一个图像编码器同时处理图像和视频。不同于其他 VLM 中相对较小的视觉编码器,这是一个规模较大的 20 亿参数 ViT 类模型,基于 Perception Encoder 架构设计。Meta 此前曾将 Perception Encoder 作为各种下游空间任务和多模态任务的骨干网络进行介绍。
该编码器将图像划分为形状为 2 帧 × 3 通道 × 14 × 14 的图像块,并通过线性层进行投影。随后,从可学习的位置表中插值得到绝对位置嵌入,并将其添加到这些嵌入中。之后,这些嵌入会被送入视觉塔,该视觉塔由 50 层和 GELU MLP 组成。与语言模型类似,其注意力模式由三个窗口注意力层后接一个全注意力层组成。在注意力层内部,模型会对查询和键应用二维 RoPE。
经过 Transformer 后,像素重排(pixel shuffle)会拼接相邻的 2×2 空间 token 组,在不丢弃通道信息的情况下,将图像 token 数量减少 4 倍。随后,合并后的特征会被投影到文本解码器的共享嵌入空间中。
视频会逐帧经过同一个编码器处理,每一帧都会被转换为图像块,其形状为 [batch, temporal groups, grid height, grid width, 2 frames, 3 channels, 14, 14]。处理器的目标采样率为每秒 2 帧,并将视频片段限制为最多 96 帧,均匀采样于整个视频之中。处理器会创建带时间戳的视频占位符,将文本与帧交错排列,例如 “Time: 0.0s <|video|> x N”,最终的视频嵌入会在最终投影层之前被替换。
Transformers
升级到最新版本的 transformers,才能使用 Muse Glimmer。
pip install --upgrade transformers accelerateMuse Glimmer 在 transformers 中提供了 day-0 支持,既支持主模型,也支持推测解码草稿模型。你可以使用 AutoModelForMultimodalLM 和 AutoProcessor 类来加载模型和处理器。
from transformers import AutoProcessor, AutoModelForMultimodalLM
MODEL_ID = "meta-models/Muse-Glimmer-30B"
processor = AutoProcessor.from_pretrained(MODEL_ID)model = AutoModelForMultimodalLM.from_pretrained( MODEL_ID, dtype="auto", device_map="auto")同一段代码无需修改即可在 NVIDIA(CUDA)、AMD(ROCm)和 Intel(XPU)GPU 上运行;device_map="auto" 会将模型加载到可用的加速器上。
纯文本推理
加载模型后,可以按如下方式对其进行纯文本推理。
from transformers import AutoProcessor, AutoModelForMultimodalLM
MODEL_ID = "meta-models/Muse-Glimmer-30B"
# 加载模型processor = AutoProcessor.from_pretrained(MODEL_ID)model = AutoModelForMultimodalLM.from_pretrained( MODEL_ID, dtype="auto", device_map="auto")
# 提示词messages = [ {"role": "user", "content": "Write a short joke about saving RAM."},]
# 处理输入inputs = processor.apply_chat_template( messages, t