微信扫码
添加专属顾问
我与 vLLM 的缘分,还得从五年前的那个暑假说起。
2019 年,我在UC Berkeley的RISELab跟随Michael Jordan教授进行暑期研修。某天,我偶然遇到一位新入学的博士生,厚着脸皮加了他的微信。当时的我怎么也不会想到,这一“社交冒险”会在五年后改变我的人生轨迹。
时间快进到 2022 年年底,ChatGPT 横空出世。曾经和我一起玩泥巴的青苹果同学已经成为ChatGPT训练师,而我还在AI顶会与随机分配的审稿人展开“鸡同鸭讲”式的争论。顶会的内卷气氛让我无比焦虑,也让我意识到:我需要做出改变。
彼时,我正专注于研究一种能加速Conv-BN模块微调效率的优化方法。算法虽然不复杂,但需要深入修改模型的计算图。一番调研后,我接触到了PyTorch的torch.fx模块,顺势了解了PyTorch 2.刚发布的torch.compile。我对这些内容越看越感兴趣,一口气看完了2022年PyTorch大会的全部视频。
学习过程中,我结识了PyTorch编译器团队的Jason Ansel。他不但教我 Dynamo 的原理,还让我对机器学习系统(MLSys)这个领域有了初步了解。就这样,我从优化Conv-BN的训练效率,一路探索到机器学习编译器的核心原理。与此同时,我拜读了计算机体系结构的泰斗David Patterson和编译器大师Chris Lattner的经典讲座,他们都提到:在后摩尔定律时代,算力增长的唯一途径是专用芯片,而机器学习编译器会成为重要的研究方向。
2023 年年底,Michael Jordan教授再次访问清华。我向他诉说了对机器学习研究现状的困惑,表达了转向机器学习系统研究的兴趣。巧合的是,他的老朋友Ion Stoica——机器学习系统领域的顶级专家——也一同前来访问。Jordan教授一听,直接就把我推荐给了Ion。在和Ion的交流中,我“现学现卖”,详细阐述领域专用硬件和机器学习编译器的未来。他听完非常认同,还告诉我,他正在主导一个项目,涉及处理多种芯片,比如MI300X、Inferentia等(老实说,当时这些芯片名字我连听都没听过)。聊到最后,我们一拍即合,在实验室和导师的鼎力支持下,我幸运地拿到了再次访问UC Berkeley的机会。
2024 年,我又一次拖着行李箱,站在了伯克利的土地上。五年过去了,这里的一切似乎都没变。Ion Stoica的实验室,还是五年前熟悉的地点,连实验室管理员都还是当年的Kattt。唯一的变化,是实验室的名字从 RISELab 改成了 SkyLab。而Ion提到的那个需要处理多种芯片的项目,正是由五年前我遇到的那位博士生和另一位韩国小哥共同创立的vLLM项目。一切仿佛命中注定,我和vLLM的故事,正式拉开了序幕。
2024年3月,vLLM已经在社区内小有名气,但项目管理还略显原始。我加入项目后,首先将PyTorch的一些成熟开源管理经验移植到vLLM,例如issue模板(要求每个提 issue 的人必须提供完整的运行环境信息,从而方便我们定位问题)、PR模板等等。
为了快速了解项目,我订阅了vLLM的所有GitHub消息。每天早晨,睁眼后的第一件事就是查看新增的issue和PR,了解项目动态,并解答我能解答的问题。就这样,我的“vLLM oncall”模式持续了大半年,直到基本掌握了项目的全貌,才结束了“oncall”状态。
我接手的第一个任务,乍一看再简单不过:将vLLM依赖的PyTorch从2.1升级到2.2。然而,这个看似“入门级”的活儿,差点让我怀疑人生。
经过连续几周的调试,我最终发现,当以下四个条件同时满足时: 曲线救国
使用 L4 机器(没有 NVLink)。
开启 多卡并行推理。
启用 cudagraph。
NCCL 版本为 2.19 或以上。
vLLM 的显存占用会神秘地增加 2 GiB。
为了解决这个问题,我硬着头皮一行行代码排查,一头扎进NVIDIA的CUDA编程文档、驱动文档和运行时文档中。最终,我发现问题出在NCCL的一个实验特性上,解决方案仅需设置一个环境变量以禁用该功能(一行代码即可搞定)。但为了找到这“一行代码”,我整整折腾了三个月。
在彻底解决问题之前,我们只能采取权宜之计,先强制安装一个独立于PyTorch的NCCL 2.18版本。这又让我不得不参与vLLM的CI流程、发布流程等一系列开源项目管理事务,顺便接手了 vLLM 的分布式推理,并创建了vllm.distributed子模块。
没想到,半年后,几乎相同的问题在vLLM的RLHF流程中再次出现,并且惊动了John Schulman。是的,就是那个OpenAI的John Schulman,发明了PPO的那个男人。得知他也用vLLM,我非常激动,以最高优先级解决了问题,把RLHF的权重更新时间从3分钟压缩到了4秒钟,还和他一起完成了一个PR。
四五月间,我们陆续收到一些反馈,vLLM在H100上的性能表现不尽人意。然而问题来了——我们自己连一台H100都没有!当时,我还在用实验室的V100开发代码,我们的CI流程也捉襟见肘,只能验证代码的基本正确性,却完全无法跟踪性能变化。
有一次,一个贡献者提交了一个看似无害的改动,我审了一眼,觉得没问题,就痛快地同意合并了。谁知道第二天就有人反馈,这个PR把整体速度拖慢了好几倍!当时听了,真是哭笑不得——身为项目开发者,我们居然连代码的性能都搞不清楚,反倒是社区的一些有钱用户,在长期跟踪测试每个commit的性能。
究其根本,大模型推理项目的性能测试需要高端GPU,而我们CI的资金早已捉襟见肘。整个项目陷入了青黄不接的窘境,我们一度怀疑:这个项目怎么维护下去?还要不要维护?毕竟,vLLM是个“烧钱机器”,它消耗的资源远远超过我们几个学生的生活费,而未来还需要更多投入。我们要从哪里找到这些钱?
幸运的是,社区的热情与支持在关键时刻给予了我们极大帮助。在我们四处求援之后,NVIDIA 送来了一台满血H100和一台H200;AWS和Google Cloud等云厂商,捐赠了大量计算资源;真格、红杉等创投机构,也慷慨解囊,帮助我们解决了燃眉之急。
可以说,vLLM虽然诞生于伯克利,但它的成长靠的是“百家饭”。我们深深感激这一份支持,也因此坚定了一个信念:vLLM的今天离不开社区的帮助,未来我们一定要更好地回馈社区。
vLLM 支持了许多开源模型,且通常在模型发布当天就能推出相关支持,我们管这叫“day 1 support”。但这种“神速”,背后隐藏着大量看不见的 “day -1 support”——在模型发布前,我们已经悄悄做了大量的准备工作。这其中,令我印象最深刻的,就是迎战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是支持开源模型类型最广泛的推理框架。
vLLM 一经推出,就凭借数十倍于HuggingFace Transformers的推理速度吸引了广泛关注。然而,随着社区越来越大、功能越来越多,早期缺乏性能跟踪机制的问题逐渐显现,尤其是在高端H100 GPU上,小模型的推理性能不佳。
从四五月份开始,随着性能测试逐渐完善,我们便一直在讨论重构的必要性。通过参考类似框架如LMDeploy、LightLLM和TRT-LLM的经验,我们为vLLM增加了基于ZMQ的API服务器、多步调度(multi-step scheduling)等大幅提升性能的特性。然而,由于 vLLM 的功能非常多,这些优化措施有时会与某些小众功能发生冲突,导致代码中出现了不少分支逻辑。
为了彻底解决这一问题,我们正在准备一次大版本重构。这次重构将以性能优化为核心,优先支持常用功能,然后逐步改造那些小众功能,最终实现整个框架的全面升级。一些早期用户已经部署了新版本的尝鲜版,获得了 2~3 倍的性能提升。
此外,多样化的硬件支持也是需要重构的重点。尽管 NVIDIA 是市场上的头号玩家,但其他巨头公司也纷纷推出了自家的芯片。如何兼容多种加速硬件,是我们必须面对的挑战。为此,我创建了vllm.platforms子模块,将硬件相关的细节集中管理,减少主干代码中的分支逻辑。有趣的是,我发现PyTorch在硬件支持上也面临类似的挑战。vLLM与PyTorch,在这方面可以说是殊途同归。正因如此,后来我推动vLLM加入PyTorch生态系统就显得顺理成章。通过更紧密地融入PyTorch,我们能够从其发展过程中吸取更多经验与教训,同时为PyTorch社区作出我们的贡献。
torch.compile集成在出发前往伯克利之前,我给 Ion Stoica 画的大饼,是利用torch.compile来支持多种硬件。然而vLLM的开源项目事情很多,我不得不将与开源相关的工作置于优先位置,只能在闲暇时间“兼职”探索torch.compile的集成。
一次偶然的机会,我在为Command-R模型增加支持时,发现torch.compile的guard系统存在缺陷,会导致重复编译。我向Jason Ansel报告了这个问题,他建议我直接联系PyTorch Compiler团队的经理。结果,这个问题竟让我有机会在PyTorch团队的例会上做了一次报告,深入分析了torch.compile在大模型推理中遇到的挑战和潜在解决方案。
这次报告直接促使PyTorch团队将vLLM的torch.compile集成列为下半年的重点目标。经过长达半年的协作,我们在PyTorch Compiler核心成员的帮助下,基于PyTorch提供的底层能力,开发了vLLM专属的推理优化torch.compile技术栈,也将在不久后正式发布。
有趣的是,torch.compile集成过程中用到的一个关键功能,正是我去年研究PyTorch Compiler时为其新增的bytecode hook。
九月中旬,我因获得社区创新奖,受邀参加PyTorch 2024大会。初次踏入会场,我就被现场惊人的“人才密度”震撼到了。在随机游走的过程中,我偶遇了Flash Attention的作者Tri Dao、LLVM的作者Chris Lattner,以及PyTorch的创始人Soumith等重量级人物。更令人惊叹的是,他们都非常技术导向,乐于探讨具体的技术细节。那种思想碰撞的火花,让人深刻体会到硅谷之所以成为创新沃土,绝非偶然。
除了PyTorch Conference这样的年度盛会,vLLM社区也会定期组织线下Meetup,类似开发者见面会。在这些活动中,我有机会与诸多技术专家探讨前沿技术,获得了不少宝贵的经验。广受欢迎的社区课程CUDA Mode也举办了首次线下Meetup,我更是亲眼见到了Andrej Karparthy、CUDA编程入门课的主讲老师——UIUC胡文美教授等人,成功实现线下追星。
如果你来湾区,千万不要错过各种Meetup!比如通过lu.ma网站,你可以轻松订阅大量AI相关的技术meetup,感受硅谷的开放与活力。
自2023年6月开源以来,vLLM已经走过了一年半的历程。我很荣幸能够参与到这个项目的发展中,为其成长贡献我的一份力量。
随着智能时代的浪潮席卷而来,我们正见证一场深刻的技术革命。从云端服务器到端侧智能设备,再到自动驾驶汽车,各个领域都在积极探索大模型的应用场景,而vLLM已经在这些场景中实现了广泛的生产部署。我相信,vLLM将逐步发展成为智能时代的“Linux”——一个高效、稳定且开源的系统软件,支撑着智能时代的基础架构。
为更好地践行开源与开放的精神,vLLM正在加入Linux基金会。我们希望借助这一平台,进一步壮大社区,与更多开发者和企业携手,共同建设和完善智能时代的生态系统。正如Linux曾经推动了操作系统的普及,vLLM也有望在智能时代留下浓墨重彩的一笔。
访问快要结束时,我斗胆去请教David Patterson教授,问他AI硬件的未来会怎么发展。这位计算机体系结构的泰斗只是淡淡一笑,没有直接回答,而是推荐我去读一篇论文:《The Hardware Lottery》。
论文中提出了一个发人深省的观点:在摩尔定律仍然有效的时代,软件和硬件的发展基本是各自为战。写软件的人几乎不用考虑硬件的特性,因为硬件性能每隔两年翻一倍,软件的性能自然也会跟着变快。然而,摩尔定律的黄金年代已经结束。虽然NVIDIA的“黄氏定律”仍在推动硬件性能增长,但这种增长更多体现在专用领域。如果算法没有利用那些特化的硬件特性,就像没抽中“硬件彩票”——注定很难跑赢时代的红利。例如,Hinton提出的capsule network,由于对GPU不友好,目前尚未得到广泛应用。
这让我联想到一个有趣的传闻:NVIDIA在P100上首次推出FP16数值格式时,芯片量产后却发现训练无法收敛,算法研究人员拒绝使用P100,这几乎让他们的数值格式征途“出师未捷身先死”。后来,是混合精度训练让P100化险为夷,从而开启了V100、A100等后续芯片的辉煌。再后来,NVIDIA在开发FP8数值格式时,更是未雨绸缪,先通过大量的软件仿真验证了可行性,才敢造芯片。
这一系列故事让我感到深受启发:硬件亲和性,已经成为决定算法成功的关键。作为一名算法研究人员,与其天马行空地研究算法(抽奖),期待着未来的硬件会对算法亲和,不如直接学习理解硬件,设计对当前硬件亲和的算法,直接与庄家合作,岂不是必然抽中彩票?或许,最理想的情况,就像那个影响了FP8的男人那样,必须算法、软件、硬件协同设计。
vLLM能受到如此广泛的关注,离不开大模型这两年飞速发展的浪潮。发展得快,泡沫自然也就多。泡沫会不会破灭?什么时候破灭?这些问题没人能预测。但当我向许多经验丰富的“过来人”请教时,他们最常提到的参考是互联网。
回望互联网历史,确实在2000年左右经历了泡沫的破灭。但二十年后再看,即便是当年泡沫顶峰时期那些天马行空的设想,都远远不及互联网如今对世界的深远影响。很多人二十年前吹过的“牛”,不仅已经实现,而且还远超当时的想象。
硅谷先锋Roy Amara曾言道:“对突破性技术,人们往往在短期内高估其影响,但在长期内低估其潜力。” 历史总是在不断重复着螺旋式上升,AI或许就走在类似当年互联网的道路上。也许二十年后再回首,我们会发现,现在我们就站在下一个“互联网级奇迹”的起点上。
谨以此文,纪念即将过去的 2024 年,并提前祝大家 2025 新年快乐····
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-04
ThinkParse 1.1.0 开源发布:把文档解析,做成可扩展的企业级服务
2026-07-04
Agent 工程终于有脚手架了, Google开源一个开发agent的工具
2026-07-03
用云新范式:Qoder Cloud Agents × Alibaba Cloud Skills
2026-07-03
Ornith-1.0 发布: 新一代 Agentic Coding 之王,MIT 开源
2026-07-02
Meta把内部设计系统开源了,支撑内部13000+应用,专为Agent调优
2026-07-02
别再把 AI 当搜索引擎了,这 20 个操作让它替你干活
2026-07-02
ollama v0.31.1发布:Apple Silicon上Gemma 4提速近90%,默认开启无感升级
2026-07-01
在 OpenCode 中接入本地模型:Ollama 部署与配置完全指南
2026-04-09
2026-04-18
2026-04-18
2026-06-22
2026-05-10
2026-05-06
2026-05-31
2026-05-20
2026-04-21
2026-04-21
2026-06-16
2026-05-30
2026-05-16
2026-04-22
2026-04-21
2026-04-15
2026-04-09
2026-04-01
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。