执行摘要
- 一句话:NPU CI 因 torchaudio 依赖位置调整修复
- 推荐动作:PR 较小,但展示了依赖管理的最佳实践:将版本敏感的依赖从项目元数据中剥离,交由 CI 脚本按环境动态安装。值得阅读 review 中的讨论。
功能与动机
NPU CI 在合并 #26267 后失败。原因是 torchaudio 版本与 PyTorch 版本不匹配,需要从项目元数据中解耦,由 CI 脚本根据实际 PyTorch 版本动态安装。
实现拆解
- 移除 pyproject_npu.toml 中的 torchaudio 依赖:删除第 60 行
"torchaudio==2.8.0",避免固定版本与 CI 实际使用的 PyTorch 版本冲突。
- 在 CI 脚本中新增 torchaudio 安装:在
scripts/ci/npu/npu_ci_install_dependency.sh 的 else 分支(非 OPTIONAL_DEPS 模式)中,添加 TORCHAUDIO_VERSION="2.8.0" 变量,并在 uv pip install 命令中增加 torchaudio==${TORCHAUDIO_VERSION},确保与 PyTorch 2.8.0 一同安装。
- 修复 review 指出的遗漏:根据 gemini-code-assist[bot] 的建议,在
if 分支(OPTIONAL_DEPS 开启时)也补充了 torchaudio 的安装(例如 TORCHAUDIO_VERSION="2.10.0"),防止该路径下 CI 失败。
关键文件:
scripts/ci/npu/npu_ci_install_dependency.sh(模块 CI脚本;类别 infra;类型 infrastructure): CI 安装脚本,新增 torchaudio 显式安装,确保与 PyTorch 版本对齐。修复了 review 指出的 OPTIONAL_DEPS 分支遗漏。
python/pyproject_npu.toml(模块 依赖配置;类别 config;类型 configuration): NPU 项目依赖配置文件,移除了 torchaudio 固定版本依赖,避免版本冲突。
关键符号:未识别
关键源码片段
scripts/ci/npu/npu_ci_install_dependency.sh
CI 安装脚本,新增 torchaudio 显式安装,确保与 PyTorch 版本对齐。修复了 review 指出的 OPTIONAL_DEPS 分支遗漏。
# scripts/ci/npu/npu_ci_install_dependency.sh ( 片段 )
if [ -n "$OPTIONAL_DEPS" ]; then
# OPTIONAL_DEPS 分支:安装 torchaudio 2.10.0 以匹配可选依赖版本
TORCHAUDIO_VERSION="2.10.0"
${UV_PIP_INSTALL} torch==${PYTORCH_VERSION} torchvision==${TORCHVISION_VERSION} torchaudio==${TORCHAUDIO_VERSION} --index-url ${TORCH_CACHE_URL} --extra-index-url ${PYPI_CACHE_URL}
else
# 非 OPTIONAL_DEPS 分支:使用与 PyTorch 2.8.0 对齐的 torchaudio 2.8.0
PYTORCH_VERSION="2.8.0"
TORCHVISION_VERSION="0.23.0"
TORCHAUDIO_VERSION="2.8.0"
${UV_PIP_INSTALL} torch==${PYTORCH_VERSION} torchvision==${TORCHVISION_VERSION} torchaudio==${TORCHAUDIO_VERSION} --index-url ${TORCH_CACHE_URL} --extra-index-url ${PYPI_CACHE_URL}
fi
评论区精华
gemini-code-assist[bot] 指出将 torchaudio 从 pyproject_npu.toml 移除后,当 OPTIONAL_DEPS 启用时(if 分支)会完全缺失 torchaudio,导致 CI 失败。建议在 if 分支也显式安装对应版本。该问题已在后续提交中修复。
- torchaudio 在 OPTIONAL_DEPS 路径下缺失 (correctness): PR 作者在后续提交中修复,在 if 分支也添加了 torchaudio 安装。
风险与影响
- 风险:低风险。变更仅涉及依赖管理和 CI 脚本,不影响运行时逻辑。但需确保
OPTIONAL_DEPS 与普通模式下的 torchaudio 版本一致性,避免版本冲突。
- 影响:直接影响 NPU CI 流程,修复了因 #26267 引入的回归。对用户无感知,仅影响 CI 环境。
- 风险标记:仅影响 CI 环境
关联脉络
- PR #26267 [PR #26267]: PR #26390 明确说明是为了修复 #26267 合并后导致的 NPU CI 失败。
参与讨论