跳到正文
原文
Hugging Face Blog·· 2025-04-05精选AI 评分87

Llama 4 Maverick 与 Scout 上线 Hugging Face,两款 MoE 多模态模型开放权重

Welcome Llama 4 Maverick & Scout on HF Mirror

AI 导读

Meta 发布 Llama 4 Maverick(约 400B 总参数、17B 激活)和 Llama 4 Scout(约 109B 总参数、17B 激活)两款原生多模态 MoE 模型,权重已上线 Hugging Face 的 meta-llama 组织,含 base 与 instruct 版本,需先接受 Llama 4 社区许可协议。

推荐理由

Meta 同日发布 Llama 4 Maverick 与 Scout 两款 MoE 多模态模型,并给出架构细节与 Hugging Face 侧集成方式。

正文 · AI 翻译

我们非常激动地欢迎 Meta 的下一代大语言模型加入 HF Mirror Hub:Llama 4 Maverick(约 400B)和Llama 4 Scout(约 109B)!🤗 两者都是具有 17B 活跃参数的混合专家(MoE)模型。

这些强大的原生多模态模型于今日发布,标志着一次重大飞跃。我们与 Meta 紧密合作,确保无缝集成到 HF Mirror 生态系统中,包括从第一天起就支持 transformers 和 TGI。

这只是我们与 Llama 4 旅程的开始。在接下来的几天里,我们将继续与社区合作,使用 Maverick 和 Scout 构建出色的模型、数据集和应用!🔥

什么是 Llama 4?

由 Meta 开发的 Llama 4 引入了新的自回归混合专家(MoE)架构。这一代包括两个模型:

  • 功能强大的Llama 4 Maverick 拥有 17B 活跃参数,总参数约 400B,具有 128 个专家。
  • 高效的Llama 4 Scout 同样拥有 17B 活跃参数,总参数约 109B,仅使用 16 个专家。

两个模型都利用早期融合实现原生多模态,使其能够处理文本和图像输入。Maverick 和 Scout 都在涵盖 200 种语言的数据上训练了高达 40 万亿个 token(并对包括阿拉伯语、西班牙语、德语和印地语在内的 12 种语言提供特定的微调支持)。

在部署方面,Llama 4 Scout 专为可访问性而设计,通过即时 4 位或 8 位量化可适配单个服务器级 GPU,而 Maverick 则提供 BF16 和 FP8 格式。这些模型根据自定义的 Llama 4 社区许可协议发布,可在模型仓库中获取。

HF Mirror 上的功能与集成

为了帮助社区立即利用这些最先进的模型,我们很高兴地宣布以下集成:

  • Hub 上的模型检查点:Llama 4 Maverick 和 Llama 4 Scout 模型权重可直接在 HF Mirror Hub 上的 meta-llama 组织下获取。这包括基础版和指令微调版。这允许轻松访问、探索和下载。在访问权重之前,您需要在模型卡片上接受许可条款。
  • HF Mirror transformers 集成:立即开始构建!Llama 4 模型已完全集成到 transformers(版本 v4.51.0)。这允许使用熟悉的 API 轻松加载、推理和微调,包括支持其原生多模态能力,以及像 TRL 这样的下游库。
  • 自动支持张量并行以及 transformers 中的自动设备映射。
  • 文本生成推理(TGI)支持:为了优化和可扩展的部署,两个模型都受到 TGI 支持。这允许高吞吐量的文本生成,使 Llama 4 更容易集成到生产应用中。
  • 量化支持:为 Scout 提供了即时 int4 量化的代码,最大限度地减少性能下降,同时支持在较小的硬件上部署。Maverick 包含 FP8 量化权重,以便在兼容硬件上高效部署。
  • Xet 存储:为了改善上传、下载,并支持对社区微调模型的更快迭代,我们使用 Xet 存储后端 上线了所有 Llama 4 模型。该存储系统专为更快的上传和下载而设计,在 Llama 4 上实现了约 25% 的去重率。所有衍生模型(微调、量化等)应具有更高的去重率(约 40%),为社区节省更多时间和带宽。

上下文长度与架构选择

