ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

verl 昇腾(Ascend)镜像构建与容器使用指南:Dockerfile 清单、镜像版本命名与一键部署实战

verl 昇腾(Ascend)镜像构建与容器使用指南:Dockerfile 清单、镜像版本命名与一键部署实战 verl 昇腾Ascend镜像构建与容器使用指南Dockerfile 清单、镜像版本命名与一键部署实战【免费下载链接】verlverl/HybridFlow: A Flexible and Efficient RL Post-Training Framework项目地址: https://gitcode.com/GitHub_Trending/ve/verl本文围绕 verl 开源仓库中docs/ascend_tutorial/zh/get_start/dockerfile_build_guidance.rst文档系统讲解 verl 在昇腾 NPUAtlas 系列上的 Docker 镜像体系公开镜像的获取渠道与命名规则、镜像内各组件版本清单、docker/ascend目录下全部 Dockerfile 的选型对照表、从零构建镜像的命令以及容器启动、进入与目录挂载的完整操作模板。读完本文你将能够在 Atlas 200T A2 Box16、Atlas 900 A2 PODc、Atlas 800T A3 等昇腾硬件上快速获取或自行构建 verl 训推环境并正确启动容器完成后续的 GRPO 等 RL 训练验证。一、镜像获取与公开镜像地址verl 在昇腾平台上提供了托管于quay.io的ascend/verl镜像仓库每日构建镜像基于 docker/ascend 目录下的 Dockerfile 构建。用户有两种途径获得昇腾环境直接拉取公开镜像每日构建随主分支持续更新根据docker/ascend下的 Dockerfile 自行构建可锁定 CANN 版本、推理后端与 verl release 版本。镜像命名规则公开镜像的命名遵循两套规则每日构建镜像名格式latest-{推理后端}-{适用产品信息}-{操作系统}-{其他字段}示例见 supported_tags.mdlatest-vllm-910b-ubuntuvLLM 推理后端 910bA2设备 Ubuntulatest-vllm-a3-ubuntuvLLM 推理后端 A3 设备 Ubuntulatest-sglang-910b-ubuntu、latest-sglang-a3-ubuntuSGLang 推理后端对应设备。verl release 版本镜像名格式{verl release版本号}-{CANN版本}-{TorchNPU版本}[-{适用产品信息}-{操作系统}]-{Python版本}[-{推理后端}-{其他字段}]示例release/v0.8.0v0.8.0-cann9.0.0-torch_npu2.9.0.post2-910b-ubuntu22.04-py3.11-vllmv0.8.0-cann9.0.0-torch_npu2.9.0.post2-a3-ubuntu22.04-py3.11-vllm历史版本示例verl-8.5.0-910b-ubuntu22.04-py3.11-v0.7.1、verl-8.3.rc1-a3-ubuntu22.04-py3.11-v0.7.0。这套命名把 CANN 版本、torch_npu 版本、设备类型、操作系统、Python 版本与 verl 版本全部编码进标签中方便在生产环境中精确对齐依赖。二、镜像硬件支持范围当前昇腾镜像与教程覆盖以下硬件平台Atlas 200T A2 Box16对应 Dockerfile 中的a2后缀SOC 为ascend910b1每卡 1 dieAtlas 900 A2 PODcAtlas 800T A3对应 Dockerfile 中的a3后缀每卡 2 die因此 A3 机器上跑示例时需要将n_gpus_per_node设置为 16。从 Dockerfile 源码可以看到设备类型通过ARG SOC_VERSIONascend910b1与基础镜像cann:9.1.0-910b-ubuntu22.04-py3.12固定Dockerfile.ascend_9.1.0_a2构建脚本会依据uname -m自动区分aarch64与x86_64架构分别导出对应的LD_LIBRARY_PATHdevlib 路径以正确链接 CANN 运行库。三、最新镜像内各组件版本信息清单以下为最新镜像基于 CANN 9.1.0内置的组件版本用户在规划环境时应以此为准对齐组件版本基础镜像Ubuntu 22.04Python3.12CANN9.1.0torch2.10.0torch_npu2.10.0.post4torchvision0.25.0vLLM0.23.0vLLM-ascend0.23.0Megatron-LMcore_r0.18.0MindSpeedcore_r0.18.0Megatron-Bridge0.5.0triton-ascend3.2.2SGLangv0.5.10sgl-kernel-npu2026.02.01该清单与 昇腾安装指南 中的关键版本建议保持一致vLLM 0.23.0 / torch 2.10.0 / torch_npu 2.10.0.post4 / MindSpeed 与 Megatron-LM 均为core_r0.18.0。特别说明2026/08 更新后vLLM 后端镜像已弃用mbridge改用Megatron-Bridge 0.5.0完成 DeepSeek 等模型的 Megatron 侧适配这一点在 Dockerfile.ascend_9.1.0_a2 中可以看到git clone --branch v0.5.0 .../Megatron-Bridge.git并pip install -e Megatron-Bridge --no-build-isolation --no-deps的安装步骤。四、Dockerfile 构建镜像脚本清单所有 Dockerfile 均位于 docker/ascend 目录按用途分为三类通用镜像跟随主分支每日构建、verl release 版本镜像锁定版本号与模型定制镜像针对特定模型调优。1. 通用镜像设备类型CANN 基础镜像版本推理后端参考文件A29.1.0vLLMDockerfile.ascend_9.1.0_a2A39.1.0vLLMDockerfile.ascend_9.1.0_a3A28.5.0vLLMDockerfile.ascend_8.5.0_a2A38.5.0vLLMDockerfile.ascend_8.5.0_a3A28.5.0SGLangDockerfile.ascend.sglang_8.5.0_a2A38.5.0SGLangDockerfile.ascend.sglang_8.5.0_a3A28.3.RC1vLLMDockerfile.ascend_8.3.rc1_a2A38.3.RC1vLLMDockerfile.ascend_8.3.rc1_a3A28.3.RC1SGLangDockerfile.ascend.sglang_8.3.rc1_a2A38.3.RC1SGLangDockerfile.ascend.sglang_8.3.rc1_a3A28.2.RC1vLLMDockerfile.ascend_8.2.rc1_a2A38.2.RC1vLLMDockerfile.ascend_8.2.rc1_a32. verl release 版本镜像设备类型CANN 基础镜像版本推理后端verl 版本参考文件A29.0.0vLLMrelease/v0.8.0Dockerfile.ascend_9.0.0_a2_v0.8.0A39.0.0vLLMrelease/v0.8.0Dockerfile.ascend_9.0.0_a3_v0.8.0A28.5.0vLLMrelease/v0.7.1Dockerfile.ascend_8.5.0_a2_v0.7.1A38.5.0vLLMrelease/v0.7.1Dockerfile.ascend_8.5.0_a3_v0.7.13. 模型定制镜像设备类型CANN 基础镜像版本推理后端模型参考文件A28.5.2vLLMQwen3.5Dockerfile.ascend_8.5.2_a2_qwen3-5A38.5.2vLLMQwen3.5Dockerfile.ascend_8.5.2_a3_qwen3-54. 源码安装说明vLLM 推理后端镜像vLLM、vLLM-Ascend、MindSpeed、Megatron-LM、verl 均为源码安装对应源码仓库位于镜像根目录/下见 Dockerfile.ascend_9.1.0_a2 中的git clone与pip install -e步骤。SGLang 推理后端镜像SGLang、MindSpeed、verl 为源码安装源码同样位于镜像根目录/下。例如 SGLang 镜像Dockerfile.ascend.sglang_8.5.0_a2会先将python/pyproject_npu.toml替换为python/pyproject.toml再执行pip install -e python[all_npu]随后安装sgl-kernel-npu提供的torch_memory_saver、sgl_kernel_npu、deep_ep三个 wheel 包而 8.3.RC1 时代的 SGLang 镜像则通过bash build.sh与bash build.sh -a deepep2从源码编译 NPU 算子与 A2 专用的 deep_ep 包Dockerfile.ascend.sglang_8.3.rc1_a2。理解这些差异有助于排障例如在 A2 上使用 SGLang 推理 EP 时需要确认 deep_ep 是否按 deepep2 模式重新编译。五、镜像构建命令示例进入仓库中的 Dockerfile 所在目录使用docker build指定-f构建对应的镜像# 进入包含 Dockerfile 的目录 cd {verl-root-path}/docker/ascend # 构建 vLLM 推理后端镜像A2 / CANN 8.5.0 docker build -f Dockerfile.ascend_8.5.0_a2 -t verl-ascend:8.5.0-a2 . # 构建 SGLang 推理后端镜像A2 / CANN 8.5.0 docker build -f Dockerfile.ascend.sglang_8.5.0_a2 -t verl-ascend-sglang:8.5.0-a2 . # 构建完成后查询本地镜像 docker images参数说明-f Dockerfile.ascend_8.5.0_a2指定 Dockerfile 文件名-t verl-ascend:8.5.0-a2中verl-ascend为自定义镜像名称8.5.0-a2为自定义镜像标签构建上下文.为当前目录Dockerfile 内的git clone均发生在容器内宿主机无需预装任何依赖。构建耗时提示由于构建过程包含 vLLM/vLLM-Ascend 的源码安装VLLM_TARGET_DEVICEempty pip install -v -e .与COMPILE_CUSTOM_KERNELS1的算子编译以及 verl 源码安装整体构建耗时较长。若机器内存或 CPU 核数有限可参考模型定制镜像中的做法设置ENV MAX_JOBS1、MAKEFLAGS-j1、CMAKE_BUILD_PARALLEL_LEVEL1降低并行编译压力Dockerfile.ascend_8.5.2_a2_qwen3-5。六、容器启动命令模板镜像构建完成后通过以下模板启动容器。该模板已包含昇腾 NPU 容器运行所需的关键挂载与权限参数docker run -dit \ --ipchost \ --network host \ --name {your_docker_name} \ --privileged \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \ -v /usr/local/sbin:/usr/local/sbin \ -v /usr/sbin:/usr/sbin \ -v /home:/home \ -v /data:/data \ {image_name}:{tag} \ /bin/bash参数含义与注意事项--ipchost共享宿主机 IPC 命名空间避免多进程/多卡场景下的共享内存问题--network host使用宿主机网络保证容器内 Ray 集群、推理服务端口可直接对外暴露--name {your_docker_name}建议替换为具有实际意义的容器名称如verl-ascend-a2--privileged授予容器扩展权限昇腾设备访问通常需要请根据实际安全需求评估是否必要-v /usr/local/Ascend/driver:/usr/local/Ascend/driver与-v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware将宿主机 NPU 驱动与固件挂载进容器是容器识别昇腾设备的前提-v /usr/local/sbin:/usr/local/sbin、-v /usr/sbin:/usr/sbin挂载系统级工具与驱动相关可执行文件-v /home:/home、-v /data:/data挂载用户目录与数据目录模型权重、数据集通常存放在这里{image_name}:{tag}替换为镜像构建时对应的名称与标签如需挂载其他本地路径自行追加-v 宿主机路径:容器内路径即可。七、启动与进入容器容器创建后后续使用只需两步# 启动容器 docker start {your_docker_name} # 进入正在运行的容器 docker exec -it {your_docker_name} bash进入容器后建议依次执行以下验证与初始化与 昇腾快速上手说明 保持一致# 使能 CANN 环境若自定义了 CANN 路径请按实际路径修改 source /usr/local/Ascend/ascend-toolkit/set_env.sh source /usr/local/Ascend/nnal/atb/set_env.sh # 验证 NPU 设备可被识别 python3 -c import acl;print(acl.get_soc_name())验证通过后即可进入 verl 主目录运行 GRPO 等训练脚本例如tests/special_npu/quick_start/下的run_qwen3_0_6b_fsdp2_vllm_ascend.sh等四种训推后端组合脚本。八、使用建议与声明推荐路径追求最新特性用每日构建镜像latest-*标签追求稳定性与可复现性使用 verl release 版本镜像如v0.8.0-*有特殊模型需求如 Qwen3.5再选用模型定制镜像或自行构建。与安装指南的关系若不想使用 Docker也可以参考 昇腾安装指南 通过scripts/install_vllm_mcore_npu.sh、scripts/install_sglang_mcore_npu.sh在 conda 环境中完成自定义安装vLLM 后端对应 torch 2.10.0 / torch_npu 2.10.0.post4SGLang 后端对应 torch 2.8.0 / torch_npu 2.8.0.post2两种方式的核心依赖版本与本文镜像清单对齐。声明verl 中提供的 ascend 相关 Dockerfile、镜像皆为参考样例可用于尝鲜体验如在生产环境中使用请通过官方正式途径沟通确认。【免费下载链接】verlverl/HybridFlow: A Flexible and Efficient RL Post-Training Framework项目地址: https://gitcode.com/GitHub_Trending/ve/verl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表