【vLLM 学习】安装

vLLM 是一款专为大语言模型推理加速而设计的框架,实现了 KV 缓存内存几乎零浪费,解决了内存管理瓶颈问题。

更多 vLLM 中文文档及教程可访问 →https://vllm.hyper.ai/

vLLM 是一个 Python 库,包含预编译的 C++ 和 CUDA (12.1) 二进制文件。

依赖环境

  • 操作系统:Linux
  • Python:3.8 - 3.12
  • GPU:计算能力 7.0 或更高(例如 V100、T4、RTX20xx、A100、L4、H100 等)

使用 pip 安装

您可以使用 pip 安装 vLLM:

# (Recommended) Create a new conda environment.
#(推荐)创建一个新的 conda 环境。

conda create -n myenv python=3.10 -y
conda activate myenv

# Install vLLM with CUDA 12.1.
# 安装带有 CUDA 12.1 的 vLLM。

pip install vllm

注意

截至目前,vLLM 的二进制文件默认使用 CUDA 12.1 和公共 PyTorch 发行版本进行编译。我们还提供使用 CUDA 11.8 和公共 PyTorch 发行版本编译的 vLLM 二进制文件:

# Install vLLM with CUDA 11.8.
# 安装带有 CUDA 11.8 的 vLLM。

export VLLM_VERSION=0.4.0
export PYTHON_VERSION=310
pip install https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION}/vllm-${VLLM_VERSION}+cu118-cp${PYTHON_VERSION}-cp${PYTHON_VERSION}-manylinux1_x86_64.whl --extra-index-url https://download.pytorch.org/whl/cu118

为了提高性能,vLLM 必须编译多个 cuda 内核。遗憾的是,这种编译会引入其他 CUDA 版本和 PyTorch 版本的二进制不兼容性,即使对于具有不同构建配置的相同 PyTorch 版本也是如此。

因此,建议使用 全新的 conda 环境安装 vLLM。如果您有不同的 CUDA 版本或者想要使用现有的 PyTorch 安装,则需要从源代码构建 vLLM。请参阅以下的说明。

注意

自 v0.5.3 版本以来,vLLM 还为每次提交发布一个 wheel 子集(Python 3.10、3.11 和 CUDA 12)。您可以使用以下命令下载它们:

 export VLLM_VERSION=0.5.4 # vLLM's main branch version is currently set to latest released tag

export VLLM_VERSION=0.5.4 # vLLM 的主分支版本当前设置为最新发布的标签

pip install https://vllm-wheels.s3.us-west-2.amazonaws.com/nightly/vllm-${VLLM_VERSION}-cp38-abi3-manylinux1_x86_64.whl
# You can also access a specific commit

# 你还可以访问特定的提交

# export VLLM_COMMIT=...

# 导出 VLLM_COMMIT=...

# pip install https://vllm-wheels.s3.us-west-2.amazonaws.com/${VLLM_COMMIT}/vllm-${VLLM_VERSION}-cp38-abi3-manylinux1_x86_64.whl

从源代码构建

您还可以从源代码构建并安装 vLLM:

git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -e .  # This may take 5-10 minutes.

pip install -e 。  # 这可能需要 5-10 分钟。

注意

vLLM 只能在 Linux 上完全运行,但您仍然可以在其他系统(例如 macOS)上构建它。此构建仅用于开发目的,允许导入并提供更方便的开发环境。这些二进制文件不会被编译,也无法在非 Linux 系统上运行。您可以使用以下命令创建这样的构建:

export VLLM_TARGET_DEVICE=empty
pip install -e .

提示

从源代码进行构建需要大量的编译工作。如果您多次从源代码构建,那么缓存编译结果是很有益处的。例如,您可以通过 conda install ccache 或 apt install ccache 安装 ccache 。只要 which ccache 命令可以找到 ccache 二进制文件,构建系统就会自动使用它。在第一次构建之后,后续的构建将会快很多。