Llama 4 模型以 256K 的上下文长度进行了预训练。Instruct 模型经过微调以支持更大的上下文长度:大型 128 专家版本(Maverick)为 1M,而 16 专家版本(Scout)为 10M(!)。

模型 Instruct 上下文长度
Scout (16E) ✅ 10M
Maverick (128E) ✅ 1M
Scout (16E) 256K
Maverick (128E) 256K

这些超长上下文长度伴随着一些非常有趣的架构选择。在官方技术报告发布之前,这是目前我们所知道的情况。

  • 无 RoPE(NoPE)层

NoPE(名字很可爱,+1 魅力值),其探索可追溯到 2022 年,它只是放弃了传统的位置编码方案,例如大多数情况下应用于 transformers 模型中的 RoPE。在 Llama 4 中,每 4 层使用一次 NoPE 层。这些层对长上下文至关重要,因为它们在上下文上使用完整的因果掩码。

对于 RoPE 层(4 层中的 3 层),使用了分块注意力。

Meta 将 NoPE 层的交替使用,连同温度缩放(如下所述),称为 iRoPE 架构。

如果你想了解更多关于位置编码的内容,我们推荐 Chris 的近期文章。

  • 分块注意力(在 RoPE 层中)

为了减少内存需求,Llama 4 在使用传统 RoPE 位置编码的层(4 个解码器层中的 3 个)中使用分块注意力。可视化分块注意力工作原理的最佳方式是通过从 transformers 源代码 中提取的以下 ASCII 表示:

'What'      :  0 ■ ⬚ ⬚ ⬚ ⬚ ⬚ 
'▁is'       :  1 ■ ■ ⬚ ⬚ ⬚ ⬚ 
'▁ch'       :  2 ■ ■ ■ ⬚ ⬚ ⬚ 
'unked'     :  3 ⬚ ⬚ ⬚ ■ ⬚ ⬚ 
'▁attention':  4 ⬚ ⬚ ⬚ ■ ■ ⬚ 
'?'         :  5 ⬚ ⬚ ⬚ ■ ■ ■ 

此图显示了如果分块注意力长度为 3 时将使用的注意力掩码。在 Llama 4 中,分块注意力长度为 8192。这意味着 RoPE 层只能在 8K 块中跟踪上下文,而 NoPE 层则能访问完整上下文。你可以将其视为滑动窗口注意力的更节省内存和计算的版本。

  • 注意力温度调优

应用于长上下文的注意力块存在一个问题:随着序列长度的增加,注意力概率分数衰减趋近于零。这是将 softmax 函数应用于极长序列的已知后果。为了解决这个问题,Llama 4 使用了缩放 softmax,模型将其称为温度调优。这应用于 NoPE 层,但不应用于 RoPE 层,因为后者关注较短的子序列。

这种方法是一种改善对任意上下文长度泛化的方式,可能也是在 Llama 4 Scout 中实现 10M 上下文长度的关键因素之一。

  • QK 归一化

Llama Scout(16 专家版本)在 RoPE 层中,在应用 RoPE 嵌入之后,对 Query 和 Key 状态使用额外的无学习参数的 RMS 归一化。

  • MoE 交替

Llama Scout 是一个完整的 MoE,由 16 个专家组成。Llama Maverick 使用了 128 个专家,但 MoE 层和密集层交替出现。因此,专家只应用于一半的层中。

  • 协同蒸馏

Llama Maverick 是通过一种新颖的损失函数从更大的模型 Llama Behemoth 中协同蒸馏而来,该损失函数动态地权衡学生模型和教师模型的 logit。

  • MetaP

这些模型利用了 MetaP,这是一种可能受 MuP 启发的方法,用于在不同维度(包括训练预算和模型规模)上最优地调整超参数。

如何使用 Transformers

使用 transformers 开始使用 Llama 4 非常简单。请确保你安装了 transformers v4.51.0 或更高版本(pip install -U transformers huggingface_hub[hf_xet])。下面是一个快速示例,使用指令微调的 Maverick 模型对两张图像进行响应,并使用张量并行以获得最大速度。你需要在具有 8 个 GPU 的实例上运行此脚本,使用类似以下命令:
torchrun –nproc-per-instance=8 script.py

from transformers import AutoProcessor, Llama4ForConditionalGeneration
import torch

