高飞
25-03-29 16:42 微博认证:至顶科技创始人 AI博主

#模型时代# vLLM一年里的进化与展望:如何构建全球最快的开源大模型推理引擎

自从俺们团队发了DeepSeek实用指南之后,有很多企业技术负责人来交流AI的企业部署,结果对vLLM这个开源推理引擎的关注就越来越多了。

这只视频不是最新发布的,来自 2024 年 Ray Summit 的首个 vLLM 专题讲座,但是讲的东西没有过时。由UC Berkeley 的研究人员 Johan 和 Kuntai 介绍了关于 vLLM 项目的全面回顾和未来计划。vLLM 作为目前最流行的开源 LLM 推理和服务引擎,自 2023 年 6 月开源以来取得了令人瞩目的发展。

有一种感觉不一定对,那就是无论是vLLM还是DeepSeek,它们很多工程上的开销节流方法,都是来自传统的IT架构优化经验,所以会有一种:看完技术说明,似乎有点明摆着,但是实际上很多人就是都想不到做。当然,思路说起来容易,做起来就是另一回事了。

***
一、vLLM 的起源与使命

vLLM 的历史可以追溯到 2022 年 8 月,当时 UC Berkeley 的研究人员尝试部署 OPT-175B 模型作为他们先前研究项目的演示。然而,他们发现模型推理速度极其缓慢,这促使团队开始思考 LLM 推理可能是一个值得探索的领域。值得注意的是,vLLM 的开发始于 ChatGPT 发布之前。

"我们发现之前的系统在管理现在所谓的 KV 缓存内存方面表现得非常糟糕,"Johan 解释道,"我们经过多次迭代,最终开发出了页面注意力(page attention)的概念。"团队在 2023 年 4 月提交了相关论文,同年 6 月正式开源了项目。vLLM 的明确目标是:"构建最快且最易用的开源 LLM 推理和服务引擎",这一愿景指导了项目的整个发展过程。

目前,vLLM 提供了简洁的 Python 接口用于离线批处理推理,同时也可以作为完全兼容 OpenAI API 的服务器启动,只需一行命令即可完成部署。

二、全面的模型支持

vLLM 经过一年的发展,现已支持几乎所有开源的大语言模型和视觉语言模型。支持范围从最初的 transformer 类 LLM(如 LLAMA)扩展到包括混合专家模型(Mixtool)和多模态大语言模型(如 LAVA)。

"我们非常自豪能成为许多开源模型的官方启动合作伙伴,"Johan 强调,"例如,我们是 LLAMA 3.1 和 LLAMA 3.2 的官方合作伙伴,在第一天就提供了对这些模型的官方支持。"此外,vLLM 仓库中的许多模型是由模型创建者直接贡献的,如 PIX2 模型和 Q2VL 模型,这确保了模型实现的正确性。

团队目前还在积极探索其他类型的模型,包括状态空间模型,以及 LLM 的其他用途,如嵌入模型和奖励模型,进一步扩展了 vLLM 的应用范围。

三、多样化的硬件支持

vLLM 最初专注于 NVIDIA GPU,但随着项目的发展,支持更多种类的硬件加速器成为了重要方向。目前,vLLM 支持七种不同类型的硬件加速器:NVIDIA GPU、AMD GPU、AWS Neuron、x86 CPU、Intel CPU、Google TPU 和 Intel Gaudi。

"我们的方法是使用 PyTorch 作为通用抽象层,"Johan 解释道,"我们利用 PyTorch 的通用性来扩展对不同硬件的支持。" 这种设计使 vLLM 能够在保持代码一致性的同时,适应不同硬件平台的特性,为用户提供多样化的选择。

虽然 NVIDIA GPU 仍然是 vLLM 的主要关注点,但团队正在积极与其他硬件厂商合作,为用户提供各种有竞争力的选择,使模型推理能够在不同的硬件配置下高效运行。

四、深度优化的模型性能

模型性能一直是 vLLM 最重要的优先事项之一。在底层,团队为 LLM 中的不同算子开发了大量深度优化的 CUDA 内核。例如,为矩阵乘法提供了定制的内核以优化量化矩阵乘法;为 MOE 层开发了特殊优化的 Triton 内核;还有用于通信的自定义 all-reduce CUDA 内核。

"我们发现,在没有任何优化的情况下,Python 和 PyTorch 的开销可能占到总体延迟的 50%,"Johan 指出,"这意味着 GPU 总是在等待 CPU 完成内核启动。" 为此,团队引入了 CUDA 图优化,可以记录模型执行中的所有内核启动序列,减少 Python 开销,使 GPU 能够一次性执行所有内核。

在量化方面,vLLM 支持几乎所有流行的量化方法,包括 FP8、INT8、GPTQ、AWQ 和 D10 字节等。团队还开发了 LM Compressor Toolkit,这是一个帮助用户使用不同量化方法量化模型的库,使用户能够以自己喜欢的量化方法优化模型,并通过 vLLM 获得最佳性能。

五、创新的引擎特性

除了模型性能优化,vLLM 还在引擎层面添加了多项创新功能。其中之一是 chunk prefill(分块预填充),该功能允许将长提示分成更小的块分别处理,避免阻塞其他正在进行的请求。

