From f018f3a4077a1be9f9cc6493aef947554369cc0e Mon Sep 17 00:00:00 2001 From: orangeH25 <18085625039@163.com> Date: Mon, 24 Nov 2025 08:42:58 +0000 Subject: [PATCH 1/2] Add ROLL Docs --- _static/images/roll.png | Bin 0 -> 70760 bytes index.rst | 21 ++- sources/roll/index.rst | 8 ++ sources/roll/install.rst | 126 +++++++++++++++++ sources/roll/quick_start.rst | 267 +++++++++++++++++++++++++++++++++++ 5 files changed, 421 insertions(+), 1 deletion(-) create mode 100644 _static/images/roll.png create mode 100644 sources/roll/index.rst create mode 100644 sources/roll/install.rst create mode 100644 sources/roll/quick_start.rst diff --git a/_static/images/roll.png b/_static/images/roll.png new file mode 100644 index 0000000000000000000000000000000000000000..ff18dde417905b5665e7d63e6a70387dd029f855 GIT binary patch literal 70760 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 SZ)kr20000` 的安装指导进行操作。 @@ -430,6 +431,24 @@ | 快速上手 - + + +
+
+
+
+

ROLL

+

大规模学习的强化学习优化

+
+
+
+ +
diff --git a/sources/roll/index.rst b/sources/roll/index.rst new file mode 100644 index 0000000..a16f5ad --- /dev/null +++ b/sources/roll/index.rst @@ -0,0 +1,8 @@ +roll +============ + +.. toctree:: + :maxdepth: 2 + + install.rst + quick_start.rst diff --git a/sources/roll/install.rst b/sources/roll/install.rst new file mode 100644 index 0000000..9838641 --- /dev/null +++ b/sources/roll/install.rst @@ -0,0 +1,126 @@ +安装指南 +============== + +本教程面向使用 roll & Ascend 的开发者,帮助完成昇腾环境下 roll 的安装。 + +昇腾环境安装 +------------ + +请根据已有昇腾产品型号及 CPU 架构等按照 :doc:`快速安装昇腾环境指引 <../ascend/quick_install>` 进行昇腾环境安装。 + +.. warning:: + CANN 最低版本为 8.2.RC1,安装 CANN 时,请同时安装 Kernel 算子包以及 nnal 加速库软件包。 + +Python 环境创建 +---------------------- + +.. code-block:: shell + :linenos: + + # 创建名为 roll 的 python 3.11 的虚拟环境 + conda create -y -n roll python=3.10 + # 激活虚拟环境 + conda activate roll + +Torch 安装创建 +---------------------- + +.. code-block:: shell + :linenos: + + # 安装 torch 的 CPU 版本 + pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cpu + + # 安装 torch_npu + pip install torch_npu==2.5.1 + +vllm & vllm-ascend 安装 +---------------------- + +.. code-block:: shell + :linenos: + + # vllm + git clone -b v0.8.4 --depth 1 https://github.com/vllm-project/vllm.git + cd vllm + + VLLM_TARGET_DEVICE=empty pip install -v -e . + cd .. + + +.. code-block:: shell + :linenos: + + # vllm-ascend + git clone -b v0.8.4rc2 --depth 1 https://github.com/vllm-project/vllm-ascend.git + cd vllm-ascend + + export COMPILE_CUSTOM_KERNELS=1 + pip install -e . + cd .. + +如果在安装 vllm-ascend 时遇到类似以下问题: + +.. code-block:: shell + :linenos: + + RuntimeError: CMake configuration failed: Command '['/pathto/miniconda3/envs/roll/bin/python3.10', '-m', 'pybind11', '--cmake']' returned non-zero exit status 2. + +可尝试在 vllm-ascend 目录下 setup.py 文件 151-158 行进行如下修改并重新进行编译: + +.. code-block:: shell + :linenos: + + try: + # if pybind11 is installed via pip + pybind11_cmake_path = (subprocess.check_output( + [python_executable, "-m", "pybind11", + "--cmakedir"]).decode().strip()) + except subprocess.CalledProcessError as e: + # else specify pybind11 path installed from source code on CI container + raise RuntimeError(f"CMake configuration failed: {e}") + +安装 roll +---------------------- + +使用以下指令安装 roll 及相关依赖: + +.. code-block:: shell + :linenos: + + git clone https://github.com/alibaba/ROLL.git + cd ROLL + + # Install roll dependencies + pip install -r requirements_common.txt + pip install deepspeed==0.16.0 + + +其他第三方库说明 +---------------------- + +.. list-table:: + :header-rows: 1 + :widths: 30 20 + + * - Software + - Description + * - transformers + - v4.52.4 + * - flash_attn + - not supported + * - transformer-engine[pytorch] + - not supported + + +1. 支持通过 transformers 使能 --flash_attention_2, transformers 需等于 4.52.4版本。 + +2. 不支持通过 flash_attn 使能 flash attention 加速。 + +3. 暂不支持 transformer-engine[pytorch]。 + + +.. code-block:: shell + :linenos: + + pip install transformers==4.52.4 \ No newline at end of file diff --git a/sources/roll/quick_start.rst b/sources/roll/quick_start.rst new file mode 100644 index 0000000..ac936f0 --- /dev/null +++ b/sources/roll/quick_start.rst @@ -0,0 +1,267 @@ +快速开始,单节点部署指引 +================== + +.. note:: + + 阅读本篇前,请确保已按照 :doc:`安装教程 <./install>` 准备好昇腾环境及 verl 所需的环境。 + + 本篇教程将介绍如何使用 roll 进行快速训练,帮助您快速上手 roll 。 + +本文档帮助昇腾开发者快速使用 roll × 昇腾 进行 LLM 强化学习训练。可以访问 `这篇官方文档 `_ 获取更多信息。 + +也可以参考官方的 `昇腾快速开始文档 `_ 。 + + + +正式使用前,建议您通过对单节点流水线的训练尝试以检验环境准备和安装的正确性。 由于目前暂不支持 Megatron-LM 训练,请首先将对应文件中 strategy_args 参数修改为 deepspeed 选项。 + +使用配置文件执行 agentic pipeline +^^^^^^^^^^^^^^^^^^^^^^ + +.. note:: + + 以 qwen2.5-0.5B-agentic 为例(Requires >=4 NPUs) + +修改策略文件: + +.. code-block:: python + + # vim roll/distributed/strategy/vllm_strategy.py + enable_prefix_caching: False, + + +修改配置文件: + +.. code-block:: yaml + + # vim examples/qwen2.5-0.5B-agentic/agentic_val_sokoban.yaml + defaults: + - ../config/traj_envs@_here_ + - ../config/deepspeed_zero@_here_ + - ../config/deepspeed_zero2@_here_ + - ../config/deepspeed_zero3@_here_ + - ../config/deepspeed_zero3_cpuoffload@_here_ + + hydra: + run: + dir: . + output_subdir: null + + exp_name: "agentic_pipeline" + seed: 42 + logging_dir: ./output/logs + output_dir: ./output + render_save_dir: ./output/render + system_envs: + USE_MODELSCOPE: '1' + + #track_with: wandb + #tracker_kwargs: + # api_key: + # project: roll-agentic + # name: ${exp_name}_sokoban + # notes: "agentic_pipeline" + # tags: + # - agentic + # - roll + # - baseline + + track_with: tensorboard + tracker_kwargs: + log_dir: ./data/oss_bucket_0/yali/llm/tensorboard/roll_exp/agentic_sokoban + + + checkpoint_config: + type: file_system + output_dir: ./data/cpfs_0/rl_examples/models/${exp_name} + + num_gpus_per_node: 4 + + max_steps: 128 + save_steps: 10000 + logging_steps: 1 + eval_steps: 10 + resume_from_checkpoint: false + + rollout_batch_size: 16 + val_batch_size: 16 + sequence_length: 1024 + + advantage_clip: 0.2 + ppo_epochs: 1 + adv_estimator: "grpo" + #pg_clip: 0.1 + #dual_clip_loss: True + init_kl_coef: 0.0 + whiten_advantages: true + entropy_loss_coef: 0 + max_grad_norm: 1.0 + + pretrain: Qwen/Qwen2.5-0.5B-Instruct + reward_pretrain: Qwen/Qwen2.5-0.5B-Instruct + + actor_train: + model_args: + attn_implementation: fa2 + disable_gradient_checkpointing: false + dtype: bf16 + model_type: ~ + training_args: + learning_rate: 1.0e-6 + weight_decay: 0 + per_device_train_batch_size: 2 + gradient_accumulation_steps: 64 + warmup_steps: 10 + lr_scheduler_type: cosine + data_args: + template: qwen2_5 + strategy_args: + strategy_name: deepspeed_train + strategy_config: ${deepspeed_zero3} + # strategy_name: megatron_train + # strategy_config: + # tensor_model_parallel_size: 1 + # pipeline_model_parallel_size: 1 + # expert_model_parallel_size: 1 + # use_distributed_optimizer: true + # recompute_granularity: full + device_mapping: list(range(0,2)) + infer_batch_size: 2 + + actor_infer: + model_args: + disable_gradient_checkpointing: true + dtype: bf16 + generating_args: + max_new_tokens: 128 # single-turn response length + top_p: 0.99 + top_k: 100 + num_beams: 1 + temperature: 0.99 + num_return_sequences: 1 + data_args: + template: qwen2_5 + strategy_args: + strategy_name: vllm + strategy_config: + gpu_memory_utilization: 0.6 + block_size: 16 + load_format: auto + device_mapping: list(range(2,3)) + + reference: + model_args: + attn_implementation: fa2 + disable_gradient_checkpointing: true + dtype: bf16 + model_type: ~ + data_args: + template: qwen2_5 + strategy_args: + strategy_name: hf_infer + strategy_config: ~ + device_mapping: list(range(3,4)) + infer_batch_size: 2 + + reward_normalization: + grouping: traj_group_id # 可以tags(env_type)/traj_group_id(group)/batch(rollout_batch)... group_by计算reward/adv + method: mean_std # asym_clip / identity / mean_std + + train_env_manager: + format_penalty: -0.15 # sokoban env penalty_for_step=-0.1 + max_env_num_per_worker: 4 + num_env_groups: 8 + # under the same group, the env config and env seed are ensured to be equal + group_size: 1 + tags: [SimpleSokoban] + num_groups_partition: [8] # If not set, all env names divide nums equally. Under the same group, the env config and env seed (prompt) are equal in each generation + + val_env_manager: + max_env_num_per_worker: 32 + num_env_groups: 64 + group_size: 1 # should be set to 1 because val temperature is set to 0 and same prompt leads to same output + tags: [SimpleSokoban, LargerSokoban, SokobanDifferentGridVocab, FrozenLake] + num_groups_partition: [16, 16, 16, 16] # TODO: If not set, all env names divide nums equally. Under the same group, the env config and env seed (prompt) are equal in each generation + + + # Here, you can override variables defined in the imported envs. max_tokens_per_step: 128 in custom_env.SimpleSokoban, here replaced by 64 + max_tokens_per_step: 64 + + custom_envs: + SimpleSokoban: + ${custom_env.SimpleSokoban} + LargerSokoban: + ${custom_env.LargerSokoban} + SokobanDifferentGridVocab: + ${custom_env.SokobanDifferentGridVocab} + FrozenLake: + ${custom_env.FrozenLake} + FrozenLakeThink: + ${custom_env.FrozenLakeThink} + + +使用配置文件执行: + +.. code-block:: bash + + python examples/start_agentic_pipeline.py \ + --config_path qwen2.5-0.5B-agentic \ + --config_name agentic_val_sokoban + + - ``--config_path`` – 包含您的YAML配置文件的目录。 + - ``--config_name`` – 文件名(不含.yaml后缀)。 + +若执行遇到报错: + +.. code-block:: bash + + ... + File "/home/coder/miniforge3/envs/roll/lib/python3.10/enum.py", + line 701, in __new__ + raise ve_exc + + ValueError: is not a valid Sentinel + +可尝试将 Click 版本版本降级到 8.2.1: + +.. code-block:: bash + + pip install --force-reinstall 'click==8.2.1' + +支持现状 +^^^^^^^^^^^^^^^^^^^^^^ + +.. list-table:: + :header-rows: 1 + :widths: 15 40 15 15 15 + + * - Feature + - Example + - Training Backend + - Inference Backend + - Hardware + * - Agentic + - examples/qwen2.5-0.5B-agentic/run_agentic_pipeline_sokoban.sh + - DeepSpeed + - vLLM + - Atlas 900 A2 PODc + * - Agentic-Rollout + - examples/qwen2.5-0.5B-agentic/run_agentic_rollout_sokoban.sh + - DeepSpeed + - vLLM + - Atlas 900 A2 PODc + * - DPO + - examples/qwen2.5-3B-dpo_megatron/run_dpo_pipeline.sh + - DeepSpeed + - vLLM + - Atlas 900 A2 PODc + * - RLVR + - examples/qwen2.5-7B-rlvr_megatron/run_rlvr_pipeline.sh + - DeepSpeed + - vLLM + - Atlas 900 A2 PODc + +声明 +^^^^^^^^^^^^^^^^^^^^^^ + +ROLL 中提供的 Ascend 支持代码皆为参考样例,生产环境使用请通过官方正式途径沟通,谢谢。 \ No newline at end of file From 4ce7c8ecfbd600da99f61fbba3da756cfe11b51c Mon Sep 17 00:00:00 2001 From: orangeH25 <18085625039@163.com> Date: Mon, 24 Nov 2025 09:32:31 +0000 Subject: [PATCH 2/2] Update ROLL Docs --- sources/roll/install.rst | 2 +- sources/roll/quick_start.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/roll/install.rst b/sources/roll/install.rst index 9838641..d751cda 100644 --- a/sources/roll/install.rst +++ b/sources/roll/install.rst @@ -17,7 +17,7 @@ Python 环境创建 .. code-block:: shell :linenos: - # 创建名为 roll 的 python 3.11 的虚拟环境 + # 创建名为 roll 的 python 3.10 的虚拟环境 conda create -y -n roll python=3.10 # 激活虚拟环境 conda activate roll diff --git a/sources/roll/quick_start.rst b/sources/roll/quick_start.rst index ac936f0..55bd59e 100644 --- a/sources/roll/quick_start.rst +++ b/sources/roll/quick_start.rst @@ -3,7 +3,7 @@ .. note:: - 阅读本篇前,请确保已按照 :doc:`安装教程 <./install>` 准备好昇腾环境及 verl 所需的环境。 + 阅读本篇前,请确保已按照 :doc:`安装教程 <./install>` 准备好昇腾环境及 roll 所需的环境。 本篇教程将介绍如何使用 roll 进行快速训练,帮助您快速上手 roll 。 @@ -216,7 +216,7 @@ .. code-block:: bash ... - File "/home/coder/miniforge3/envs/roll/lib/python3.10/enum.py", + File ".../roll/lib/python3.10/enum.py", line 701, in __new__ raise ve_exc