verl二次开发

参考视频:b站--使用verl实现code-r1(agent-rl,verl二次开发)

一、强化学习的两个流程:

  1. 加载模型(无需修改)(verl使用ray进行调度)

  2. 训练过程

get_data_batch(无需修改)

生成序列的过程:

generate_sequences(normal-rl和agent-rl)

normal-rl:单轮交互

agent-rl:多轮交互 与环境交互 获得反馈(prompt-->model-->response-->env(tool call, code exec, etc)--> model-->response)

reward(无需修改)

log_probs

adv(优势 需要修改 强化学习方法之间的差异主要体现在adv的计算方式)

compute_loss

normal_rl: 无需和环境交互

angent_rl:计算损失时需要对其进行mask

二、ray_trainer部分代码详解

1. verl中数据传递

通过数据类实现 batch+元数据,其中batch是张量字典tensordict

batch: DataProto = DataProto.from_single_dict(batch_dict)

2. dataproto

DataProto 是 MMEngine(OpenMMLab 2.0 生态的核心引擎) 中定义的一个数据原型类 ,用于统一封装模型训练 / 推理过程中的批量数据(如图像、标签、元信息等),并提供标准化的接口供模型、数据集和数据加载器之间交互。

在 OpenMMLab 框架(如 MMDet、MMCls、MMSeg 等)中,数据从数据集读取后,会通过 DataLoader 组装成批量数据(batch_dict,字典格式),再通过 DataProto.from_single_dict(batch_dict) 转换为 DataProto 实例。

相关推荐
海海不掉头发25 分钟前
阶段五_实验34-38_学习总结
深度学习·神经网络·学习·机器学习
布吉岛的石头2 小时前
Java 程序员第 49 阶段5:BERT 预训练目标 MLM+NSP 的工程含义
java·人工智能·深度学习·bert·transformer
广州山泉婚姻3 小时前
Go微服务落地:服务通信、注册发现完整实现分享
人工智能·深度学习·微服务
kyrie_sakura3 小时前
大模型学习7 -- 深度学习2 -- 张量
python·深度学习
2601_962177306 小时前
小白安装Claude Code完整教程:Windows从零装好并接入Crazyrouter(附403解决方法)
人工智能·深度学习·目标检测·机器学习·数据挖掘
xx_xxxxx_6 小时前
论文阅读-CoTTA
人工智能·深度学习·机器学习
空奈qwq6 小时前
PyTorch 进阶指南:从张量操作到模型训练全流程
人工智能·pytorch·深度学习
田园诗人之园6 小时前
深度学习归一化 fully 指南:BN/LN/IN/GN/RMSNorm 公式推导 + PyTorch 实验全验证(附完整可运行代码)
深度学习·深度学习归一化
uncle_ll7 小时前
分类任务解决样本数据不均衡的落地实战指南
人工智能·深度学习·机器学习·分类·数据处理
一切皆是因缘际会7 小时前
掌控信息论:同源星际通信零延迟架构
人工智能·深度学习·ai·系统架构·信息与通信·星际通信·同源通信