"使用 chunk prefill,我们可以看到延迟降低了 2 倍,"Johan 解释道,"用户可以获得更高的吞吐量和更低的执行延迟。"

另一个重要特性是推测解码(speculative decoding),它使用小型模型来预测大型模型的输出,从而加速大型模型的执行。小模型自回归地生成候选序列,然后由大模型并行验证这些候选序列。如果验证通过,就可以一次性生成多个 token,大大减少了生成长序列的延迟。

vLLM 还实现了基于哈希的自动前缀缓存,可以在不同请求之间共享计算结果。例如,当多个请求共享相同的系统提示,或在多轮对话中重用先前轮次的 KV 缓存时,可以显著提高效率。

此外,vLLM 还支持多 LORA 适配器服务、结构化输出和工具使用,以及与 Outlines、LMFE 和 AICI 等结构化解码框架的广泛集成。

六、强大的分布式系统架构

从第一天开始,vLLM 就支持张量并行化(tensor parallelism),使模型能够跨多个 GPU 运行。团队修复了与通信相关的大量错误,并提供了处理分布式环境中崩溃的调试指南。

"从我们的测量来看,我们发现模型运行得越来越快,但 CPU 成为了瓶颈,"Johan 说,"为了充分利用 GPU,我们需要密切关注 CPU 上发生的一切。"

最近,团队还添加了对管道并行(pipeline parallelism)的支持,这特别适合跨多个节点的大型模型,以及带宽连接较低的情况。此外,vLLM 还增加了将部分权重卸载到 CPU 的功能,使用户能够在小型 GPU 上运行大型模型。

最新的系统架构优化包括多步调度、异步输出处理、高效的 API 服务器以及基于 OM2 的入口点,所有这些都旨在最小化 CPU 开销,确保 GPU 资源得到充分利用。

七、活跃的开源社区

vLLM 的核心优势之一是其蓬勃发展的开源社区。截至目前,项目拥有超过 560 名贡献者,他们提出问题、参与讨论并提交 PR。其中,20 名核心提交者负责审查 PR 并确保它们通过测试。

"每个月有超过 200 个 PR 被合并,"Johan 自豪地指出,"最初大多数 PR 来自 UC Berkeley,但如今很多 PR 实际上来自不同公司的社区成员。我认为这个项目已经成长为一个真正的社区项目,这是非常罕见的。"

为了支持贡献者和用户,vLLM 提供了多种入门方式,包括通过 pip 安装、从 Docker Hub 使用,以及支持仅 Python 开发的选项,使开发者无需编译 CUDA 内核即可进行开发。项目拥有完整的 CI/CD 流程,每个提交都通过数千个测试进行测试,并有性能基准检查,确保每个提交都不会导致性能回归。

vLLM 目前正在加入 Linux 基金会,并每两个月举办一次线下聚会,每两周举办办公时间,为社区提供参与和贡献的机会。

八、雄心勃勃的 Q4 路线图

在讲座的后半部分,Kuntai 详细介绍了 vLLM 的 Q4 路线图,包括持续添加对视觉语言模型和状态空间模型的支持,以及增加 API 使人们可以在未来向 vLLM 添加奖励模型。

在硬件方面,vLLM 将继续改进在各种硬件平台上的性能,如 NVIDIA H200 和 MI300X,同时在 InfraShare 上开发页面注意力内核,并对 TPU 进行一系列增强。

"我们的目标是默认启用 chunk prefill 和前缀缓存,"Kuntai 解释道,"同时加快结构化解码速度,融合通信以减少开销。"

vLLM 还将经历重大的重新架构,开发 vLLM Engine v2,包括异步调度和以前缀调度为中心的设计。这将允许在执行当前步骤的同时调度下一步,减少 GPU 空闲时间。

其他计划包括新的内存分配器以处理不同形状的张量、对 Torch Compile 的完全支持,以及更好的推测解码,确保推测解码总是能够提高 vLLM 的速度。团队还计划实现 KV 缓存卸载到 CPU,允许更多地存储 KV 缓存用于多轮对话和系统提示。

最后,vLLM 将支持分离的预填充(disaggregated prefilling),在不同的 GPU 上执行预填充和解码,这将允许为预填充和解码分别配置并行化策略,并显著降低尾部 token 间延迟。

结论

vLLM 在短短一年内从一个解决特定问题的项目发展成为全球最受欢迎的开源 LLM 服务引擎,这一成就得益于其强大的技术创新和活跃的开源社区。无论是在模型支持、硬件兼容性、性能优化还是系统架构方面,vLLM 都展现出了令人印象深刻的进步。

随着 AI 领域的快速发展,vLLM 正顺应大语言模型从研究走向生产部署的趋势,为广大开发者和企业提供高效、易用的推理解决方案。其即将推出的重大架构更新和丰富的新功能,将进一步巩固其在 LLM 推理领域的领先地位。

正如 Kuntai 在讲座结束时强调的:"我们的目标是构建最快和最易用的开源 LLM 推理和服务引擎。我们相信我们正走在正确的道路上。" 随着 vLLM 继续发展并加入 Linux 基金会,其未来将更加开放、透明,并由全球开发者社区共同塑造,为 AI 应用的普及和创新提供坚实的基础设施支持。 http://t.cn/A6rPo5S6

发布于 韩国