2022 年,一个加州大学伯克利分校的 3 人团队从一个加速 OPT-175B 训练推理的 demo 项目开始,在两年的时间里搭建出了全球范围内最受欢迎的开源大模型推理加速框架 vLLM。

vLLM 的目标是,搭建最快速、最易用的开源 LLM 推理服务引擎 (Build the fastest and easiest-to-use open-source LLM inference & serving engine)。

与 Hugging Face Transformers 相比,它提供高达 24 倍的吞吐量,而无需进行任何模型架构更改。今天,vLLM 在 GitHub 上的星标数已经突破 21.8k,而距离去年 6 月开源以来只过去了一年。

vLLM 支持几乎所有最新的开源 LLM,包括 Mistral,Llama,Gemma 等 30+ 大模型。一个新的开源大模型,几乎都会在发布前主动接触 vLLM 做好适配优化,确保在上线的第一天,大家就能通过 vLLM 来使用它。

vLLM 不执着于英伟达 GPU。与其它框架相比,这也是 vLLM 一个很大的不同点——支持包括 AMD GPU,Intel CPU/GPU/Habana Gaudi,Google TPU,AWS 在内市面上最全的硬件架构。从项目创立起,vLLM 就希望能广泛支持能够使得推理更快、成本更低也更适用的硬件。

在 ChatGPT 上线、Facebook 成为 Meta 之前,vLLM 诞生于一个名为「Alpa」的自动化并行推理 demo 项目。但在部署过程中,vLLM 团队发现 demo 的速度很慢,GPU 利用率也非常低。这让他们意识到,大语言模型推理本身就是一个非常值得关注的问题。

当时的市面上没有任何大语言模型推理优化的开源系统。于是,团队决定从 0 开始自己动手做一个。面对 GPU 的内存管理带来的瓶颈,团队在多次迭代后,基于操作系统中经典的虚拟内存和分页技术,提出了全新的注意力算法 PagedAttention,并构建了高吞吐量的分布式 LLM 服务引擎 vLLM,几乎做到了 KV 缓存内存零浪费。

2023 年 6 月,创始团队发布 vLLM 开源代码,并一直维护到今天。下一步,团队计划将资金用于 vLLM 的开发、测试和性能提升。

40 年前,世界上最后一个黑客 Richard Stallman 发起自由软件运动,开放、平等、协作、共创的开源精神开始崛起。从 GNU 和 Linux 的结合,到 MySQL 的第一个版本发布,到 Mozilla 项目的成立,到分布式版本控制系统 Git 的雏形面世、Android 的诞生,再到 GitHub 席卷全球,开源带来的创新几乎书写了一部计算机信息技术的历史。

这种创新来自全世界的聚力协作。vLLM 的全职团队只有 3 个博士生,但 20 多名分布于大模型、Infra、硬件等前沿科技公司的软件工程师都在为之努力。

为了吸引更多的贡献者,vLLM 对代码质量要求极高。团队要求代码必须模块化,且非常简洁易读。同时,团队成员会非常认真地做好代码审查(Code Review),甚至会在开发者提交代码更改(Pull Request,PR)后,在 PR 上接着重构后再进行合并。

vLLM 社区的开发者们在过去 4 场线下见面会上,会用网名亲切地称呼彼此。当位于硅谷的 vLLM 团队每天早上醒来,就会发现一位来自英国的工程师在夜里默默解决掉了二三十个问题。

开源短短一年,我们就看见 vLLM 的伯克利团队之外,包括 Anyscale、IBM、AMD、NeuralMagic、Roblox 在内的 300 多名活跃协作者,在以一行代码为颗粒度持续参与贡献。vLLM GitHub 的每 10 条提交记录中,就有 8 条来自社区,而这与 Linux Kernel 在发布 30 年后才达到的比例状态相当。

vLLM是一个开源的大型语言模型(LLM)推理和服务库,它通过一个名为PagedAttention的新型注意力算法来解决传统LLM在生产环境中部署时所遇到的高内存消耗和计算成本的挑战。PagedAttention算法能有效管理注意力机制中的键和值,将它们分割成更小、更易于管理的块,从而减少了vLLM的内存占用,并使其吞吐量超过传统LLM服务方法。

下图展示了三种不同配置下的语言模型(分别为LLaMA-13B、LLaMA-7B配备A100-40GB GPU和LLaMA-7B配备A10G GPU)在处理文本生成推理(TGI)任务时的服务吞吐量(每分钟处理的请求量)。我们可以看到,vLLM在所有配置中都提供了最高的吞吐量,这表明其在处理大规模模型推理任务时的高效性。
04111724-2024-07-04T03:17:23.png

地址:https://github.com/vllm-project/vllm