提示

为了避免系统过载,您可以通过环境变量 MAX_JOBS 限制同时运行的编译任务数量。例如:

export MAX_JOBS=6
pip install -e .

提示

如果您在构建 vLLM 时遇到问题,我们建议使用 NVIDIA PyTorch Docker 镜像。

# Use `--ipc=host` to make sure the shared memory is large enough.

# 使用 `--ipc=host` 确保共享内存足够大。

docker run --gpus all -it --rm --ipc=host nvcr.io/nvidia/pytorch:23.10-py3

如果您不想使用 docker,建议完整安装 CUDA 工具包。您可以从官方网站下载并安装它。安装完成后,将环境变量 CUDA_HOME 设置为 CUDA 工具包的安装路径,并确保 nvcc 编译器在您的 PATH 中,例如:

export CUDA_HOME=/usr/local/cuda
export PATH="${CUDA_HOME}/bin:$PATH"

以下是验证 CUDA 工具包是否已正确安装的完整检查:

nvcc --version # verify that nvcc is in your PATH

nvcc --version # 验证 nvcc 是否在您的 PATH 中

${CUDA_HOME}/bin/nvcc --version # verify that nvcc is in your CUDA_HOME

${CUDA_HOME}/bin/nvcc --version # 验证 nvcc 是否在您的 CUDA_HOME 中
<think>嗯,用户现在遇到了在Conda环境中安装vllm时出现的错误,具体是subprocess.CalledProcessError,提示cmake构建失败。首先,我需要了解vllm安装依赖,以及常见的安装问题。vllm需要CUDA、CMake、gcc等编译工具,可能还需要特定版本Python。用户使用的是Conda环境,所以可能某些依赖版本不兼容或者缺少必要的。 首先,错误信息显示在构建扩展时cmake失败,返回状态1。可能的原因包括CUDA未正确安装或路径未设置,CMake版本过旧,编译器版本不兼容,或者缺少某些依赖如libpython-dev。另外,用户可能没有安装vllm所需的特定组件,比如xformers或者flash-attention。还有可能是并行编译的线程数过高导致的问题,比如用户用了-j=192,这可能在资源不足时导致失败。 接下来需要分步骤建议用户检查这些可能性。首先确保CUDA安装正确,并且在Conda环境中可用。然后检查CMake和gcc的版本是否满足要求。安装必要的开发,如libpython3-dev。建议用户尝试降低编译线程数,比如使用-j4。如果使用旧版vllm,可能需要升级或从源码安装。此外,确保所有依赖如xformers已正确安装。最后,如果问题依旧,查看详细的CMake日志来定位具体错误。 用户可能对Conda环境管理和编译过程不太熟悉,所以需要给出具体的命令示例,比如如何安装CUDA工具包,如何设置环境变量,如何升级CMake等。同时提醒用户注意Conda环境与系统环境之间的兼容性问题,比如确保Conda环境中的CUDA版本与系统驱动兼容。此外,用户可能不知道如何获取更详细的错误日志,需要指导他们如何重新运行安装命令并捕获输出。 最后,需要以清晰的结构呈现解决方案,分步骤说明,每个可能的原因和对应的解决办法,并强调检查CUDA、编译器版本、依赖等关键点。确保回答详细且易于跟随,帮助用户逐步排查问题,避免遗漏可能的解决路径。</think>在Conda环境中安装vllm时遇到 `subprocess.CalledProcessError` 错误,通常与编译环境配置、依赖缺失或版本冲突有关。以下是详细排查和解决方法: --- ### 一、问题分析 错误关键信息: ```bash subprocess.CalledProcessError: Command '['cmake', '--build', '.', '-j=192', '--target=_C']' returned non-zero exit status 1 ``` - **原因**:在编译vllm的C++扩展时失败,可能与以下因素相关: 1. **CUDA环境未正确配置**(版本不兼容或路径未识别) 2. **CMake或编译器版本过低** 3. **缺少系统级依赖**(如`libpython`开发包) 4. **并行编译线程数过高**(`-j=192`可能导致资源不足) 5. **Python环境或依赖包冲突** --- ### 二、逐步解决方案 #### 1. **验证CUDA环境** - **检查CUDA版本**: ```bash nvcc --version # 查看CUDA编译器版本 conda list cudatoolkit # 确认Conda环境中的CUDA版本 ``` vllm需要**CUDA 11.8或更高版本**,建议通过Conda安装匹配的CUDA工具包: ```bash conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit ``` - **设置CUDA_HOME环境变量**: ```bash export CUDA_HOME=$CONDA_PREFIX # 如果CUDA通过Conda安装 ``` #### 2. **升级编译工具链** - **更新CMake和编译器**: ```bash conda install cmake make gcc gxx_linux-64 -c conda-forge ``` - **安装系统级依赖**(Ubuntu/Debian示例): ```bash sudo apt-get install build-essential python3-dev ``` #### 3. **调整编译线程数** - 减少并行编译线程数(如`-j=4`): ```bash CMAKE_ARGS="-DCMAKE_BUILD_PARALLEL_LEVEL=4" pip install vllm ``` #### 4. **检查Python环境** - **确保Python版本兼容性**: vllm要求Python >=3.8,推荐使用Python 3.9-3.11。 - **创建干净的Conda环境**: ```bash conda create -n vllm_env python=3.10 conda activate vllm_env ``` #### 5. **手动安装依赖项** - **安装关键依赖**: ```bash pip install torch --extra-index-url https://download.pytorch.org/whl/cu118 pip install xformers # 确保安装与CUDA兼容的版本 ``` - **从源码编译vllm**: ```bash git clone https://github.com/vllm-project/vllm.git cd vllm pip install -e . # 可附加`-v`参数查看详细日志 ``` --- ### 三、常见错误场景 #### 场景1:`GLIBCXX`版本过低 - **现象**:编译时报`GLIBCXX_3.4.30`缺失 - **解决**: ```bash conda install libgcc # 更新Conda环境中的libstdc++ ``` #### 场景2:`ninja`构建失败 - **现象**:`ninja: build stopped: subcommand failed` - **解决**: ```bash conda install ninja # 确保ninja已安装 ``` #### 场景3:`CUDA kernel`编译错误 - **现象**:提示`CUDA arch`不兼容 - **解决**: ```bash # 指定GPU计算架构(如A100为80,RTX 3090为86) export VLLM_TARGET_DEVICES="cuda:80,cuda:86" pip install vllm ``` --- ### 四、调试建议 - **查看完整错误日志**: ```bash pip install vllm --no-cache-dir --verbose 2>&1 | tee install.log ``` 搜索日志中的 `error:` 或 `fatal error:` 定位具体问题。 - **尝试旧版本vllm**: ```bash pip install vllm==0.2.5 # 暂时回退到稳定版本 ``` --- ### 五、操作总结 | 步骤 | 命令/操作示例 | |--------------------|------------------------------------------------------------------------------| | 验证CUDA | `nvcc --version`,`conda install cuda-toolkit=11.8` | | 升级编译工具 | `conda install cmake gcc`,`sudo apt install build-essential` | | 减少编译线程 | `CMAKE_ARGS="-DCMAKE_BUILD_PARALLEL_LEVEL=4" pip install vllm` | | 源码安装 | `git clone` + `pip install -e .` | | 检查依赖冲突 | `conda list`,创建干净环境 | --- ### 六、扩展提示 - 如果使用NVIDIA Docker,建议直接使用vllm官方镜像: ```bash docker run --gpus all -it vllm/vllm-openai:latest ``` - 部分旧GPU可能需要禁用某些优化: ```bash pip install vllm --no-build-isolation # 禁用隔离构建 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值