强化学习框架VeRL全面解析(架构、调试、修改与应用)

强化学习框架VeRL全面解析(架构、调试、修改与应用)

强化学习框架VeRL全面解析

当前的RL框架一览

字节系:
VeRL
CURE(RL for coding)

阿里系:
ROLL淘天爱橙团队

智谱:
slime

huggingface:
trl

VeRL的特点

由于强化学习算法在LLM时代中,对与“灵活性”和“高效性”的双重需求,VeRL应运而生。
其主要特点包括:【Single-controller、multi-controller 以及Hybrid Engine】

引入multi-Controller的思想:实现高效数据并行、训练和生成:

在这里插入图片描述


针对RL当中各个operator之间效率的优化,VeRL引入了Hybrid Engine
其中包括:offloading&reloading;并行策略切换

在这里插入图片描述


在这里插入图片描述

引入single-controller的范式思想;将复杂的RL workflow简化为20几行代码;

在这里插入图片描述

VeRL分布式框架—分布式新范式

分布式框架的实现思路主要有两种:
**single-controller:**一个中心controller来控制所有的worker进行对应任务;【single controller来掌控全局】
multi-controller: 每一个worker独立控制自身,通过其他方式实现并行,例如数据并行,每个worker之间通过通信的方式汇总并行数据。【通过worker间通信来协调】

在这里插入图片描述


两种方案各有优略:

在这里插入图片描述

Hybrid Flow分布式范式

新范式Hybrid Flow,提出了Hybrid Controller思路:结合Single- Controller和Multi-controller。
数据调动上灵活的中央控制+在大规模分布式计算上实现高效的分布式通信:通过一个Single-Controller进行全局的控制,而具体的生成和计算交给muliti-controller

single-controller 通过远程进程调用PRC来控制multi-controller

在这里插入图片描述


在代码中,通过@register装饰器,对multi-controller进一步进行优化。

VeRL调试方法

安装和启动分布式调试插件

首先,由于VeRL采用Ray进行分布式运行,因此传统的基于vscode的调用方法无法生效,需要安装插件Ray distributed debugger

官方使用说明

插件安装后确保需要debug的环境中安装了ray debug所需要的依赖,如下:
代码ide: Visual Studio Code
ray[default] >= 2.9.1
debugpy >= 1.8.0

环境配置: conda create -n myenv python=3.9 conda activate myenv pip install "ray[default]" debugpy 
在这里插入图片描述


插件安装成功后会出现下图2中左下角1处 图标,然后点击2处 add cluster,在3处 添加服务器集群地址和端口号,ray默认地址 127.0.0.1:8265 (可Enter直接添加此地址)

在这里插入图片描述


此时在集群Cluster未启动的情况下显示如下的connecting状态即为插件配置启动成功

在这里插入图片描述


然后启动ray

ray start --head
在这里插入图片描述

设置调试启动参数

在代码中需要调试的地方设置breakpoint()
⚠️注意:添加断点位置的函数/类,必须有@ray.remote()装饰器,例如:

在这里插入图片描述


然后直接用bash启动sh脚本,脚本中用python调用,即可,可以用如下代码测试:

bash examples/grpo_trainer/run_qwen3-0.6b.sh 

插件自动捕捉到断点之后就可以像正常python程序一样调试了:

在这里插入图片描述


在非@ray.remote装饰位置的设置的breakpoint()会在命令行进行pdb调试。

Verl example中的数据预处理

在Verl example中提供了许多有用的小例子,包括从数据处理到一些训练的例子。

在这里插入图片描述


具体包含的数据处理example如下:

在这里插入图片描述


其中,例如gsm8k.py针对GSM8k数据集进行预处理。
https://verl.readthedocs.io/en/latest/start/quickstart.html
通常使用parquet格式的原因是加载更快,当前默认原始数据集就是这个数据格式,因此不用修改。

main_ppo.py主文件架构分析

该文件基本定义了训练的最简化的流程,是一个基于 Hydra + Ray 驱动的 PPO/GRPO 类强化学习训练入口。它把「资源管理、进程/角色划分、数据集与采样、奖励函数、多种分布式策略(FSDP / Megatron / vLLM)」这些零件拼在一起,然后交给 RayPPOTrainer 去跑。

首先是基于Hydra的配置

