跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

cann-recipes-train 实战:昇腾 DeepSeek-R1 与 Qwen2.5 强化学习优化

基于 cann-recipes-train 仓库,解析昇腾平台上 DeepSeek-R1 与 Qwen2.5 的强化学习训练方案。涵盖 Verl 框架适配、vLLM-Ascend 推理加速及 MindSpeed 算子融合等核心优化点。通过 Reshard/Offload 策略解决训推显存冲突,利用 AlltoAllV 降低通信冗余。提供单卡入门与集群高吞吐两种实践路径,助力开发者在 NPU 环境高效完成大模型 RL 训练部署。

moshang发布于 2026/3/28更新于 2026/6/814 浏览
cann-recipes-train 实战:昇腾 DeepSeek-R1 与 Qwen2.5 强化学习优化

cann-recipes-train 实战:昇腾 DeepSeek-R1 与 Qwen2.5 强化学习优化

仓库概览

cann-recipes-train 旨在为大模型训练提供基于 CANN 平台的优化样例与实践指南。在昇腾环境中,该仓库面向典型的 LLM 与多模态模型训练任务,提供可直接复用的代码样例,帮助开发者跳过'看文档懂了但不会用'的坑,快速掌握 CANN 的优化技巧。

首批版本中上线了两个基于 Verl 强化学习框架的典型训练样例:

  • DeepSeek-R1 RL 训练优化:基于开源 verl 框架,搭配 MindSpeed+vLLM-Ascend 框架,在 Atlas A3 集群实现 GRPO 算法的高吞吐 RL 训练,系统吞吐量可达 120 TPS/卡。
  • Qwen2.5 强化学习(入门):基于 Qwen2.5-1.5B-Instruct 模型,采用 verl 框架,在 MATH-lighteval 数学推理数据集上训练,仅需单卡 Atlas A2 环境即可快速上手。

性能对比图

环境准备

资源配置

  • 计算资源:NPU 910B,32 vCPU + 64GB 内存。
  • 容器镜像:ubuntu22.04-py3.11-cann8.2.rc1-sglang-main-notebook。

启动后通过 npu-smi 检查 NPU 状态、利用率及显存占用情况,确保资源低负载且无冲突进程。

依赖安装

将 cann-recipes-train 克隆到本地,进入 rl_train 目录查看特定模型的 RL 训练样例集合。

对于 DeepSeek-R1 项目,需安装核心依赖(如 verl、torch_npu 等)。虽然部分版本可能存在冲突,但不影响核心功能运行。同时拉取 Verl(指定 Commit)、vLLM(v0.9.1)、vLLM-Ascend(打补丁)及 Megatron-LM、MindSpeed 等多个指定版本的 AI 相关依赖框架,复制到对应目录下搭建适配环境。

DeepSeek-R1 优化实践

部署要求

  • 硬件:Atlas A3 系列,最少 128 张 A3 卡。
  • 框架:Verl + MindSpeed-LLM + vLLM-Ascend。

关键优化点解读

1. 框架适配:Verl × vLLM-Ascend

vLLM-Ascend 社区已做好 DeepSeek-R1 的昇腾适配,但要让 verl 和它兼容,需修改关键接口,主要是初始化 vLLMRollout 对象的 vllm_rollout_spmd.py 文件。

  • 手动加 Patch:导入 vLLM 前需先引入 patch,否则部分类和函数不匹配。
  • DP 通信参数:设置 VLLM_DP_MASTER_PORT 和 IP,保证每个 DP 组有独立通信端口,适应集群环境。
  • 关闭 Sleep 模式:NPU 多机下 sleep 会导致显存释放不了,还需避免显存被 vLLM 内存池接管,后续无法手动卸载。
  • 调整 Token 参数:加载真实权重时,默认 max_num_batched_token=8192 容易 OOM,建议改为 1024 再开启 chunked_prefill。
2. 训推一体化与参数重排(Reshard/Offload)

大模型 RL 训练时,训练和推理的模型分片方式完全不同。训练时 8 张卡分成两组各 4 张(EP4),流水线拆成多段(PP2);推理时需合并成一组(EP8),流水线不分段(PP1)。

模型更新参数后,需将参数从训练的分片方式转为推理可用(reshard)。在训练组内使用 alltoallv 通信,参数重排时无冗余数据传输,速度较快。

此外,Actor、Rollout、Ref 三个模型挤在同一批卡上,切换时需先将不用的模型挪到主机内存(offload)腾地方,再把要用的加载到显卡。昇腾团队专门调了显存管理和数据迁移细节,显著降低了切换耗时。

Reshard 优化示意图

  • Reshard 核心:专家参数用 AlltoAllV 定向传,只给目标推理 rank 发参数,不做全量广播,大幅减少带宽冗余。单卡增量内存从 14G 压到 0.0547G,降低 OOM 风险。PP 域通信调顺序,先在 TP 域聚合参数,再用 PP 域 AlltoAll 广播。
  • Offload 核心:替代 vLLM 有问题的功能,用 onload/offload_model_weight、init/free_cache_engine 替换 NPU 多机下不好使的 vLLM wake_up/sleep。省去训练后到推理前的冗余卸载/加载,把推理 init_cache_engine 放到 reshard、卸载训练权重之后,降内存峰值、提 vLLM 利用率。
3. 训练侧优化策略与算子融合

复用 MindSpeed 训练优化。verl 对接了 MindSpeed,因此训练侧主要复用了其在内存、通信和计算方面的优化技术,包含 Ascend Swap Optimizer 和使能融合算子等。

