CANN/cann-recipes-train Qwen3 TorchTitan RL训练样例

发布时间:2026/7/4 6:59:58
CANN/cann-recipes-train Qwen3 TorchTitan RL训练样例 Qwen3 TorchTitan RL训练样例【免费下载链接】cann-recipes-train本项目针对LLM与多模态模型训练业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-train概述本样例面向 Qwen3 系列模型基于 veRL 的 TorchTitan 训练引擎能力提供 NPU 环境下的 TorchTitan 训练适配 patch 和训练启动脚本示例。当前目录的组织方式与llm_rl/qwen3/verl-mindspeed保持一致patches/存放针对框架源码的 git patchpatch 内部路径统一以llm_rl/qwen3/verl-torchtitan/为前缀。internal/存放训练启动脚本示例。download_frameworks_source_code.sh下载并切换依赖框架源码版本。build_project.sh拷贝依赖源码、应用 patch并在拷贝vllm_ascend包代码前重新编译安装vllm-ascend。apply_all_patches.sh按文件名版本序统一应用当前样例下的所有 patch。当前提供的训练脚本以 Qwen3-30B-A3B、单机 16 卡 GRPO 训练为示例使用 TorchTitan 作为 actor/ref 训练引擎使用 vLLM 作为 rollout 引擎具体训练性能及结果如下所示GRPO算法RL训练基于Atlas A3 16卡集群加载真实权重使用gsm8k数据集Prefill/Decode阶段长度分别为256与4096性能测试结果如下基础模型机器型号GBSn_samplesstepmax_prompt_length(最大输入长度)max_response_length(最大输出长度)perf/time_per_step(首步总时间)Qwen3-30B-A3BAtlas A3 16卡8212564096653随迭代进行gsm8k 验证集准确率变化如下组件版本组件版本/Commit IDverle9aa879bc61821621a36881ea305eaa0785520c1torchtitanac13e536c84e7f6647b14fa9375c3c8a8a2b8578torchtitan-npu29bbc8ba5bee5daf63f8a0c09512038449ffaf37vllm0.15.0vllm-ascend0.15.0rc1torch2.12.0torch_npu2.12.0rc1硬件和环境要求产品型号Atlas A3 系列操作系统Linux ARM镜像版本cann:8.5.0-a3-openeuler24.03-py3.11建议在已安装 CANN、torch、torch_npu 以及基础编译工具链的镜像或容器中运行。请根据实际 CANN 安装目录 source 环境变量例如source /usr/local/Ascend/ascend-toolkit/set_env.sh运行前建议确认torch_npu、torchtitan、torchtitan_npu、vllm和vllm-ascend已安装或已加入PYTHONPATH。基于Dockerfile构建环境环境搭建可以基于 Dockerfile 快速实现。本样例提供的 Dockerfile 会基于 vllm-ascend A3 镜像安装基础工具链并拉取verl、torchtitan、torchtitan-npu和vllm-ascend源码到/workspace。基于Dockerfile创建镜像。# 下载本样例所在代码仓以 master 分支为例 git clone https://gitcode.com/cann/cann-recipes-train.git cd ./cann-recipes-train/llm_rl/qwen3/verl-torchtitan docker build -t qwen3-torchtitan-env -f Dockerfile.vllm_ascend.torchtitan.qwen3 .可通过当前目录run_container.sh创建容器。请传入容器名称和镜像名称bash run_container.sh qwen3_torchtitan qwen3-torchtitan-env该脚本会挂载常用 NPU 设备、驱动目录和数据目录并在容器创建后自动进入容器。 请确保cann-recipes-train仓库位于容器可见的挂载目录中例如/home或/data下进入容器后需切换到该仓库的llm_rl/qwen3/verl-torchtitan目录继续执行后续步骤。源码准备及安装所需的python依赖。# Dockerfile 已预置 /workspace 下依赖框架源码基于 Dockerfile 创建环境时无需执行 download_frameworks_source_code.sh。 # 进入容器后拷贝依赖源码、应用 patch 并按需编译安装 vllm-ascend。 bash build_project.sh若未基于 Dockerfile 创建环境需要手动下载依赖框架源码后再构建bash download_frameworks_source_code.sh bash build_project.shvllm-ascend当前最高适配到torch_npu2.10.0而本样例使用的 TorchTitan 版本依赖torch2.12。两者存在版本差异可能导致 vLLM 原有融合算子在运行时报错。build_project.sh会在拷贝vllm_ascend包代码前先基于vllm-ascend源码重新编译安装。build_project.sh默认使用以下源码目录若源码目录不同可在执行前通过环境变量覆盖环境变量默认值说明VERL_SRC_DIR/workspace/verlveRL 源码目录TORCHTITAN_SRC_DIR/workspace/torchtitanTorchTitan 源码目录TORCHTITAN_NPU_SRC_DIR/workspace/torchtitan-npuTorchTitan-NPU 源码目录VLLM_ASCEND_SRC_DIR/workspace/vllm-ascendvllm-ascend 源码目录使能patch修改。build_project.sh会自动调用apply_all_patches.sh完成 patch 应用。如果需要单独使能 patch可在cann-recipes-train仓库根目录下运行bash llm_rl/qwen3/verl-torchtitan/apply_all_patches.shapply_all_patches.sh会在patches目录下查找所有*.patch文件按文件名版本序排序后统一应用。大部分 patch 内部路径以llm_rl/qwen3/verl-torchtitan/为前缀patches/torchair下的 patch 会在 Pythonsite-packages中动态查找torch_npu/dynamo/torchair实际安装路径后应用。数据集准备本样例中使用的 gsm8k 数据集准备方法可参考 verl官方文档。数据格式可参考 veRL 对 RLHF/RL 数据集的要求常见字段包括 prompt、response 或用于奖励计算的任务字段。若使用 GSM8K、DeepScaler、DAPO 等数据集请先按对应数据处理脚本生成 parquet 文件。运行前请将训练脚本中的数据集路径替换为实际数据集路径。data.train_files/path/to/gsm8k/train.parquet data.val_files/path/to/gsm8k/test.parquet模型权重准备本样例使用的模型权重准备方法如下Qwen3-30B-A3B# 下载 Qwen3-30B-A3B 及完整权重至当前样例目录的 ./Qwen3-30B-A3B 目录下。 mkdir ./Qwen3-30B-A3B pip install modelscope modelscope download --model Qwen/Qwen3-30B-A3B --local_dir ./Qwen3-30B-A3B下载完成后将训练脚本中的MODEL_PATH修改为实际 HuggingFace 格式模型权重目录。若按下文从cann-recipes-train/llm_rl/qwen3/verl-torchtitan目录启动训练路径可配置为MODEL_PATH./Qwen3-30B-A3B模型权重目录需至少包含模型配置、tokenizer 文件和完整权重文件并确保当前环境可以被 veRL、TorchTitan 和 vLLM 正确加载。RL后训练执行当前目录提供了一个 TorchTitan GRPO 训练脚本示例internal/train_grpo_qwen3_30b_a3b_16die.sh在cann-recipes-train/llm_rl/qwen3/verl-torchtitan目录下启动示例bash internal/train_grpo_qwen3_30b_a3b_16die.sh执行前请根据实际环境修改脚本中的以下配置配置项说明MODEL_PATHQwen3 模型权重路径data.train_files训练数据路径data.val_files验证数据路径ASCEND_RT_VISIBLE_DEVICES可见 NPU 设备NUM_GPUS单节点参与训练的 NPU 数量FSDP_SIZETorchTitan FSDP shard 并行规模TP_SIZETorchTitan tensor parallel 并行规模EP_SIZETorchTitan expert parallel 并行规模actor_rollout_ref.rollout.tensor_model_parallel_sizevLLM rollout TP 并行规模actor_rollout_ref.rollout.data_parallel_sizevLLM rollout DP 并行规模actor_rollout_ref.rollout.max_model_lenrollout 最大模型上下文长度训练脚本默认启用的关键环境变量包括环境变量说明HYDRA_FULL_ERROR1展示完整 Hydra 错误栈RAY_EXPERIMENTAL_NOSET_ASCEND_RT_VISIBLE_DEVICES1避免 Ray 自动覆盖 NPU 可见设备HCCL_CONNECT_TIMEOUT3600增大 HCCL 连接超时时间PYTORCH_NPU_ALLOC_CONFmax_split_size_mb:256调整 NPU 显存分配策略可通过命令行追加 Hydra 参数覆盖脚本默认配置例如bash internal/train_grpo_qwen3_30b_a3b_16die.sh \ trainer.total_training_steps10 \ trainer.test_freq5附录文件说明上级目录文件路径说明verl0001-verl-feature-add_torchtitan_npu.patch适配 TorchTitan 在 NPU 场景下的运行逻辑包括基于torchtitan_npu的融合算子优化、NPU expandable segments 设置、TorchTitan flavor 推导修正和训练 worker 结束后的显存清理。torchtitan0001-torchtitan-bugfix-qwen3_init_for_npu.patch调整 Qwen3 初始化和 debug 配置规避 NPU 场景下不兼容的初始化参数和 flash debug 配置。torchair0001-torchair-bugfix-adapt_hint_int_import.patch修改torch_npu内置 TorchAir 代码兼容不同 torch 版本中hint_int与optimization_hint的符号导入差异。vllm_ascend0001-vllm_ascend-feature-align_torch_2_12_build.patch调整llm_rl/qwen3/verl-torchtitan/vllm-ascend源码目录下构建和依赖文件中的torch、torch-npu版本约束用于和 TorchTitan 训练环境对齐。torchtitanDockerfile.vllm_ascend.torchtitan.qwen3构建 Qwen3 TorchTitan 样例基础运行镜像预置基础工具链并拉取依赖框架源码。torchtitanrun_container.sh基于指定镜像创建并进入容器挂载 NPU 设备、驱动和常用宿主机目录。torchtitandownload_frameworks_source_code.sh下载并切换本样例依赖的verl、torchtitan、torchtitan-npu和vllm-ascend源码版本。torchtitanbuild_project.sh拷贝依赖源码、应用 patch、编译安装适配当前 torch/torch_npu 版本的vllm-ascend。torchtitanapply_all_patches.sh一键应用本样例按仓库拆分存放的verl、torchtitan和vllm-ascendpatch。internaltrain_grpo_qwen3_30b_a3b_16die.shQwen3-30B-A3B 使用 TorchTitan 作为 actor/ref 训练引擎、vLLM 作为 rollout 引擎的 GRPO 训练启动脚本示例。注意事项当前 patch 按源码仓库拆分存放但应用路径统一对应llm_rl/qwen3下拷贝后的源码目录。训练脚本中的模型、数据和 profile 路径均为占位示例运行前必须替换为实际路径。如果切换 CANN、torch 或 torch_npu 版本建议清理编译和运行缓存后再启动训练rm -rf kernel_meta rm -rf .torchair_cache rm -rf .cache rm -rf /root/.cache rm -rf /root/atc_data/【免费下载链接】cann-recipes-train本项目针对LLM与多模态模型训练业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-train创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考