yaml文件中主要包括如下配置: data: # 数据 actor_rollout_ref::#核心配置,包括model、actor、ref、rollout、 reward_model:: #奖励模型,用于计算输出样本及时分数 critic: #批评家模型,用于估计期望回报 custom_reward_function: # 自定义奖励模型 trainer: # 训练器 

25.06 - update&plan

多轮强化学习训练支持

异步引擎,辅助LLM多轮对话强化学习优化,解决之前同步方案的效率问题;

在这里插入图片描述

MoE模型训练支持

优化Megatron
采用多node推理
参数切片管理,用于megatron和inference引擎。

在这里插入图片描述

planned

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

参考内容

Read more

macOS 安装 Claude Code 完整教程

macOS 安装 Claude Code 完整教程 本文适配 macOS 12+(Monterey 及以上)系统,支持 Intel/Apple Silicon(M1/M2/M3)全机型,涵盖 Claude Code CLI 命令行、VS Code 插件两种核心使用方式的安装、配置与验证流程。 一、前置准备(必做) 1.1 系统与环境要求 * 系统版本:macOS 12.0+(Monterey、Ventura、Sonoma 均支持) * 硬件兼容:Intel 芯片、Apple Silicon(M1/M2/M3)

By Ne0inhk
Linux 高频面试题(50道 + 详细答案)

Linux 高频面试题(50道 + 详细答案)

✅ 覆盖:基础概念、文件系统、安全加固、性能排查、常用命令、实战场景等 🎯 适用于运维工程师、后端开发、DevOps、SRE 等岗位 一、Linux 基础与概述 1. 什么是 Linux? Linux 是一套免费、开源、类 Unix的多用户、多任务操作系统,支持多线程和多 CPU。 * 基于 POSIX 标准 * 继承 Unix “一切皆文件” 和 “网络为核心” 的设计思想 * 广泛用于服务器、嵌入式、云计算等领域 💡 Web 项目几乎全部部署在 Linux 上。 2. Windows 和 Linux 的区别? 对比项WindowsLinux授权商业闭源,需付费开源免费用途桌面娱乐、办公服务器、

By Ne0inhk
Flutter 组件 conduit_open_api 的适配 鸿蒙Harmony 实战 - 驾驭 API 标准化生产、实现鸿蒙端自动契约生成与文档自愈治理方案

Flutter 组件 conduit_open_api 的适配 鸿蒙Harmony 实战 - 驾驭 API 标准化生产、实现鸿蒙端自动契约生成与文档自愈治理方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 conduit_open_api 的适配 鸿蒙Harmony 实战 - 驾驭 API 标准化生产、实现鸿蒙端自动契约生成与文档自愈治理方案 前言 在鸿蒙(OpenHarmony)生态的大规模前后端协同系统、提供开放能力的政务数据网关以及需要严格对齐 0307 批次 API 审计标准的各类大型应用开发中,“接口契约的高保真度与文档同步效率”是决定研发链条能否高效转动的核心。面对包含上百个微服务的复杂系统。如果依然采用基于“手写 Word/WIKI 文档”的传统协同模式。不仅会导致代码与文档之间产生严重的逻辑偏离(Logic Drift),更会因为缺乏一套可被程序自动解析的“契约标准(OpenAPI/Swagger)”,引发鸿蒙端 UI 开发人员在面对接口变更时的重复调试与返工。 我们需要一种“代码为源、契约自愈”的治理艺术。

By Ne0inhk

在 CentOS 7.9 上安装 OpenClaw:完整指南(此文章由openclaw生成)

在 CentOS 7.9 上安装 OpenClaw:完整指南 CentOS 7.9 虽然已经停止维护,但在许多企业环境中仍在运行。本文将详细介绍如何在这个经典系统上部署现代化的 AI 助手框架 OpenClaw。 为什么选择 OpenClaw? OpenClaw 是一个开源的 AI 助手运行时,支持多模型、多通道、技能扩展,让你可以轻松构建个性化的 AI 助手。主要特性: * 🧠 支持 Kimi、Gemini、Claude 等多种大语言模型 * 📱 内置飞书、钉钉、企微、QQ、Telegram 等通道支持 * 🔌 丰富的技能市场(clawhub.com) * ⚡ 轻量级,资源占用低 * 🔧 配置简单,扩展灵活 环境准备 1. 系统要求

By Ne0inhk