跳到正文
原文
Hugging Face Blog·· 2026-07-08精选AI 评分67

vLLM 的 transformers 建模后端实现原生推理速度

Native-speed vLLM transformers modeling backend

AI 摘要

Hugging Face 宣布 vLLM 的 transformers 建模后端现在在许多 LLM 架构上达到甚至超过 vLLM 手写原生实现的吞吐。在 Qwen3-4B 单卡、Qwen3-32B 张量并行、Qwen3-235B-A22B-FP8 MoE 数据加专家并行三种配置下,该后端均追平或超过原生吞吐。

正文 · AI 翻译

TL;DR:对于许多 LLM 架构,transformers vLLM 后端现在与自定义 vLLM 实现一样快(或更快)。模型作者可以自动利用其 transformers 实现,免费获得超快的 vLLM 推理。

# Upgrade the vllm pip package
uv pip install --upgrade vllm --torch-backend auto

transformers 库已成为机器学习的参考建模库。它通过一致的 API 支持 450 多种架构,其设计的主要目标是模型实现自包含且易于理解。阅读 transformers 代码使贡献者能够轻松了解架构的工作原理,然后将其移植到其他框架,如 vLLM、SGLang、MLX、llama.cpp 等。

我们已完全接受在生态系统中的这一角色,并投入大量精力使其更便捷。朝着这个方向迈出的一大步是去年将 transformers 作为建模后端集成到 vLLM 中。这使得模型作者可以在 vLLM 中运行 transformers 模型(包括 LLM 和 VLM),而无需移植任何内容。Transformers 提供建模代码,vLLM 提供极其优化的推理技术,如连续批处理和自定义注意力内核。

这一集成现在变得更好了 🚀!

展示

我们将 vLLM 的 transformers 建模后端与 vLLM 手写的原生实现,在三个截然不同的 Qwen3 模型上进行了正面比较:

  • 单 GPU 上的 4B 稠密模型
  • 张量并行下的 32B 稠密模型
  • 在同一 8×H100 节点上,数据并行 + 专家并行的 235B 参数 FP8 混合专家模型
Pre and Post PR benchmarks with trasnformers vllm backend
结果:transformers 建模后端现在在每一个模型上都达到或超越原生吞吐量。

通过 transformers 建模后端运行任何* Hugging Face 模型只需一个标志——--model-impl transformers。它与通常的并行选项组合使用,因此您的服务设置无需任何更改:

# Qwen3-4B dense, single GPU
vllm serve Qwen/Qwen3-4B --model-impl transformers

# Qwen3-32B dense, tensor-parallel across 2 GPUs
vllm serve Qwen/Qwen3-32B --model-impl transformers --tensor-parallel-size 2

# Qwen3-235B-A22B-FP8 MoE, data-parallel + expert-parallel across 8 GPUs
vllm serve Qwen/Qwen3-235B-A22B-FP8 --model-impl transformers --data-parallel-size 8 --enable-expert-parallel
# add --max-model-len 8192 if your node is memory constrained

*目前不支持使用线性注意力的模型,但很快就会支持!代码位于 Hub 仓库中的自定义模型不太可能工作,因为它们不是以合规方式编写的。

我们如何测量

每个模型在三种条件下进行比较,除代码路径外,其他方面完全相同:

  1. 原生——--model-impl vllm,vLLM 手写模型(要达到的标准)
  2. 之后——--model-impl transformers 带有 PR
  3. 之前——--model-impl transformers 不带 PR

完整、可复现的运行器以 gist 形式提供:benchmark.sh

那么,有什么新变化?

vLLM 的 transformers 建模后端过去将注意力视为推理的瓶颈。通过在运行时插入 vLLM 的注意力实现,我们可以让 transformers 模型在 vLLM 引擎内高效运行。但部署有许多维度,只有自定义移植才能针对性地提取最大推理性能。跨 GPU 并行化、编译、融合内核等,都有助于利用您的硬件实现超快推理。

New model integration to transformers and vLLM
过去,一个新模型需要为 transformers 集成一次,再为 vLLM 进行自定义优化集成一次

当模型作者想要绝对最佳性能时,他们仍然在编写自定义 vLLM 实现。

New model integrates to transformers, and is immediately available to vLLM
现在,一个新模型一旦集成到 transformers,就可以立即在 vLLM 中使用,并达到原生 vLLM 实现的速度

vLLM 的 transformers 建模后端最新版本会在运行时动态应用推理专用的层融合,从而在兼容架构上达到自定义代码实现的速度。

它是如何工作的?

vLLM 的 transformers 建模后端现在使用 torch.fx 对模型的计算图进行静态分析。该过程会搜索可优化的已知模式。在识别出任何模式后,它会使用 ast(抽象语法树)来操作源代码,并就地重写部分运算。

我们能借此实现什么?

  • 多对一映射到(超)优化 vLLM 内核的融合运算,例如用于混合专家(MoE)模型中专家并行化(EP)的那些内核。
  • 其他主要的融合运算包括 vLLM 的 MergedColumnParallelLinear 和 QKVParallelLinear。这些模块让我们能够推断 TP(张量并行)的并行方案。如果解码器块列表易于识别,也可以推断 PP(流水线并行)方案。
  • 经过处理的模型仍然完全可(torch)编译,会像专用的 vLLM 模型实现一样通过 torch.compile 和 CUDA Graphs。
  • 与 vLLM 模型实现不同,Transformers 模型实现可用于训练。因此你可以将同一份模型代码用于训练/评估/RL 采样。

如上所示,这能让兼容模型达到原生 vLLM 推理速度,而无需编写一行代码来为推理优化模型。

我们正在撰写一篇详细的博客文章,以深入探讨这些优化推理方法,并详细解释我们如何操作模型以适配它们。

资源

来源:Hugging Face Blog · huggingface.co

00