vLLM 的开放治理和性能路线图
我们想与 vLLM 社区分享两个更新。
vLLM 的未来是开放的
我们很高兴看到 vLLM 正在成为 LLM 推理和服务的标准。在最近的 Meta Llama 3.1 公告中,10 个实时推理的官方合作伙伴中有 8 个运行 vLLM 作为 Llama 3.1 模型的服务引擎。我们也从非正式渠道了解到,vLLM 正被用于我们日常生活中许多人工智能功能中。
我们相信 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 (H100s) 上的模型的关键瓶颈。我们正在努力使调度器异步化,并提前规划步骤。
- 我们发现 vLLM 的 OpenAI 兼容 API 前端具有高于期望的开销。我们正在努力将其与调度器和模型推理的关键路径隔离。
- 我们发现 vLLM 的输入准备和输出处理随数据大小的扩展性不佳。许多操作可以向量化,并通过将它们移出关键路径来增强性能。
我们将继续更新社区关于 vLLM 在弥合性能差距方面的进展。您可以在此处跟踪我们的总体进展。请继续提出新想法并贡献您的改进!
更多资源
我们想重点介绍以下正在积极开发的 RPC
- 单程序多数据 (SPMD) 工作节点控制平面降低了张量并行性能的复杂性并增强了其性能。
- vLLM 中使用 torch.compile 的图优化系统为内核融合和编译带来了 PyTorch 原生编译工作流程。
- 通过 KV 缓存传输实现分离式预填充对于具有长输入的 workload 至关重要,并降低了 token 间延迟的差异。
有一个蓬勃发展的研究社区正在 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