轻松安装和开发 vLLM
LLM 推理领域正以前所未有的速度发展。每周都会涌现新的模型和功能,传统的软件发布流程常常难以跟上。在 vLLM,我们的目标不仅仅是提供一个软件包。我们正在构建一个系统——一个值得信赖、可追踪和参与式的 LLM 推理生态系统。这篇博文重点介绍了 vLLM 如何使用户能够轻松安装和开发,同时保持在创新前沿。
TL;DR(太长不看)
- 灵活快速的安装选项,从稳定版本到每夜构建。
- 为 Python 和 C++/CUDA 开发者优化的开发工作流程。
- 用于生产部署的强大的版本追踪能力。
无缝安装 vLLM 版本
安装已发布版本
我们定期向 Python 包索引发布 vLLM 的稳定版本,确保用户可以使用标准的 Python 包管理器轻松安装它们。例如
pip install vllm
对于那些喜欢更快包管理器的人,uv 在 vLLM 社区中越来越受欢迎。在使用 uv 设置 Python 环境后,安装 vLLM 非常简单
uv pip install vllm
有关设置 uv 的更多详细信息,请参阅文档。在一个简单的服务器级设置(Intel 第八代 CPU)中,我们观察到 uv 比 pip 快 200 倍
# with cached packages, clean virtual environment
$ time pip install vllm
...
pip install vllm 59.09s user 3.82s system 83% cpu 1:15.68 total
# with cached packages, clean virtual environment
$ time uv pip install vllm
...
uv pip install vllm 0.17s user 0.57s system 193% cpu 0.383 total
从主分支安装最新的 vLLM
为了满足社区对尖端功能和模型的需求,我们为每个主分支的提交提供了每夜构建的 wheels。
使用 pip:
pip install vllm --pre --extra-index-url https://wheels.vllm.ai/nightly
添加 --pre
确保 pip 在搜索中包含预发布版本。
使用 uv:
uv pip install vllm --extra-index-url https://wheels.vllm.ai/nightly
开发变得简单
我们深知,活跃且积极参与的开发者社区是创新的基石。因此,vLLM 为开发者提供了顺畅的工作流程,无论他们是修改 Python 代码还是处理内核。
Python 开发者
对于需要调整和测试 vLLM Python 代码的 Python 开发者来说,无需编译内核。这种设置使您能够快速开始开发。
git clone https://github.com/vllm-project/vllm.git
cd vllm
VLLM_USE_PRECOMPILED=1 pip install -e .
VLLM_USE_PRECOMPILED=1
标志指示安装程序使用预编译的 CUDA 内核,而不是从源代码构建它们,从而显著减少安装时间。这非常适合专注于 Python 级别功能(如 API 改进、模型支持或集成工作)的开发者。
这种轻量级过程运行高效,即使在笔记本电脑上也是如此。有关更高级的用法,请参阅我们的文档。
C++/内核开发者
对于使用 C++ 代码或 CUDA 内核的高级贡献者,我们加入了编译缓存以最大限度地减少构建时间并简化内核开发。请查看我们的文档以获取更多详细信息。
轻松追踪变更
LLM 推理快速发展的特性意味着接口和行为仍在不断稳定。vLLM 已被集成到许多工作流程中,包括 OpenRLHF、 veRL、 open_instruct、 LLaMA-Factory 等。我们与这些项目合作,以稳定 LLM 推理的接口和行为。为了方便这一过程,我们为这些高级用户提供了强大的工具来追踪跨版本的变更。
安装特定提交
为了简化追踪和测试,我们为主分支中的每个提交提供 wheels。用户可以轻松安装任何特定提交,这对于二分查找和追踪变更特别有用。
我们建议使用 uv 安装特定提交
# use full commit hash from the main branch
export VLLM_COMMIT=72d9c316d3f6ede485146fe5aabd4e61dbc59069
uv pip install vllm --extra-index-url https://wheels.vllm.ai/${VLLM_COMMIT}
在 uv 中,--extra-index-url
中的软件包比默认索引具有更高的优先级,这使得可以安装先于最新公开发行版本的开发版本(在撰写本文时,它是 v0.6.6.post1)。
相比之下,pip 结合了来自 --extra-index-url
和默认索引的软件包,仅选择最新版本,这使得难以安装先于已发布版本的开发版本。因此,对于 pip 用户,它需要指定一个占位符 wheel 名称来安装特定提交
# use full commit hash from the main branch
export VLLM_COMMIT=33f460b17a54acb3b6cc0b03f4a17876cff5eafd
pip install https://wheels.vllm.ai/${VLLM_COMMIT}/vllm-1.0.0.dev-cp38-abi3-manylinux1_x86_64.whl
结论
在 vLLM,我们的承诺不仅仅是交付高性能软件。我们正在构建一个系统,以增强信任、实现变更的透明追踪并邀请积极参与。携手并进,我们可以塑造 AI 的未来,推动创新边界,同时使其为所有人所用。
如需合作请求或咨询,请通过 vllm-questions@lists.berkeley.edu 联系我们。加入我们在 GitHub 上不断壮大的社区,或在 vLLM Slack 上与我们联系。让我们共同推动 AI 创新向前发展。
致谢
我们向 uv 社区(特别是 Charlie Marsh)表示感谢,感谢他们创建了一个快速、创新的包管理器。特别感谢 Kevin Luu (Anyscale)、 Daniele Trifirò (Red Hat) 和 Michael Goin (Neural Magic) 对简化工作流程的宝贵贡献。Kaichao You 和 Simon Mo 来自加州大学伯克利分校团队,领导了这些工作。