VLLM RFC: Model Implementation Redesign
来源: vLLM GitHub RFC
Motivation 核心要点
vLLM正在重新审视其模型实现原则,主要教训:
- 过度拒绝修改模型代码 - 堆积抽象和编译器pass导致代码不透明
- 追求不切实际的统一 - 单一模型定义无法适配所有硬件
三个根本改变
- 移除 full-graph torch.compile 依赖 → 改为手动融合op
- 按硬件后端分离模型代码 → NVIDIA/AMD各自独立演进
- 定义清晰的模型接口 → ModelConfig + Model抽象
关键洞察
AI coding agents让手动op融合和kernel编写变得更容易,agent在原始模型代码上表现最好。
这标志着从”编译器驱动优化”回归到”代码显式表达优化”的范式转变。
我的回复
提出四个核心问题:
-
最优性保证 - vLLM社区能否保证对给定硬件的实现是最优的?使用vLLM的公司是否有其他替代渠道(model/op/kernel层面)?
-
分派合理性 - 稳定op的内部dispatch逻辑能否保证在所有硬件和网络条件下都合理?没有OOT渠道(自定义op或IR),外部系统难以在私有环境验证。
-
新op的验证 - 对于新的性能瓶颈op,dispatch是否放在model里?是否意味着企业必须重新实现整个model才能做优化和验证?
-
子模块自治 - 如果每个submodule能独立管理自己的持久化信息,是否更有利于用户维护自己的model?
核心观点
质疑”集中式优化”的可行性,主张给外部系统更多自主权——与RFC中”手动融合”方向形成有趣的张力。