使用 Docker 部署

使用 Docker 部署#

vLLM 提供了一个用于部署的官方 Docker 镜像。该镜像可用于运行与 OpenAI 兼容的服务器,并在 Docker Hub 上以 vllm/vllm-openai 的形式提供。

$ docker run --runtime nvidia --gpus all \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    --env "HUGGING_FACE_HUB_TOKEN=<secret>" \
    -p 8000:8000 \
    --ipc=host \
    vllm/vllm-openai:latest \
    --model mistralai/Mistral-7B-v0.1

备注

你可以使用 ipc=host 标志或 --shm-size 标志来允许容器访问主机的共享内存。vLLM 使用 PyTorch,它使用共享内存在幕后进程之间共享数据,特别是对于张量并行推理。

你可以通过提供的 Dockerfile 从源代码构建和运行 vLLM。要构建 vLLM:

$ DOCKER_BUILDKIT=1 docker build . --target vllm-openai --tag vllm/vllm-openai # optionally specifies: --build-arg max_jobs=8 --build-arg nvcc_threads=2

备注

默认情况下,vLLM 将为所有 GPU 类型构建,以实现最广泛的发布。如果你只是为机器正在运行的当前 GPU 类型构建,则可以添加参数 --build-arg torch_cuda_arch_list="",以便 vLLM 找到当前 GPU 类型并为此构建。

运行 vLLM:

$ docker run --runtime nvidia --gpus all \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    -p 8000:8000 \
    --env "HUGGING_FACE_HUB_TOKEN=<secret>" \
    vllm/vllm-openai <args...>

备注

仅适用于 `v0.4.1` 和 `v0.4.2` - 这些版本下的 vLLM docker 镜像应该在 root 用户下运行,因为在运行时需要加载 root 用户主目录下的一个库,即 /root/.config/vllm/nccl/cu12/libnccl.so.2.18.1。如果你在其他用户下运行容器,则可能需要先更改库(以及所有父目录)的权限,以允许用户访问它,然后使用环境变量 VLLM_NCCL_SO_PATH=/root/.config/vllm/nccl/cu12/libnccl.so.2.18.1 运行 vLLM。