我与vLLM的2024,作者游凯超,challengehub edit
https://zhuanlan.zhihu.com/p/14430956145
楔子
我与 vLLM 的缘分,还得从五年前的那个暑假说起。
2019 年,我在UC Berkeley的RISELab跟随Michael Jordan教授进行暑期研修。某天,我偶然遇到一位新入学的博士生,厚着脸皮加了他的微信。当时的我怎么也不会想到,这一“社交冒险”会在五年后改变我的人生轨迹。
ChatGPT之变
上手:初入江湖
为了快速了解项目,我订阅了vLLM的所有GitHub消息。每天早晨,睁眼后的第一件事就是查看新增的issue和PR,了解项目动态,并解答我能解答的问题。就这样,我的“vLLM oncall”模式持续了大半年,直到基本掌握了项目的全貌,才结束了“oncall”状态。
下马威:PyTorch 2.2 的阴影
我接手的第一个任务,乍一看再简单不过:将vLLM依赖的PyTorch从2.1升级到2.2。然而,这个看似“入门级”的活儿,差点让我怀疑人生。
使用 L4 机器(没有 NVLink)。
开启 多卡并行推理。
启用 cudagraph。
NCCL 版本为 2.19 或以上。
在彻底解决问题之前,我们只能采取权宜之计,先强制安装一个独立于PyTorch的NCCL 2.18版本。这又让我不得不参与vLLM的CI流程、发布流程等一系列开源项目管理事务,顺便接手了 vLLM 的分布式推理,并创建了vllm.distributed子模块。
苦日子:从 GPU Poor 到 GPU Rich
有一次,一个贡献者提交了一个看似无害的改动,我审了一眼,觉得没问题,就痛快地同意合并了。谁知道第二天就有人反馈,这个PR把整体速度拖慢了好几倍!当时听了,真是哭笑不得——身为项目开发者,我们居然连代码的性能都搞不清楚,反倒是社区的一些有钱用户,在长期跟踪测试每个commit的性能。
究其根本,大模型推理项目的性能测试需要高端GPU,而我们CI的资金早已捉襟见肘。整个项目陷入了青黄不接的窘境,我们一度怀疑:这个项目怎么维护下去?还要不要维护?毕竟,vLLM是个“烧钱机器”,它消耗的资源远远超过我们几个学生的生活费,而未来还需要更多投入。我们要从哪里找到这些钱?
幸运的是,社区的热情与支持在关键时刻给予了我们极大帮助。在我们四处求援之后,NVIDIA 送来了一台满血H100和一台H200;AWS和Google Cloud等云厂商,捐赠了大量计算资源;真格、红杉等创投机构,也慷慨解囊,帮助我们解决了燃眉之急。
可以说,vLLM虽然诞生于伯克利,但它的成长靠的是“百家饭”。我们深深感激这一份支持,也因此坚定了一个信念:vLLM的今天离不开社区的帮助,未来我们一定要更好地回馈社区。
迎战 LLaMA 3.1 405B
今年四月,Meta发布了LLaMA 3系列模型。乍看之下,它与LLaMA和LLaMA 2在架构上并没有太大变化,也不需要vLLM提供额外支持。然而,Meta的发布博客中提到还有一个400B+的模型正在训练。这消息一下子让我们坐不住了。
要知道,405B模型仅权重就需要800GiB的显存。即便是最顶级的H100机器也撑不住这种规模。于是,我们立刻着手开发多机分布式推理功能,包括针对非RDMA机器的流水线并行推理、单机测试的CPU offloading等等,最终成功支持了LLaMA 3.1 405B模型的推理。
有趣的是,后来 Meta 告诉我们,他们在和一些合作伙伴测试405B模型时,发现这些厂商根本不知道如何部署。无奈之下,Meta只能紧急为405B模型开发FP8量化版本。vLLM对满血非量化版405B模型的多机部署解决方案,使得Meta的十个官方发布合作伙伴中,有八个选择了 vLLM。
模型架构的微创新一直在路上,vLLM团队也一直在努力,增加对各种模型的支持。毫不夸张地说,vLLM是支持开源模型类型最广泛的推理框架。
重构与优化:永恒的话题
从四五月份开始,随着性能测试逐渐完善,我们便一直在讨论重构的必要性。通过参考类似框架如LMDeploy、LightLLM和TRT-LLM的经验,我们为vLLM增加了基于ZMQ的API服务器、多步调度(multi-step scheduling)等大幅提升性能的特性。然而,由于 vLLM 的功能非常多,这些优化措施有时会与某些小众功能发生冲突,导致代码中出现了不少分支逻辑。
torch.compile
集成
有趣的是,torch.compile集成过程中用到的一个关键功能,正是我去年研究PyTorch Compiler时为其新增的bytecode hook。
群英荟萃的 PyTorch Conference 与 Meetup
如果你来湾区,千万不要错过各种Meetup!比如通过lu.ma网站,你可以轻松订阅大量AI相关的技术meetup,感受硅谷的开放与活力。
vLLM:智能时代的Linux雏形
自2023年6月开源以来,vLLM已经走过了一年半的历程。我很荣幸能够参与到这个项目的发展中,为其成长贡献我的一份力量。
硬件彩票:与其抽奖,不如和庄家合作
展望:泡沫与奇迹
vLLM能受到如此广泛的关注,离不开大模型这两年飞速发展的浪潮。发展得快,泡沫自然也就多。泡沫会不会破灭?什么时候破灭?这些问题没人能预测。但当我向许多经验丰富的“过来人”请教时,他们最常提到的参考是互联网。