本文介绍如何搭建 vLLM 的开发环境,包括 CPU 和 GPU 两种环境配置方法。vLLM 是一个高效的大语言模型推理和服务框架,支持各种主流的开源模型。

准备工作

在开始搭建环境前,我们需要先克隆 vLLM 的代码库并安装一些基本依赖。

Info

以下步骤适用于 CPU 和 GPU 环境的通用部分

克隆代码库

git clone https://github.com/vllm-project/vllm.git
cd vllm

安装基础依赖

sudo apt-get install ccache numactl xz-utils ninja-build

创建虚拟环境

uv venv .venv
source .venv/bin/activate
uv pip install pip
uv pip install sccache

CPU 开发环境

Note

CPU 环境适合没有 GPU 的开发者或者只需要进行功能开发和测试的场景

方法一:使用 Docker

使用 Docker 是最简单的方式,可以避免环境配置问题:

sudo docker build -f docker/Dockerfile.cpu --target vllm-dev -t vllm-cpu-dev --shm-size=16g .

方法二:本地配置

参考 docker/Dockerfile.cpu 文件,我们可以在本地配置开发环境:

CPU 环境详细配置步骤

# 安装 vLLM 依赖
uv pip install -r requirements/cpu.txt --index-strategy unsafe-best-match

uv pip install -r requirements/build.txt

# 构建和安装 vLLM
VLLM_TARGT_DEVICE=cpu python3 setup.py bdist_wheel
VLLM_TARGET_DEVICE=cpu python3 setup.py develop

# 安装测试和开发依赖
uv pip compile requirements/test.in -o requirements/test.txt --index-strategy unsafe-best-match --torch-backend cpu
uv pip install -r requirements/dev.txt

# 安装 pre-commit 钩子
pre-commit install --hook-type pre-commit --hook-type commit-msg

# 检查 vLLM 版本
pip list | grep vllm

GPU 开发环境

Warning

GPU 环境需要 NVIDIA GPU 硬件和相应的 CUDA 驱动支持

参考 docker/Dockerfile 文件,我们可以配置 GPU 开发环境。以下步骤主要针对只开发 Python 部分,不需要编译 C++ 代码的情况:

GPU 环境详细配置步骤
# 安装 vLLM 依赖
uv pip install -r requirements/cuda.txt

uv pip install -r requirements/build.txt

# 使用预编译的二进制文件安装 vLLM
VLLM_USE_PRECOMPILED=1 pip install --editable .



# 安装开发依赖
uv pip install --extra-index-url https://download.pytorch.org/whl/cu128 --index-strategy unsafe-best-match -r requirements/dev.txt

# 安装 pre-commit 钩子
pre-commit install --hook-type pre-commit --hook-type commit-msg

# 检查 vLLM 版本
pip list | grep vllm

测试 vLLM

安装完成后,可以使用以下代码测试 vLLM 是否正常工作:

from vllm import LLM, SamplingParams

# Define a list of input prompts
prompts = [
    "Hello, my name is",
    "The capital of France is",
    "The largest ocean is",
]


if __name__ == "__main__":
    # Define sampling parameters
    sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

    # Initialize the LLM engine with the OPT-125M model
    llm = LLM(model="facebook/opt-125m")

    # Generate outputs for the input prompts
    outputs = llm.generate(prompts, sampling_params)

    # Print the generated outputs
    for output in outputs:
        prompt = output.prompt
        generated_text = output.outputs[0].text
        print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

Tip

测试代码使用了 facebook/opt-125m 模型,这是一个较小的模型,适合快速测试。在实际应用中,您可以替换为其他支持的模型。

总结

通过以上步骤,我们成功搭建了 vLLM 的开发环境,无论是 CPU 还是 GPU 环境。vLLM 作为一个高效的大语言模型推理框架,可以帮助我们更好地部署和使用各种大语言模型。

Note

对于生产环境,建议使用官方提供的预构建 Docker 镜像或按照官方文档进行更详细的配置。