vllm github installation

模型与算力

讲清从 vLLM 的 GitHub 仓库拿到代码并装进自己环境的路子:源码安装、依赖对齐、CUDA 与 Python 版本这几处最容易翻车,按检查清单一步步排。

很多人第一次装 vLLM 是照着一行 pip 命令敲的,结果卡在编译报错、CUDA 版本不匹配、torch 被顶掉上,折腾半天还在原地。这篇不讲框架原理,只讲怎么从 vLLM 的 GitHub 仓库把它装进来:什么情况该走源码安装、装之前要核对哪几项、报错按什么顺序查。装完跑不跑得起来,取决于你的卡型和环境,文末给了判断边界。

很多人第一次装 vLLM,是照着一行 pip 命令敲的,结果卡在编译报错、CUDA 版本对不上、torch 被别的包顶掉上,折腾半天还在原地。这篇不讲框架原理,只讲怎么从 vLLM 的 GitHub 仓库把它装进你自己的环境:什么情况该走源码安装、装之前要核对哪几项、报错按什么顺序查。

先说一句实话:装不装得起来,很大程度取决于你的卡型和已有环境,不是照着文档抄一遍就一定能跑。所以下面每一步都给了判断标准和验证动作,你按自己情况取舍。最新支持哪些 Python 与 CUDA 组合,去站内 模型资料库(/models) 和仓库 README 对一遍当时的说明,别靠记忆。

先定路线:什么情况装预编译包,什么情况必须啃源码

官方发布渠道一般会提供预编译 wheel,对绝大多数只想把模型跑起来的人是首选,省掉整段编译时间和依赖折腾。但 wheel 是按特定 Python 与 CUDA 组合打出来的,你的环境对不上就会装不上,或者装上之后一跑就报错。所以第一步不是敲命令,是判断自己属于哪一类。

你的情况建议路线判断依据
只是想把某个开源模型跑起来先试预编译包环境版本能对上官方发布的组合
要跟着主线改代码或打补丁源码安装需要自己编译出改过的版本
用官方 wheel 尚未覆盖的新卡型源码安装仓库里有对应后端说明
要和自研算子一起用源码安装需要在构建时接进来
  • 要跟着主线改代码、要接自研算子,或者给框架打过补丁,只能走源码,预编译包改不了。
  • 要用官方 wheel 还没覆盖的新卡型或新加速后端,同样得自己编。
  • 先在仓库的 Releases 与 README 里确认当前发版支持哪些 Python 与 CUDA 组合,再去站内 /compute/gpus 核对你手上卡的规格,两边对不齐就别硬上。
  • 如果你只是想快速试一个模型,先想清楚是不是真的需要 vLLM;站内已有 vllm 和 ollama 对比的文章,选型没定之前别急着编译。

动手之前的环境盘点清单

源码安装翻车,八成不是命令写错,而是环境本身就不满足。下面这几项建议逐条打勾再动手,尤其是用共享机器或云主机的时候,缺哪一项都可能在编译中途停下来,而日志往往不会直接告诉你是驱动的问题。

Python 版本
按仓库文档给的区间选,偏新或偏旧都容易在依赖解析阶段炸;用独立虚拟环境或 conda 环境隔离,别往系统 Python 里装。
显卡驱动
驱动版本要满足你要装的那版 CUDA 运行时要求,驱动太旧时编译能过、跑起来才报错,属于最费时间的一类问题。
PyTorch 与 CUDA 对应
vLLM 依赖特定 torch 版本,先手动装好匹配的 torch,再装 vLLM,能少一大半依赖冲突。
编译资源
本机要有 CUDA toolkit,还要留够磁盘和内存;纯 CPU 环境或显存很小的小机器,多数场景不适合这套路线。
  1. 建独立环境用 venv 或 conda 建一个干净环境,先别装别的包。验证方式:环境内 pip list 只有基础依赖。
  2. 装匹配的 torch按仓库说明装对应 CUDA 版本的 torch。验证方式:进入 Python 打印 torch 版本与 CUDA 可用状态。
  3. 核对驱动与卡型用系统命令看驱动版本,再和你要装的 CUDA 运行时要求对一遍。验证方式:两边版本区间能对上才算过。
  4. 留足磁盘与内存编译过程占用不低,先看剩余空间。验证方式:编译前确认可用磁盘明显大于仓库文档建议值。

