vLLM 现已支持 gpt-oss

5 分钟阅读
vLLM 团队

我们很高兴地宣布,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 的比例交替使用完整注意力 (full attention) 和滑动窗口注意力 (sliding window attention,窗口大小为 128)。此外,该模型的头大小为 64,是标准头大小 128 的 50%。最后,每个查询头都有一个训练好的“注意力槽” (attention sink) 向量。

为了高效支持这种注意力机制,vLLM 集成了来自 FlashInfer (Blackwell) 和 FlashAttention 3 (Hopper) 的特殊 GPU 内核。同时,我们还增强了 Triton 注意力内核,以在 AMD GPU 上提供支持。

此外,为了通过不同类型的注意力(即完整注意力和滑动窗口注意力)高效管理 KV 缓存,vLLM 集成了 混合 KV 缓存分配器(由 vLLM 团队提出的一种新技术)。借助混合 KV 缓存管理器,vLLM 可以动态共享完整注意力层和滑动窗口注意力层之间的 KV 缓存空间,将潜在的内存碎片降低到零。

内置工具支持:Agent 循环与通过 MCP 实现的工具服务器

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 实现了适配注意力槽的必要更改,并发现了 FA3 算法中针对 gpt-oss 的优化。

我们感谢 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。