贡献#

构建和测试#

建议在提交 PR 之前,先设置本地开发环境来构建 vllm-ascend 并运行测试。

设置开发环境#

理论上,vllm-ascend 的构建仅支持 Linux,因为 vllm-ascend 的依赖 torch_npu 只支持 Linux。

但你仍然可以在 Linux/Windows/macOS 上设置开发环境来进行 lint 和运行基本测试。

本地运行 Lint#

# Choose a base dir (~/vllm-project/) and set up venv
cd ~/vllm-project/
python3 -m venv .venv
source ./.venv/bin/activate

# Clone vllm-ascend and install
git clone https://github.com/vllm-project/vllm-ascend.git
cd vllm-ascend

# Install lint requirement and enable pre-commit hook
pip install -r requirements-lint.txt

# Run lint (You need to install pre-commits deps via proxy network at first time)
bash format.sh

本地运行 CI#

完成“运行 Lint”设置后,您可以本地运行 CI。

cd ~/vllm-project/

# Run CI need vLLM installed
git clone --branch v0.12.0 https://github.com/vllm-project/vllm.git
cd vllm
pip install -r requirements/build.txt
VLLM_TARGET_DEVICE="empty" pip install .
cd ..

# Install requirements
cd vllm-ascend
# For Linux:
pip install -r requirements-dev.txt
# For non Linux:
cat requirements-dev.txt | grep -Ev '^#|^--|^$|^-r' | while read PACKAGE; do pip install "$PACKAGE"; done
cat requirements.txt | grep -Ev '^#|^--|^$|^-r' | while read PACKAGE; do pip install "$PACKAGE"; done

# Run ci:
bash format.sh ci

提交 Commit#

# Commit changed files using `-s`
git commit -sm "your commit info"

🎉 恭喜!您已完成开发环境设置。

本地测试#

您可以参考 Testing 来设置测试环境并本地运行测试。

DCO 和 Signed-off-by#

当向本项目贡献更改时,您必须同意 DCO。Commit 必须包含一个 Signed-off-by: 头,以证明您同意 DCO 的条款。

使用 git commit-s 选项将自动添加此头。

PR 标题和分类#

只有特定类型的 PR 才会被审查。PR 标题应加上适当的前缀以表明更改类型。请使用以下前缀之一:

  • [Attention] 用于 attention 的新功能或优化。

  • [Communicator] 用于 communicator 的新功能或优化。

  • [ModelRunner] 用于 model runner 的新功能或优化。

  • [Platform] 用于 platform 的新功能或优化。

  • [Worker] 用于 worker 的新功能或优化。

  • [Core] 用于 vllm-ascend 核心逻辑(如 platform, attention, communicators, model runner)的新功能或优化。

  • [Kernel] 用于影响计算核和 op 的更改。

  • [Bugfix] 用于 bug 修复。

  • [Doc] 用于文档修复和改进。

  • [Test] 用于测试(如单元测试)。

  • [CI] 用于构建或持续集成改进。

  • [Misc] 用于不属于上述类别的 PR。请谨慎使用。

注意

如果 PR 跨越多个类别,请包含所有相关的前缀。

其他#

您可以在 docs.vllm.ai 上找到更多关于贡献 vLLM Ascend 后端插件的信息。如果您在贡献过程中遇到任何问题,请随时提交 PR 来改进文档,以帮助其他开发者。