强化学习框架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

Java安全开发实战:从代码防护到架构安全

Java安全开发实战:从代码防护到架构安全

第二十二章 Java安全开发实战:从代码防护到架构安全 一、章节学习目标与重点 1.1 学习目标 * 理解Java应用面临的核心安全威胁(注入攻击、跨站脚本、权限漏洞等),掌握安全开发的核心原则与防护体系。 * 熟练运用代码级安全防护技巧,解决SQL注入、XSS、CSRF、文件上传漏洞等常见安全问题。 * 掌握认证授权机制的安全设计(密码加密、JWT安全、OAuth2.0实战),避免权限越界与身份伪造。 * 实现微服务架构下的安全防护(API网关安全、服务间通信加密、配置中心安全),构建端到端安全体系。 * 能够独立完成Java应用的安全审计与漏洞排查,结合实际场景制定安全加固方案并落地。 1.2 学习重点 * Java应用常见安全漏洞(SQL注入、XSS、CSRF等)的原理与代码级防护。 * 认证授权安全:密码加密存储、JWT令牌安全、RBAC权限模型实战。 * 微服务安全:网关安全防护、服务间HTTPS通信、配置与敏感数据加密。 * 安全审计与漏洞排查工具(SonarQube、OWASP

By Ne0inhk
MySQL SQL注入防御全攻略:原理、攻击与防护实践

MySQL SQL注入防御全攻略:原理、攻击与防护实践

MySQL SQL注入防御全攻略:原理、攻击与防护实践 * 一、SQL注入基础概念 * 1.1 什么是SQL注入? * 1.2 注入攻击的危害等级 * 二、SQL注入攻击原理剖析 * 2.1 典型注入场景分析 * 2.1.1 登录绕过攻击 * 2.1.2 数据泄露攻击 * 2.2 注入类型分类 * 三、防御技术深度解析 * 3.1 参数化查询(Prepared Statements) * 3.1.1 PHP实现示例 * 3.1.2 Java实现示例 * 3.2 输入验证与过滤 * 3.2.1 白名单验证

By Ne0inhk
Flutter 组件 meeting_place_core 的适配 鸿蒙Harmony 实战 - 驾驭分布式会议引擎、实现鸿蒙端高性能协作空间与复杂信令分发方案

Flutter 组件 meeting_place_core 的适配 鸿蒙Harmony 实战 - 驾驭分布式会议引擎、实现鸿蒙端高性能协作空间与复杂信令分发方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 meeting_place_core 的适配 鸿蒙Harmony 实战 - 驾驭分布式会议引擎、实现鸿蒙端高性能协作空间与复杂信令分发方案 前言 在后疫情时代的协同办公浪潮中,视频会议已经从单一的垂直应用演变为鸿蒙(OpenHarmony)生态中“泛在协作”的核心基础设施。当你在鸿蒙平板上开启一场跨国技术评审,或者在鸿蒙车机上紧急连线公司晨会时,支撑这一切流畅运行的,是底层极其复杂的会议核心引擎。 meeting_place_core 是一套工业级的、专为多端同步设计的会议核心抽象包。它不负责 UI 渲染,而是专注于房间管理(Room Management)、成员状态流转、信令推送及媒体流的逻辑编排。 适配到鸿蒙平台后,结合鸿蒙强大的分布式能力,meeting_place_core 能让你的 App 轻松实现“手机开会,大屏投映,

By Ne0inhk
解决Google Scholar “We‘re sorry... but your computer or network may be sending automated queries.”的问题

解决Google Scholar “We‘re sorry... but your computer or network may be sending automated queries.”的问题

解决Google Scholar “We’re sorry… but your computer or network may be sending automated queries.”的问题 在使用Google Scholar进行学术搜索时,你可能会遇到错误提示: “We’re sorry… but your computer or network may be sending automated queries. To protect our users, we can’t process your request right now. See Google Help for more information.

By Ne0inhk