当前位置: 首页 > news >正文

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

强化学习框架VeRL全面解析

  • 当前的RL框架一览
  • VeRL的特点
  • VeRL分布式框架的实现新范式
  • VeRL调试方法
    • 安装和启动分布式调试插件
    • 设置调试启动参数
  • 25.06 - update&plan
    • 多轮强化学习训练支持
    • MoE模型训练支持
    • planned
  • 参考内容

当前的RL框架一览

字节系:
VeRL
CURE(RL for coding)

阿里系:
ROLL淘天爱橙团队

智谱:
slime

huggingface:
trl

VeRL的特点

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

  • 引入single-controller的范式思想;将复杂的RL workflow简化为20几行代码;
    在这里插入图片描述
  • 引入multi-Controller的思想:实现高效数据并行、训练和生成:
    在这里插入图片描述
    针对RL当中各个operator之间效率的优化,VeRL引入了Hybrid Engine
    其中包括:offloading&reloading;并行策略切换
    在这里插入图片描述
    在这里插入图片描述

VeRL分布式框架的实现新范式

分布式框架的实现思路主要有两种:
single-controller:一个中心controller来控制所有的worker进行对应任务;【single controller来掌控全局】
multi- controller:每一个worker独立控制自身,通过其他方式实现并行,例如数据并行,每个worker之间通过通信的方式汇总并行数据。【通过worker间通信来协调】
在这里插入图片描述
两种方案各有优略:
在这里插入图片描述
新范式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程序一样调试了:
在这里插入图片描述

25.06 - update&plan

多轮强化学习训练支持

异步引擎,辅助LLM多轮对话强化学习优化,解决之前同步方案的效率问题;
在这里插入图片描述

MoE模型训练支持

优化Megatron
采用多node推理
参数切片管理,用于megatron和inference引擎。
在这里插入图片描述

planned

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

在这里插入图片描述

参考内容

http://www.dtcms.com/a/286396.html

相关文章:

  • vbox增加虚拟磁盘空间大小
  • 基于springboot+vue+mysql的在线文档管理系统的设计与实现(源码+论文+PPT答辩+开题报告)
  • ClickHouse物化视图避坑指南:原理、数据迁移与优化
  • ESP32-IDF LVGL UI 设计工具的使用
  • 海森矩阵(Hessian Matrix)在SLAM图优化和点云配准中的应用介绍
  • Go 的热重载工具 Air 详解
  • 深入理解 Spring:事务管理与事件机制全解析
  • 域名WHOIS信息查询免费API使用指南
  • 【CF】⭐Day104——Codeforces Round 840 (Div. 2) CE (思维 + 分类讨论 | 思维 + 图论 + DP)
  • 【LVGL】Linux LVGL程序几十分钟后UI卡死
  • ubuntu 安装zabbix6 agent2
  • AI进入自动驾驶时代:OpenAI发布革命性ChatGPT Agent
  • 生成式引擎优化(GEO)核心解析:下一代搜索技术的演进与落地策略
  • OpenAI最强ChatGPT智能体发布:技术突破与应用前景分析
  • 脉冲神经网络(Spiking Neural Network, SNN)与知识蒸馏(Knowledge Distillation, KD)
  • 有好内容,如何做好知识变现?
  • BIST会对锁步核做什么?
  • 深入了解直播美颜SDK:GPU加速下的美白滤镜功能实现?
  • 解决 IDEA 中 XML 文件的 “URI is not registered” 报错
  • html5+css3+canvas纯前端4字方形LOGO生成器
  • 【C# in .NET】17. 探秘类成员-构造函数与析构函数:对象生命周期管理
  • Beagle 480 USB分析仪
  • 差分数组算法
  • 柴油机活塞cad【4张】三维图+设计说明书
  • ollma dify 搭建合同审查助手
  • RabbitMQ—TTL、死信队列、延迟队列
  • ChatGPT Agent技术架构探析
  • 读书笔记(学会说话)
  • 变频器实习总结3 ISU单元 船舶电力系统
  • 锁步核,为什么叫锁步核?