model_id = "meta-llama/Llama-4-Maverick-17B-128E-Instruct"

processor = AutoProcessor.from_pretrained(model_id)
model = Llama4ForConditionalGeneration.from_pretrained(
    model_id,
    attn_implementation="flex_attention",
    device_map="auto",
    torch_dtype=torch.bfloat16,
)

url1 = "https://hf-mirror.com/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
url2 = "https://hf-mirror.com/datasets/huggingface/documentation-images/resolve/main/datasets/cat_style_layout.png"
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": url1},
            {"type": "image", "url": url2},
            {"type": "text", "text": "Can you describe how these two images are similar, and how they differ?"},
        ]
    },
]

inputs = processor.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=256,
)

response = processor.batch_decode(outputs[:, inputs["input_ids"].shape[-1]:])[0]
print(response)
print(outputs[0])

请务必查看仓库中的模型卡片(Llama 4 Maverick (~400B) 和 Llama 4 Scout (~109B))以获取详细的使用说明,包括多模态示例、特定的提示格式(如系统提示)、量化细节以及高级配置选项!

评估分数

评估结果证实了这些模型的实力,展现了最先进的性能,显著超越了 Llama 3.1 405B 等前代模型。例如,在推理和知识任务上,指令微调的 Maverick 在 MMLU Pro 上达到 80.5%,在 GPQA Diamond 上达到 69.8%,而 Scout 分别得分 74.3% 和 57.2%。

点击展开评估结果

预训练模型

类别 基准 样本数 指标 Llama 3.1 70B Llama 3.1 405B Llama 4 Scout Llama 4 Maverick
推理与知识 MMLU 5 macro_avg/acc_char 79.3 85.2 79.6 85.5
MMLU-Pro 5 macro_avg/em 53.8 61.6 58.2 62.9
MATH 4 em_maj1@1 41.6 53.5 50.3 61.2
代码 MBPP 3 pass@1 66.4 74.4 67.8 77.6
多语言 TydiQA 1 average/f1 29.9 34.3 31.5 31.7
图像 ChartQA 0 relaxed_accuracy 不支持多模态 83.4 85.3
DocVQA 0 anls 89.4 91.6

指令微调模型

类别 基准 样本数 指标 Llama 3.3 70B Llama 3.1 405B Llama 4 Scout Llama 4 Maverick
图像推理 MMMU 0 accuracy 不支持多模态 69.4 73.4
MMMU Pro^ 0 accuracy 52.2 59.6
MathVista 0 accuracy 70.7 73.7
图像理解 ChartQA 0 relaxed_accuracy 88.8 90.0
DocVQA (test) 0 anls 94.4 94.4
编码 LiveCodeBench (10/01/2024–02/01/2025) 0 pass@1 33.3 27.7 32.8 43.4
推理与知识 MMLU Pro 0 macro_avg/em 68.9 73.4 74.3 80.5
GPQA Diamond 0 accuracy 50.5 49.0 57.2 69.8
多语言 MGSM 0 average/em 91.1 91.6 90.6 92.3
长上下文 MTOB (half book) eng→kgv/kgv→eng - chrF 上下文窗口为 128K 42.2/36.6 54.0/46.4
MTOB (full book) eng→kgv/kgv→eng - chrF 39.7/36.3 50.8/46.7

致谢

发布像 Llama 4 这样的庞然大物需要跨团队、跨地域以及大量虚拟机的巨大努力。我们想感谢 Transformers 团队的 Arthur、Lysandre、Cyril、Pablo、Marc、Mohammed(排名不分先后)。我们感谢整个 vLLM 团队在本次充满挑战的密集集成过程中提供的丰富讨论、见解、共享测试和调试。鉴于更大的优化需求,我们要感谢 Mohit 独自为 TGI 添加了对 Llama 4 的支持。这些庞大的模型需要在存储层面进行一些严肃的工程工作。这也离不开 Ajit、Rajat、Jared、Di、Yucheng 以及 Xet 团队其他成员的巨大努力。

有很多人参与了这项工作,非常感谢 HF Mirror、vLLM 和 Meta Llama 团队的其他成员,感谢你们出色的协同合作!

参考文献

来源:Hugging Face Blog · hf-mirror.com