verl

搜索文档
从模型到生态:2025 全球机器学习技术大会「开源模型与框架」专题前瞻
AI科技大本营· 2025-09-26 05:49
开源没? 每当新模型或新技术亮相时,总会有人第一时间抛出这个问题。 2025 年,AI 世界正处在一道分界线上:一边是不断壮大的开源阵营,一边是紧锁的闭源堡垒。最 新斯坦福《AI 指数》报告显示,开源与闭源模型的性能差距已从常见的 8% 缩小到 1.7%,开源正 迎头追上。 2025 全球机器学习技术大会特设立「开源模型与框架」专题,诚邀那些最懂底层构件的开源创作者 与实践者带来第一手的实践与思考:他们如何筑起这座未来的基石,又如何让更多人参与进来,共同 完善这场宏大的工程。 他们分别是 每个人的背后,都是一个具体的开源项目——从移动端大语言模型推理,到强化学习框架、RAG 新 范式,再到高效推理服务和投机采样训练工具。他们的工作,就是让这些"砖石"真正落到开发者手 中,让开源不再只是概念,而是可以触碰、可落地的力量。 陈海泉 字节跳动工程师、verl项目核心贡献者 阿里淘天集团技术专家、MNN团队架构师王召德 字节跳动工程师、verl项目核心贡献者陈海泉 Dify资深架构师姜勇 vLLM核心维护者游凯超 SGLang核心开发者、新加坡南洋理工大学在读博士李升桂 开源模型与框架 0 王召德 阿里淘天集团技术专 ...
强化学习框架的演进与发展趋势
自动驾驶之心· 2025-08-18 23:32
模型训练范式转变 - 2024年OpenAI发布O1系列模型后,训练重心从有监督微调(SFT)转向强化学习(RL),SFT作用弱化为参数初始化或策略引导[3] - RL算法持续迭代优化,从早期DPO到PPO,再到GRPO、RLOO、Reinforce++、DAPO等新方法,在策略更新方式、稳定性和样本效率方面不断提升[4] - RL训练流程包含三大模块:策略生成(Rollout)对应模型推理扩展阶段、奖励评估(Reward Evaluation)对应结果质量打分、策略更新(Policy Update)对应核心参数优化[4][6][7] RL训练框架设计挑战 - Rollout与训练模块需顺序执行,但分布式多卡训练趋势下,异构资源管理和参数同步机制成为关键挑战[12][13] - 底层训练框架(如Megatron-LM、DeepSpeed、PyTorch FSDP)与推理引擎(如vLLM、SGLang)架构差异大,导致参数同步和推理调度实现逻辑复杂化[14][25] - Rollout任务存在显著异构性,尤其在Agent行为模拟场景下,批次内部任务复杂度差异导致调度效率下降和资源利用率不均衡[19] 性能优化策略 - 7B参数模型在FP32精度下需约28GB显存存储参数和梯度,优化器状态额外占用84GB,单卡无法承载[21] - 分布式训练采用数据并行(DP)、张量并行(TP)、流水线并行(PP)策略,千卡规模以下DP与TP/PP性能相近,更大规模下TP/PP因避免All-Gather通信开销更具优势[22][23] - 推理引擎(vLLM、SGLang)通过KV Cache复用和算子优化提升性能,但与训练引擎的参数同步仍需解决精度差异问题[25][28] 训练与推理集成架构 - SPMD(单程序多数据)模式适用于数据量大但模型规模小的场景,MPMD(多程序多数据)模式支持异构程序执行但增加实现复杂度[29][39] - SLIME框架通过Buffer中间件实现推理引擎与训练模块间数据传输,支持命令行配置灵活适应业务需求[34][35] - ROLL框架通过集群角色定义(actor_train、actor_infer、reference等)隐藏训练与推理差异,支持按领域分开采样和奖励模型聚合[42][44] 分布式部署与资源管理 - 模型规模增大(如1000B参数)使并行计算开销显著,Reward模型较小(7-30B)适合分开部署[48] - Ray框架帮助管理分布式资源,但设计与Kubernetes云原生环境存在冲突,实际生产环境管理成本较高[53] - 非Colocation场景下,ROLL支持细粒度GPU资源配置提高资源利用效率,但要求算法侧具备更高资源调度能力[50] 框架技术选型 - OpenRLHF集成Ray、vLLM、ZeRO-3和HuggingFace Transformers,支持灵活混合部署适应异步训练需求[52][61] - SLIME代码简洁适合研究性修改,ROLL强调数据处理和异步操作支持Agentic RL探索,VERL稳定优化适合大规模集群部署[61] - 开源RL框架(VERL、SLIME、ROLL、OpenRLHF)展现技术领先性,但硬件资源(如显卡)仍存在差距[60]
多模态大模型强化学习训练框架 - EasyR1代码走读(GRPO)
自动驾驶之心· 2025-07-15 12:30
多模态强化学习框架EasyR1分析 - EasyR1是基于纯语言强化学习训练框架verl修改而来的多模态强化学习训练框架,支持Qwen2.5-VL等模型的微调 [1] - 框架采用GRPO算法进行训练,该算法不涉及Value Model,从而简化了训练流程 [45] - 代码仍在频繁更新中,文章分析的是2024年6月10日左右的代码版本 [1] 启动配置 - 启动脚本位于examples目录,通过python3 -m verl.trainer.main命令启动训练任务 [5] - 配置文件分为data、algorithm、worker和trainer四类配置项,参数可通过启动脚本覆盖 [6] - 数据配置包括训练集/验证集路径、prompt/answer/image键名、最大长度限制等参数 [9] 数据处理流程 - 数据集必须包含problem、answer和images三个key,支持json等多种格式 [40] - 数据加载使用datasets.load_dataset函数,支持本地文件和远程Hugging Face数据集 [41] - 图像处理支持<image>占位符,可拼接多张图片内容 [39] - prompt会通过jinjia模板进行格式化渲染,支持单轮问答场景 [38] 训练流程 - 训练分为init和fit两个阶段,fit阶段包含数据采样、奖励计算、优势估计和模型更新等步骤 [44] - GRPO算法中每个prompt会采样多条响应(n≥2),通过组内标准化计算优势 [81] - 训练使用KL散度约束模型更新,支持多种KL惩罚类型如low_var_kl等 [78] - 策略更新采用PPO算法,支持多epoch训练和梯度累积 [84] 性能优化 - 框架采用FSDP策略进行分布式训练,支持参数卸载以节省GPU内存 [16] - 数据在DP rank间进行平衡分配,确保每个rank获得相似数量的token [62] - 推理使用vLLM引擎,支持tensor并行和分块预填充等优化 [28] - 训练支持padding-free模式和Ulysses序列并行技术 [15]