Prhub

#7867 [ci] chore: Fix transformers version in Ascend docker images

原始 PR 作者 lxb007981 合并时间 2026-09-15 11:54 文件变更 2 提交数 1 评论 0 代码增减 +4 / -0

执行摘要

Ascend 镜像将 transformers 固定为 5.10.4

PR body 仅说明 "Fix transformers version 5.10.4 in Ascend docker images",没有附带 issue 或详细背景。结合近期 7604(Ascend 栈升级 Megatron 0.18.0)与 7827(配置 Megatron 集成)等 PR 推断,本次是为消除 bridge 依赖解析带来的 transformers 版本漂移问题;但具体的兼容性故障现象未在本 PR 中说明。

不建议精读,属于常规依赖修复。值得留意的是固定版本的操作位置(bridge 安装之后、清理之前)以及注释习惯;更值得反思的是 PR 描述过于简短,缺少不兼容现象说明和验证方式,团队在后续依赖升级时应补充 issue 链接与冒烟验证步骤。

讨论亮点

本 PR 没有任何 review 讨论或评论线程,唯一审核人 wucong25 直接给予 APPROVED 且未留下说明。变更决策完全由作者和合并者掌握,缺少公开的权衡记录。

实现拆解

变更入口为两个 Ascend 镜像的 Dockerfile:docker/ascend/Dockerfile.ascend_9.1.0_a2 与 docker/ascend/Dockerfile.ascend_9.1.0_a3。具体步骤如下:

  1. 在 A2 镜像构建脚本中,定位到 pip install -e Megatron-Bridge --no-build-isolation --no-deps 步骤之后、rm -rf /tmp/* /var/tmp/* 清理步骤之前,追加一行 pip install transformers==5.10.4,并添加注释 “Fix transformers”。
  2. 在 A3 镜像的 Dockerfile 中执行完全相同的追加,保持两个硬件平台的镜像依赖一致性。
  3. 该位置选择有两个作用:放在 bridge 安装之后可确保最终镜像中的 transformers 被覆盖为固定版本;放在清理步骤之前则不需要新增额外的镜像层。
  4. 无配套测试或配置变更,提交仅 1 个 commit,变更只影响镜像构建产物。潜在注意点是固定版本与 bridge 自身的依赖约束可能冲突,若 bridge 需要更高版本,pip 会直接替换已安装包。
文件 模块 状态 重要度
docker/ascend/Dockerfile.ascend_9.1.0_a2 镜像构建 modified 2.78
docker/ascend/Dockerfile.ascend_9.1.0_a3 镜像构建 modified 2.78

关键源码片段

docker/ascend/Dockerfile.ascend_9.1.0_a2 infrastructure

A2 镜像构建脚本中固定 transformers 版本,是本次变更的主阵地,直接决定镜像内依赖版本。

RUN export PIP_EXTRA_INDEX_URL=https://triton-ascend.osinfra.cn/pypi/simple/ && \
    pip install -e MindSpeed-Bridge --no-deps && \
    pip install -e Megatron-Bridge --no-build-isolation --no-deps && \
    # 在 bridge 安装完成后显式固定 transformers 版本
    # 目的:覆盖依赖解析出的其他版本,保证镜像内为 5.10.4
    pip install transformers==5.10.4 && \
    # 清理构建临时文件与 pip 缓存,减小镜像体积
    rm -rf /tmp/* /var/tmp/* && \
    pip cache purge

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险点集中在固定版本与依赖约束的冲突上:pip install transformers==5.10.4 会直接替换环境中已存在的其他 transformers 版本,如果 MindSpeed-Bridge 或 Megatron-Bridge 后续依赖更高版本,镜像内可能出现运行期行为不一致。此外,该固定只落在 A2、A3 两个 Dockerfile 上,同依赖栈的其他 Ascend 镜像或安装脚本不会自动同步;PR 也未附带任何 CI 验证或镜像冒烟测试,无法确认新镜像能正常加载 Megatron-Bridge。

影响范围集中在 Ascend A2、A3 镜像的构建产物,以及使用这两个镜像的 NPU CI 流水线和用户环境。影响程度低:不涉及 API、配置、训练逻辑,也没有 breaking change;但 transformers 版本差异可能影响 NPU 上 Megatron 训练的精度或性能,属于运行时隐蔽变量。

依赖硬编码且无 lock 同步 无 CI 验证 仅覆盖 A2/A3 两个镜像 PR 描述信息不足

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论