跳到内容

GPU

vLLM-Omni 是一个 Python 库,支持以下 GPU 变体。该库本身主要包含框架和模型的 Python 实现。

要求

  • 操作系统:Linux
  • Python:3.12

注意

vLLM-Omni 目前不支持 Windows 原生。

  • GPU:计算能力 7.0 或更高(例如,V100、T4、RTX20xx、A100、L4、H100 等)
  • GPU:已在 gfx942 上验证(应支持 vLLM 支持的 AMD GPU)。

使用 Python 进行设置

创建新的 Python 环境

建议使用 uv,一个非常快速的 Python 环境管理器,来创建和管理 Python 环境。请按照 文档 安装 uv。安装 uv 后,您可以使用以下命令创建新的 Python 环境。

uv venv --python 3.12 --seed
source .venv/bin/activate

预构建的 Wheels

vLLM 安装

vLLM-Omni 基于 vLLM v0.12.0 构建。请使用以下命令安装。

uv pip install vllm==0.12.0 --torch-backend=auto

vLLM-Omni 安装

uv pip install vllm-omni

从源代码构建 Wheel

vLLM 安装

如果您不需要修改 vLLM 的源代码,可以直接安装该库的稳定版 0.12.0 发布版本。

uv pip install vllm==0.12.0 --torch-backend=auto

vLLM-Omni 安装

安装 vLLM-Omni 的附加要求

git clone https://github.com/vllm-project/vllm-omni.git
cd vllm-omni
uv pip install -e .

(可选)从源代码安装 vLLM如果您想检查、修改或调试 vLLM 的源代码,请按照以下说明从源代码安装该库。

git clone https://github.com/vllm-project/vllm.git
cd vllm
git checkout v0.12.0
设置环境变量以获取预编译的 wheel 文件。如果存在网络问题,只需手动下载 whl 文件。并将 VLLM_PRECOMPILED_WHEEL_LOCATION 设置为 whl 文件的本地绝对路径。
export VLLM_PRECOMPILED_WHEEL_LOCATION=https://github.com/vllm-project/vllm/releases/download/v0.12.0/vllm-0.12.0-cp38-abi3-manylinux_2_31_x86_64.whl
使用以下命令安装 vllm(如果您没有现有的 PyTorch)。
uv pip install --editable .
使用以下命令安装 vllm(如果您已有 PyTorch)。
python use_existing_torch.py
uv pip install -r requirements/build.txt
uv pip install --no-build-isolation --editable .

使用 Docker 进行设置

构建自己的 Docker 镜像

构建 Docker 镜像

DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile.rocm -t vllm-omni-rocm .

如果您想指定要构建的 GPU 架构以缩短构建时间

DOCKER_BUILDKIT=1 docker build \
  -f docker/Dockerfile.rocm \
  --build-arg PYTORCH_ROCM_ARCH="gfx942;gfx950" \
  -t vllm-omni-rocm .

启动 Docker 镜像

docker run -it \
--network=host \
--group-add=video \
--ipc=host \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
--device /dev/kfd \
--device /dev/dri \
-v <path/to/model>:/app/model \
vllm-omni-rocm \
bash

从源代码构建 wheel

获取正确的 Docker 环境

v0.12.0 版本发布于 2025 年 12 月 3 日,因此我们将拉取一个接近发布日期的 AMD 夜间构建 Docker 镜像。选择 rocm/vllm-dev:nightly_main_20251205 是因为它具有正确的 transformers 版本,支持 qwen3_omni。

docker pull rocm/vllm-dev:nightly_main_20251005

启动 Docker 环境

在此 Docker 环境中,我们安装了 vLLM 的所有依赖项,例如 flash-attnaiter

#!/bin/bash
docker run -it \
   --privileged \
   --network=host \
   --group-add=video \
   --ipc=host \
   --cap-add=SYS_PTRACE \
   --security-opt seccomp=unconfined \
   --device /dev/kfd \
   --device /dev/dri \
   --name vllmomni \
   rocm/vllm-dev:nightly_main_20251005 \
   bash

更新 Docker 依赖

sudo apt update
sudo apt install ffmpeg -y

vLLM 安装

安装 vLLM 的 v0.12.0 版本,因为 vLLM-Omni 目前依赖于 v0.12.0。

# uninstall existing vllm which is based on the main branch, not on the releases branch
python3 -m pip uninstall -y vllm
git clone https://github.com/vllm-project/vllm.git vllm0120
cd vllm0120/

# checkout the version tag v0.12.0
git checkout -b v0.12.0 v0.12.0

# you should see 0.12.0
python -c "import setuptools_scm; print(setuptools_scm.get_version())"

# PYTORCH_ROCM_ARCH=<your-gpu-arch> python3 setup.py develop
PYTORCH_ROCM_ARCH=gfx942 python3 setup.py develop

vLLM-Omni 安装

安装 vllm-omni 有两种方法。

  1. 从 PyPI 安装
pip install vllm-omni

# you might want to also download the source code of the same version to run the examples
  1. 从源码安装
# clone and checkout to the release version.
git clone https://github.com/vllm-project/vllm-omni.git
cd vllm-omni
git checkout v0.12.0rc1
pip install -e .

设置环境变量

在安装 vllmvllm-omni 后,在运行任何示例和命令之前,请同时设置环境变量。

export MIOPEN_FIND_MODE=FAST
export VLLM_ROCM_USE_AITER=1
export VLLM_ROCM_USE_AITER_MHA=1
export VLLM_ROCM_USE_AITER_LINEAR=0
export VLLM_ROCM_USE_AITER_RMSNORM=0

预构建的镜像

vLLM-Omni 提供官方 Docker 镜像用于部署。这些镜像构建在 vLLM Docker 镜像之上,并在 Docker Hub 上提供,地址为 vllm/vllm-omni。vLLM-Omni 的版本指示了它基于哪个 vLLM 版本。

以下是一个已在 2 x H100 上验证过的示例部署命令。

docker run --runtime nvidia --gpus 2 \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    --env "HF_TOKEN=$HF_TOKEN" \
    -p 8091:8091 \
    --ipc=host \
    vllm/vllm-omni:v0.12.0rc1 \
    --model Qwen/Qwen3-Omni-30B-A3B-Instruct --port 8091

提示

您可以使用此 Docker 镜像以与 vLLM 相同的方式来提供模型!要做到这一点,请确保覆盖默认的入口点(vllm serve --omni),该入口点仅适用于 vLLM-Omni 项目中支持的模型。