
Transformers模型在vLLM上实现原生级推理速度

以前,模型作者想把Transformers里的新架构快速部署到生产,得专门给vLLM手写一遍优化代码。因为vLLM的高性能依赖自定义内核和并行策略,Transformers跑进去虽然能用,但速度往往差一截。这导致社区里重复劳动严重:一个模型先在Transformers里写好,再被移植到vLLM、SGLang等框架,每一步都得重新调优。说白了,生态碎片化让“验证新想法”变成“修车比赛”,很多人精力消耗在移植上,而不是模型创新本身。
这次更新直接把这条鸿沟填平了。核心技术路径是用torch.fx对Transformers的计算图做静态分析,识别出Attention、MoE专家路由、线性层等典型模式,然后通过AST(抽象语法树)动态改写源代码,把多个小操作融合成vLLM已经高度优化的内核调用,比如QKVParallelLinear和MergedColumnParallelLinear。同时保留torch.compile和CUDA Graphs的兼容性,确保编译优化不丢失。实测下来,在Qwen3的4B、32B和235B MoE三种规模上,Transformers后端的吞吐量全部持平甚至超过原生vLLM实现。模型作者只需要启动时加一条--model-impl transformers参数,现有并行配置(TP/EP/DP)完全不变,就能白嫖到最快推理速度。
这对AI工程化是个实在的信号:模型代码和推理优化终于可以解耦了。以后新架构只要在Transformers里写好,就能自动获得一线推理引擎的极致性能,不用再为每个框架单独写一遍“适配层”。更棒的是,同一份代码既能做训练、评估、RL,又能直接上线服务,极大地降低了模型迭代的试错成本。虽然目前线性注意力等少数模式还不支持,但这条路已经证明——用编译器技术代替人工搬运,才是让生态真正流动起来的关键。我猜未来一年,模型框架间“二次移植”的这种脏活会越来越少,研究者的精力可以更专注在有意思的架构设计上。


