vLLM 中的 Llama 4
我们激动地宣布,vLLM 现在支持 Llama 4 系列模型:Scout (17B-16E) 和 Maverick (17B-128E)。您今天即可在 vLLM 中运行这些强大的长上下文、原生多模态(最高支持 8-10 张图像并获得良好结果)以及混合专家模型,只需更新到 v0.8.3 或更高版本即可。
pip install -U vllm
下方提供了入门示例命令。或者,您也可以将 CLI 命令替换为 docker run (说明在此),或使用我们的 Python 接口 LLM
类进行本地批处理推理。我们还建议您查看 Meta 团队的演示,其中展示了 vLLM 支持 1M 长上下文的能力。
使用指南
以下是如何使用不同的硬件配置来服务 Llama 4 模型。
使用 8x H100,vLLM 可以服务 Scout 模型,支持 1M 上下文;服务 Maverick 模型,支持约 430K 上下文。请参阅下方更多关于性能提升和利用长上下文的技巧。
在 8x H100 GPU 上
- Scout(最高支持 1M 上下文)
VLLM_DISABLE_COMPILE_CACHE=1 vllm serve meta-llama/Llama-4-Scout-17B-16E-Instruct \
--tensor-parallel-size 8 \
--max-model-len 1000000 --override-generation-config='{"attn_temperature_tuning": true}'
- Maverick(最高支持约 430K 上下文)
VLLM_DISABLE_COMPILE_CACHE=1 vllm serve meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 \
--tensor-parallel-size 8 \
--max-model-len 430000'
在 8x H200 GPU 上
- Scout(最高支持 3.6M 上下文)
VLLM_DISABLE_COMPILE_CACHE=1 vllm serve meta-llama/Llama-4-Scout-17B-16E-Instruct \
--tensor-parallel-size 8 \
--max-model-len 3600000'
- Maverick(最高支持 1M 上下文)
VLLM_DISABLE_COMPILE_CACHE=1 vllm serve meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 \
--tensor-parallel-size 8
--max-model-len 1000000'
多模态能力
Llama 4 模型在图像理解方面表现出色,最高支持 8-10 张图像。默认情况下,vLLM 服务端每次请求接受 1 张图像。请传递 --limit-mm-per-prompt image=10
参数,以使用 OpenAI 兼容 API 支持每次请求最多 10 张图像。我们还建议您查看我们的 Llama-4 多图像离线推理示例 此处。
性能
在上述配置下,我们观察到 Scout-BF16 和 Maverick-FP8 的输出 token/秒 如下
虽然更多性能优化正在进行中,但我们相信 Llama 4 模型高效的架构和相对较小的尺寸使其在今天的规模化使用中具有实用性。
性能和长上下文技巧
- 提升性能和上下文长度:设置
--kv-cache-dtype fp8
参数,这可能使可用上下文窗口翻倍并提升性能。我们发现在相关评估中,此设置对精度几乎没有影响。 - 最大化上下文窗口(最高 10M):为了充分利用最大上下文窗口(Scout 最高可达 10M),我们建议使用张量并行或流水线并行在多个节点上进行服务。请遵循我们的分布式推理指南 此处。
其他硬件支持和量化
- A100:我们已验证模型的 bf16 版本在 A100 GPU 上运行良好。
- INT4:目前正在开发 Scout 模型检查点的 INT4 量化版本,该版本可在单个 H100 GPU 上运行。敬请关注更新。
- AMD MI300X:您可以通过从源代码构建 vLLM 并在 AMD MI300X GPU 上运行 Llama 4,使用与上述相同的命令。
推理精度验证:我们使用 lm-eval-harness 工具对照 Meta 的官方报告验证了推理精度。以下是 meta-llama/Llama-4-Maverick-17B-128E-Instruct 的结果
MMLU Pro | ChartQA | |
---|---|---|
报告结果 | 80.5 | 90 |
H100 FP8 | 80.4 | 89.4 |
AMD MI300x BF16 | 80.4 | 89.4 |
H200 BF16 | 80.2 | 89.3 |
高效架构和集群规模服务
Llama 4 的模型架构特别适合高效的长上下文推理,这得益于以下特性:
- 混合专家模型 (MoE):Scout 使用 16 个专家(激活参数 17B),Maverick 使用 128 个专家(激活参数 17B)。每个 token 只激活一个专家,从而保持效率。
- 交错式 RoPE (iRoPE):Llama 4 以 1:3 的比例将全局注意力(不含 RoPE)与分块局部注意力(含 RoPE)交错使用。局部注意力层处理非重叠块中的 token,随着上下文长度的增加,显著降低了注意力的二次方复杂度。
vLLM 最近发布了 V1 引擎,在单节点上实现了显著的性能提升,并支持原生的 torch.compile。我们的 第二季度路线图 专注于增强 vLLM 的多节点扩展能力,目标是实现解耦的集群规模服务。我们正在积极添加对高效专家并行、多节点数据并行和集群范围预填充解耦的支持。
致谢
我们衷心感谢 Meta 团队在模型架构实现、广泛的精度评估和性能基准测试方面做出的贡献:Lucia (Lu) Fang, Ye (Charlotte) Qi, Lu Fang, Yang Chen, Zijing Liu, Yong Hoon Shin, Zhewen Li, Jon Swenson, Kai Wu, Xiaodong Wang, Shiyan Deng, Wenchen Wang, Lai Wei, Matthias Reso, Chris Thi, Keyun Tong, Jinho Hwang, Driss Guessous, Aston Zhang。
我们也感谢 AMD 团队为在 MI300X 上启用这些模型提供的支持:Hongxia Yang 和 Weijun Jiang。
vLLM 团队的性能基准测试运行在 Nebius 和 NVIDIA 无私提供的硬件上。