针对 GRPO 这类 on-policy 算法,old_log_prob 的计算结果与 update_actor 环节前向计算得到的 log_prob 完全一致。昇腾团队用 log_prob.detach() 直接替代 old_log_prob,省去一次训练模型的前向计算,大幅节省耗时。考虑到 verl 原生不支持这一优化,团队专门为其补充实现了该功能,只需将配置项 config.actor_rollout_ref.actor.recompute_old_log_prob 设为 False 即可启用。

4. 推理侧加速与吞吐率提升

在 DeepSeek-R1 "1K 推 3K" 的 RL 推理场景中,基础吞吐为 162 token/p/s。通过多轮技术迭代实现阶梯式跃升:

  1. 基于 TorchAir 图模式 + AIV 加速 + vLLM-V1 框架优化,吞吐提升至 419 token/p/s。
  2. 消除大 EP 场景下的 Transpose 冗余算子 + Cumsum 冗余计算,进一步提升至 456 token/p/s。
  3. 引入 MoE/MLA 多流并行 + router 逻辑优化,突破至 487 token/p/s。
  4. 优化零冗余 TP 转 EP 通信机制,性能达 519 token/p/s。
  5. 通过 DP 间 EOS 检测调度优化,推理吞吐成功突破 618 token/p/s。

推理吞吐提升图

一系列优化大幅压缩了长序列 RL 推理的耗时占比,成为推动 RL 训练整体性能提升的核心突破口。

Qwen2.5 强化学习实践

基于 Qwen2.5-1.5B-Instruct 模型,搭配 verl 强化学习框架,在 MATH-lighteval 数学推理数据集上开展训练。目标是提升小模型复杂数学问题的分步推理能力,生成逻辑严密、结果可验证的推理过程。硬件门槛最低仅需单卡 Atlas A2 环境。

配套优化版 MATH 任务奖励函数

针对原生奖励函数'字符串等价性误判、奖励信号稀疏'的问题,通过多维度分级评分引导模型精准学习。

verl 框架下 MATH 任务的奖励函数总分 1 分,遵循'答案正确性优先'原则:

  • 答案错误直接得 0 分。
  • 答案正确则分三维度打分:
    • math_verify 做数学语义验证的准确度占 0.7 分。
    • 符合指定标签样式且规范的格式占 0.2 分。
    • 包含有序思考步骤与逻辑关键词的思维链占 0.1 分。

同时答案错误时不评估格式、思维链,避免模型偏离精准求解目标。既解决了原生函数的误判问题,也通过多维度评分缓解了奖励稀疏,引导模型生成更规范的表达和更完整的推理过程。

奖励函数结构图

总结

cann-recipes-train 仓库针对 LLM、多模态训练场景中的典型模型、算法,提供基于 CANN 平台的优化样例,方便开发者简单、快速、高效地使用 CANN 进行模型训练。

  • 入门样例:基于 verl 开源框架 & A2 单卡,Qwen2.5-1.5B RL 训练样例,低成本快速上手。
  • 优化样例:基于 verl 开源框架 & A3 集群,DeepSeek-R1 RL 训练样例,实现大集群高吞吐训练。

该仓库不仅提供了代码,更像是一本 CANN 平台训练优化的实战手册,连接了底层优化能力与具体训练业务,帮助开发者解决高吞吐、易部署、低硬件门槛的实际需求。

目录

  1. cann-recipes-train 实战:昇腾 DeepSeek-R1 与 Qwen2.5 强化学习优化
  2. 仓库概览
  3. 环境准备
  4. 资源配置
  5. 依赖安装
  6. DeepSeek-R1 优化实践
  7. 部署要求
  8. 关键优化点解读
  9. 1. 框架适配:Verl × vLLM-Ascend
  10. 2. 训推一体化与参数重排(Reshard/Offload)
  11. 3. 训练侧优化策略与算子融合
  12. 4. 推理侧加速与吞吐率提升
  13. Qwen2.5 强化学习实践
  14. 配套优化版 MATH 任务奖励函数
  15. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • llama-cpp-python 完整安装与配置指南
  • 通用人工智能平台功能解析与商业化应用场景指南
  • 2023 年网络安全岗位前景分析与求职指南
  • Stable Diffusion WebUI 实战指南:从入门到进阶
  • 手持激光雷达 TG30 Cartographer 建图实操记录
  • Lua 元表与元方法详解
  • Bun 替代 Node.js:更快的 JavaScript 运行时与开发体验
  • MySQL 9.6.0 Windows 安装配置与避坑指南
  • 人形全身 VLA 模型Ψ0:基于人类视频预训练与 MM-DiT 后训练方案
  • 信创国产化开发为何推荐使用 Java
  • Linux du 命令详解:精准探查文件和目录的磁盘占用
  • AI 安全研究:视觉提示词注入与模型鲁棒性分析
  • 数据结构:二叉树基础概念与 C 语言实现
  • 前端微前端架构:大型项目的解药还是新坑?
  • IntelliJ IDEA 接入 AI 编程助手:Copilot、DeepSeek 及 GPT-4o Mini
  • Node.js npm 安装过程中 EBUSY 错误的分析与解决方案
  • AIGC 技术解析:人工智能生成内容的现状与未来
  • GitHub Copilot 安装与使用详解
  • AI 编程 Spec Coding 标准化工作流详解
  • Linux 系统 MySQL 8.0 安装与配置指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online