vLLM 现已支持 gpt-oss
我们激动地宣布,vLLM 现已在 NVIDIA Blackwell 和 Hopper GPU,以及 AMD MI300x 和 MI355x GPU 上支持 gpt-oss。在这篇博客文章中,我们将探讨 gpt-oss 的高效模型架构以及 vLLM 是如何支持它的。
要快速开始使用 gpt-oss,您可以尝试我们的容器
docker run --gpus all \
-p 8000:8000 \
--ipc=host \
vllm/vllm-openai:gptoss \
--model openai/gpt-oss-20b
或在您的虚拟环境中安装
uv pip install --pre vllm==0.10.1+gptoss \
--extra-index-url https://wheels.vllm.ai/gpt-oss/ \
--extra-index-url https://download.pytorch.org/whl/nightly/cu128 \
--index-strategy unsafe-best-match
vllm serve openai/gpt-oss-120b
更多详情,请参阅 vLLM 用户指南。
MXFP4 MoE
gpt-oss 是一个稀疏 MoE 模型,拥有 128 个专家(120B)或 32 个专家(20B),其中每个 token 会被路由到 4 个专家(无共享专家)。对于 MoE 权重,它使用了 MXFP4,一种新颖的组量化浮点格式,而对于注意力和其他层则使用标准的 bfloat16。由于 MoE 占据了模型参数的大部分,仅对 MoE 权重使用 MXFP4 就将模型大小减小到 63 GB (120B) 和 14 GB (20B),使其可以在单个 GPU 上运行(尽管通常不推荐这样做以获得最佳性能)!
在 MXFP4 中,每个权重表示为一个 4 位浮点数(fp4 e2m1)。此外,MXFP4 为每组 32 个连续的 fp4 值引入了一个 2 的幂次缩放因子,以表示更宽的数值范围。在硬件上运行时,两个 fp4 值被打包到内存中的单个 8 位单元中,然后在 matmul 内核中进行计算时动态解包。
为了高效运行 MXFP4 MoE,vLLM 通过与 OpenAI 和 NVIDIA 合作,集成了两个专门的 GPU 内核:
- Blackwell GPU(例如 B200): 来自 FlashInfer 的新 MoE 内核。该内核由 NVIDIA 实现,并使用 Blackwell 的原生 MXFP4 张量核心以实现最大性能。
- Hopper GPU(例如 H100, H200): Triton
matmul_ogs内核,由 OpenAI Triton 团队官方实现。该内核专门为 Hopper 架构优化,包含 swizzling 优化和内置启发式算法,无需手动调优。
高效注意力
gpt-oss 具有高效的注意力设计。它使用 GQA,拥有 64 个查询头和 8 个 KV 头。重要的是,该模型以 1:1 的比例交替使用全注意力和滑动窗口注意力(窗口大小为 128)。此外,模型的头大小为 64,是标准头大小 128 的 50%。最后,每个查询头都有一个经过训练的“注意力池”(attention sink)向量。
为了高效支持这种注意力机制,vLLM 集成了来自 FlashInfer (Blackwell) 和 FlashAttention 3 (Hopper) 的特殊 GPU 内核。同时,我们增强了我们的 Triton 注意力内核,以便在 AMD GPU 上支持此功能。
此外,为了高效管理不同注意力类型(即全注意力和滑动窗口注意力)的 KV 缓存,vLLM 集成了 混合 KV 缓存分配器,这是由 vLLM 团队提出的一种新技术。通过混合 KV 缓存管理器,vLLM 可以在全注意力层和滑动窗口注意力层之间动态共享 KV 缓存空间,将潜在的内存碎片降低到零。
内置工具支持:通过 MCP 实现 Agent 循环和工具服务器
gpt-oss 内置了对强大工具的支持,如网页浏览和 Python 代码解释器。启用后,模型会自主决定何时以及如何调用这些工具,并无缝地解释其结果。
vLLM 通过集成 OpenAI Responses API 和 gpt-oss 工具包,原生支持这些功能。通过这种集成,vLLM 实现了一个循环,用于解析模型的工具调用、实际调用搜索和代码解释器工具、解析它们的输出,并将结果返回给模型。
或者,用户可以启动一个兼容 MCP 的外部工具服务器,让 vLLM 使用该工具服务器,而不是直接利用 gpt-oss 工具包。这种模块化架构简化了可扩展工具调用库和服务的创建,无需对 vLLM 进行内部更改。
展望未来
本次发布只是 vLLM 持续优化 gpt-oss 的开始。我们未来的路线图包括:
-
强化 Responses API
-
进一步增强注意力 DP 和 MoE EP 支持
-
减少 CPU 开销以最大化吞吐量
致谢
为这项工作做出贡献的 vLLM 团队成员有:Yongye Zhu, Woosuk Kwon, Chen Zhang, Simon Mo, Kaichao You。
来自 Colfax International 的 Jay Shah 实现了必要的更改以适应注意力池,并发现了 gpt-oss 在 FA3 算法中的优化点。
我们想感谢 OpenAI 的出色合作:Zhuohan Li, Xiaoxuan Liu, Philippe Tillet, Mario Lezcano-Casado, Dominik Kundel, Casey Dvorak, Vol Kyrylov。
NVIDIA 和 vLLM 密切合作,在 NVIDIA Blackwell 架构上开发并验证了性能和准确性:Duncan Moss, Grace Ho, Julien Demouth, Minseok Lee, Siyuan Fu, Zihao Ye, Pen Chung Li。
AMD 团队为该模型在其设备上的集成做出了重要贡献:Hongxia Yang, Ali Zaidy,并得到了 Peng Sun, Vinayak Gokhale, Andy Luo 的大力支持。
Hugging Face 团队在构建开源生态系统方面一如既往地出色:Lysandre, Hugo, Marc, vb, Arthur, Mohamed, Andrien。
最后,我们要感谢所有以某种方式利用 vLLM 并为这项工作提供了宝贵反馈和改进的合作伙伴:AWS, Cloudflare, Snowflake, Databricks, Together, Fireworks, Cerebras。