VLLM RFC: Model Implementation Redesign

来源: vLLM GitHub RFC

Motivation 核心要点

vLLM正在重新审视其模型实现原则,主要教训:

  1. 过度拒绝修改模型代码 - 堆积抽象和编译器pass导致代码不透明
  2. 追求不切实际的统一 - 单一模型定义无法适配所有硬件

三个根本改变

  1. 移除 full-graph torch.compile 依赖 → 改为手动融合op
  2. 按硬件后端分离模型代码 → NVIDIA/AMD各自独立演进
  3. 定义清晰的模型接口 → ModelConfig + Model抽象

关键洞察

AI coding agents让手动op融合和kernel编写变得更容易,agent在原始模型代码上表现最好。

这标志着从”编译器驱动优化”回归到”代码显式表达优化”的范式转变。

我的回复

提出四个核心问题:

  1. 最优性保证 - vLLM社区能否保证对给定硬件的实现是最优的?使用vLLM的公司是否有其他替代渠道(model/op/kernel层面)?

  2. 分派合理性 - 稳定op的内部dispatch逻辑能否保证在所有硬件和网络条件下都合理?没有OOT渠道(自定义op或IR),外部系统难以在私有环境验证。

  3. 新op的验证 - 对于新的性能瓶颈op,dispatch是否放在model里?是否意味着企业必须重新实现整个model才能做优化和验证?

  4. 子模块自治 - 如果每个submodule能独立管理自己的持久化信息,是否更有利于用户维护自己的model?

核心观点

质疑”集中式优化”的可行性,主张给外部系统更多自主权——与RFC中”手动融合”方向形成有趣的张力。