从 clone 到跑通服务的操作顺序

环境过关之后,安装本身其实不复杂,麻烦的是别把顺序搞反。这里给的顺序是:先固定代码版本,再装依赖和构建工具,然后编译安装,最后做最小验证。每一步都要有明确的成功标志,不要连着做完再看结果。

  1. 克隆仓库并切分支clone 下来后切到与你的基础环境相匹配的分支或 tag,别直接拿主分支当生产版本用,主线随时在动。验证方式:git log 确认当前提交是你要的那一个。
  2. 按文档装依赖通常先装构建工具与 torch,再执行安装命令;是否加编译加速相关的环境变量,按仓库文档建议来,不要自己拍脑袋加。验证方式:依赖安装阶段没有报错退出。
  3. 编译并安装执行安装命令,等待编译结束。验证方式:命令正常返回,末尾没有错误堆栈。
  4. 最小验证导入模块、打印版本号、跑一次自检命令,确认装的是自己刚编的那份,而不是环境里残留的旧版本。验证方式:版本号和你切的 tag 对得上。
  5. 再起小模型服务先用一个小模型起服务,看日志有没有加载成功的提示。一次就上大模型,出错时很难分清是安装问题还是权重问题。

装不上时的排查顺序

报错别急着重装,先判断它发生在哪一层。依赖解析阶段、编译阶段、导入与运行时阶段,这三层对应完全不同的处理方式,混着查只会浪费时间。下面给的是从上到下逐层收窄的顺序,查到哪一层停在哪一层。

  • 先看报错发生在哪一层:依赖解析、编译,还是导入与运行时。三层对应不同处理方式,别一上来就重装。
  • 编译类报错优先查 CUDA 与编译器版本,其次看磁盘和内存是不是被吃满了;内存不足导致的编译中断,日志里往往看不出真正原因。
  • 依赖冲突类报错优先怀疑 torch 被别的包顶掉版本,用环境内实际安装版本去比对仓库要求,而不是凭印象。
  • 运行时才报错、提示找不到算子或设备不可用,多半是装的时候没编进对应后端;回到第一步确认卡型与后端是否被支持。
  • 实在排不动,就把完整环境信息一次贴全再求助:Python、CUDA、驱动、torch、卡型,只发一行报错基本没人能答。

这套路线不适合你的几种情况

上面这套流程是有前提的:你有受支持的加速卡,能改自己的运行环境,并且打算长期维护这个服务。三条里缺一条,源码安装的投入产出就不划算,这时候换个思路比硬啃更省事。

你的情况为什么不适合更省事的做法
只想快速试模型效果不打算长期维护服务用更省事的本地运行工具
没有受支持的加速卡主线按官方装大概率跑不起来先确认有没有对应适配分支
共享机器且无 root 权限编译依赖和驱动层常需更高权限先在能改环境的地方验证通再迁移

那怎么判断自己到底该不该走源码这条路?一个简单的标准:如果只是为了跑一个模型看效果,预编译包或者更轻的本地工具就够了;如果是要把服务长期跑起来、要做定制,再考虑编译。现有的硬件规格和加速卡对照,到站内 /compute/gpus 核对当时的数字再决定。

下一步选型和环境都定下来之后,去看站内整理的中转站可信度与价格追踪,比你自己一家家试更省时间;价格和可用性都按当时的页面为准。

常见问题

能不能直接 pip 装,非要克隆仓库吗?

多数情况先试官方发布的预编译包,装得上且跑得动就没必要碰源码。只有当你的 CUDA、Python 或卡型不在预编译覆盖范围内,或者你要改代码、接自研算子时,才值得从 GitHub 仓库拉源码编译。判断依据去仓库 README 里对一遍支持矩阵。

装的时候提示 torch 版本不对怎么办?

先看仓库文档要求的 torch 版本区间,再查当前环境里实际装的是哪个版本,两个不一致就先把 torch 卸干净再按要求的版本重装,然后才装 vLLM。顺序反了会反复被依赖解析覆盖,越装越乱。建议全程在独立虚拟环境里做。

编译过了但起服务就崩,是装错了吗?

不一定。先看崩在哪一步:是找不到模型权重、显存不够、还是没编进对应后端。前两种跟安装无关;第三种才需要回到安装环节确认卡型与后端支持情况。用最小模型先验证一遍通路,比直接上大模型更好定位。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。