RL源码:配套昇腾原生的开源盘古2.0系列模型。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 9 天前 |
openPangu-2.0-RL:昇腾原生强化学习加速框架
中文 | English
简介
openPangu-2.0-RL 是面向华为昇腾的强化学习加速框架,以开源 VERL (gitcode镜像)为训练编排内核,通过运行时补丁与昇腾亲和优化,在昇腾集群上完成 Actor / Rollout / Reward 协同训练。更多详细信息,请参考openPangu-2.0技术报告。
面向openPangu的 GSPO / GRPO 后训练,典型使用场景包括:
- 数学推理(Reasoning):单轮 Rollout。模型一次生成完整长思维链与答案,由规则奖励核对正确性与格式。
- 面向推理的代码生成(Code-For-Reasoning):多轮 Rollout(ReAct)。模型在解题过程中调用 Python 解释器写代码、执行,并依据结果继续推理,由规则奖励核对正确性与格式。
代码仓目录结构
openPangu-2.0-RL/
├── omni_rl/ # 核心 Python 包
│ ├── config/ # Hydra 配置:算法、Agent、模型、工具、HCCL
│ ├── dataset/ # 数据集加载(PanguDataset、JSONL)
│ ├── engines/ # 推理引擎适配(Omni-Infer 等)
│ ├── models/ # 盘古模型适配与 Chat Template
│ ├── patches/ # 运行时补丁(VERL / Megatron / Pangu / Torch 等)
│ ├── reward/ # 奖励适配
│ ├── rl/ # RL 核心:Timely Agent、VERL 算法与混合引擎适配
│ ├── utils/ # 日志、补丁管理、指标
│ └── workers/ # Rollout Worker
├── scripts/ # 安装、环境变量、Ray 集群拉起
├── tests/ # 系统测试与场景示例配置(Reasoning / Code-For-Reasoning)
├── tools/ # Ansible 等集群部署工具
├── third_party/ # 第三方依赖(VERL、奖励实现等)
├── docs/ # 使用文档
├── LICENSE
├── README.md
├── README_EN.md
├── pyproject.toml
├── setup.py
└── requirements.txt
omni_rl/rl 中与训练最相关的两部分:timely_agent(多轮 Agent、工具、奖励与数据流)和 verl_adapt(相对 VERL 的算法与昇腾侧优化,如 Prefill/Decode 分离、张量压缩、路由重放)。
非侵入式适配通过 VERL_USE_EXTERNAL_MODULES=omni_rl.patches 在运行时注入补丁,不 Fork VERL 主线。
数据集准备
训练数据支持 JSONL / JSON / Parquet。每条样本需包含对话 prompt,规则奖励场景还需在 meta 中提供标准答案(gt / solution 等)。
- Reasoning(单轮):题目 + 标准答案即可。
- Code-For-Reasoning(多轮):字段相同,题目宜适合用代码验证。
多机时所有节点的数据路径必须一致。字段定义、示例与转换方法见 数据集准备。
镜像制作
训练作业在容器中运行。请先完整克隆本仓库及 Git 子模块,再制作镜像:
git clone -c core.autocrlf=input --recurse-submodules https://gitcode.com/ascend-tribe/openPangu-2.0-RL.git
-c core.autocrlf=input:统一换行符为 LF,避免 Windows 自动转为 CRLF。- 须带
--recurse-submodules,否则third_party等依赖不完整。构建依赖含 CANN、昇腾驱动的基础镜像,以及需手动放入tools/docker/copy_data/的外部包;在仓库根目录执行bash tools/docker/build.sh即可。依赖清单、构建参数与自定义步骤见 镜像制作。
部署运行
使用上一节制作的镜像拉起作业。两个场景作业入口:
| 场景 | 示例配置 / 脚本 |
|---|---|
| Reasoning | tests/system_tests/e2e/pangu92b/reasoning/ |
| Code-For-Reasoning | tests/system_tests/e2e/pangu92b/code4math/ |
安装参数、Ray 参数、两场景启动命令与 Ansible 步骤见 部署运行。
安全说明
本项目为面向研究/演示用途的开源训练框架,请在部署与运行时注意:
- 在隔离网络环境中运行:训练作业必须在隔离的网络环境(专用网络 / 安全组)中运行,请勿将 Ray、gRPC 等服务端口暴露给不受信网络。集群内服务(Ray Dashboard、对象存储等)未内建认证,依赖网络边界作为主控手段。
- 模型生成代码按设计会被执行:Code-For-Reasoning 场景的 Python 解释器工具会执行大模型生成的代码(默认在独立子进程中运行,并带超时保护)。请仅在可信数据集上训练;不受信数据可能通过 prompt 注入诱导模型生成恶意代码。
- 模型与 checkpoint 来源须可信:框架按 legacy Megatron pickle 格式加载 checkpoint,并按 Pangu 模型要求启用 tokenizer 自定义代码(trust_remote_code)。请确保模型与 checkpoint 来自可信来源。
License声明
- openPangu-2.0-RL的使用许可证,具体请参见LICENSE。
免责声明
致openPangu-2.0-RL使用者
- openPangu-2.0-RL功能依赖的第三方开源软件,均由第三方社区提供和维护,因第三方开源软件导致的问题修复依赖相关社区的贡献和反馈。您应理解,openPangu-2.0-RL仓库不保证对第三方开源软件本身的问题进行修复,也不保证会测试、纠正所有第三方开源软件的漏洞和错误。
- 对于openPangu-2.0-RL示例文件中所涉及的数据集,平台仅用于功能测试,华为不提供任何数据集,如您使用这些数据集进行训练,请您特别注意应遵守对应数据集的License,如您因使用数据集而产生侵权纠纷,华为不承担任何责任。
反馈
如果有任何意见和建议,请提交issue或联系openPangu@huawei.com。