本文介绍如何搭建 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 镜像或按照官方文档进行更详细的配置。