vLLM 的开放治理和性能路线图
我们想与 vLLM 社区分享两个更新。
vLLM 的未来是开放的
我们很高兴看到 vLLM 正在成为 LLM 推理和服务的标准。在最近的 Meta Llama 3.1 公告中,10 个官方实时推理合作伙伴中有 8 个运行 vLLM 作为 Llama 3.1 模型的服务引擎。我们还从非官方渠道了解到,vLLM 正被用于我们日常生活中的许多 AI 功能。
我们相信 vLLM 的成功来自于强大的开源社区的力量。vLLM 正在由包括加州大学伯克利分校、Anyscale、AWS、CentML、Databricks、IBM、Neural Magic、Roblox、Snowflake 等多个团体组成的联盟积极维护。为此,我们希望确保该项目的所有权和治理也是开放和透明的。
我们很高兴地宣布,vLLM 已经启动了在 LF AI & Data Foundation 中孵化的过程。这意味着任何一方都不会对 vLLM 的未来拥有独家控制权。许可证和商标将是不可撤销地开放的。您可以相信 vLLM 将会持续存在,并在未来得到积极的维护和改进。
性能是首要任务
vLLM 的贡献者们正在加倍努力,以确保 vLLM 成为最快且最易于使用的 LLM 推理和服务引擎。
回顾我们的路线图,我们将 vLLM 的重点放在六个目标上:广泛的模型覆盖、广泛的硬件支持、顶级的性能、生产就绪、蓬勃发展的开源社区以及可扩展的架构。
在我们的性能优化目标中,我们迄今已取得以下进展
- 基准测试的发布
- 在我们的公共基准测试中,于 perf.vllm.ai 发布了每次提交的性能跟踪器。此举的目的是跟踪性能提升和衰退。
- 发布了 vLLM 与 LMDeploy、TGI 和 TensorRT-LLM 相比的可复现基准测试(文档)。目的是找出性能差距并弥合它们。
- 高度优化内核的开发和集成
- 集成了带有 PagedAttention 的 FlashAttention2 和 FlashInfer。我们计划集成 FlashAttention3。
- 集成 Flux,它可以重叠计算和集体通信。
- 为量化推理开发了最先进的内核,包括 INT8 和 FP8 激活量化(通过 cutlass)以及 GPTQ 和 AWQ 的 INT4、INT8 和 FP8 仅权重化量化(通过 marlin)。
- 启动了多个工作流程以降低关键开销
- 我们发现 vLLM 的同步和阻塞调度器是在快速 GPU (H100) 上运行模型的关键瓶颈。我们正在努力使调度异步化,并提前规划步骤。
- 我们发现 vLLM 的 OpenAI 兼容 API 前端具有高于预期的开销。我们正在努力将其与调度器和模型推理的关键路径隔离。
- 我们发现 vLLM 的输入准备和输出处理无法随数据大小进行次优扩展。许多操作可以向量化,并通过将它们移出关键路径来增强。
我们将继续更新社区关于 vLLM 在弥合性能差距方面的进展。您可以在此处跟踪我们的整体进展。请继续提出新的想法并贡献您的改进!
更多资源
我们想重点介绍以下正在积极开发的 RPC
- 单程序多数据 (SPMD) 工作节点控制平面降低了张量并行性能的复杂性并提高了性能。
- vLLM 中使用 torch.compile 的图优化系统为内核融合和编译引入了 PyTorch 原生编译工作流程。
- 通过 KV 缓存传输实现分解预填充对于具有长输入的 workloads 至关重要,并降低了令牌间延迟的差异。
有一个蓬勃发展的研究社区在 vLLM 之上构建他们的研究项目。我们对这些令人印象深刻的工作深感荣幸,并希望合作和整合。论文列表包括但不限于
- Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve
- Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving
- Llumnix: Dynamic Scheduling for Large Language Model Serving
- CacheGen: KV Cache Compression and Streaming for Fast Large Language Model Serving
- vAttention: Dynamic Memory Management for Serving LLMs without PagedAttention
- Andes: Defining and Enhancing Quality-of-Experience in LLM-Based Text Streaming Services
- SGLang: Efficient Execution of Structured Language Model Programs