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

论文阅读:2024 arxiv HybridFlow: A Flexible and Efficient RLHF Framework

https://www.doubao.com/chat/3875396379023618

HybridFlow: A Flexible and Efficient RLHF Framework

https://arxiv.org/pdf/2409.19256

https://github.com/volcengine/verl

速览

这篇论文主要介绍了一个名为HybridFlow的新型框架,旨在提升大语言模型(LLM)中“基于人类反馈的强化学习”(RLHF)的效率和灵活性。以下是核心内容的通俗解读:

1. RLHF是什么?为什么需要优化?
RLHF是训练大语言模型(如GPT、Llama)的关键技术,通过人类反馈让模型生成更符合伦理、更有用的内容。传统RLHF框架存在两个主要问题:

  • 效率低:用单一控制器管理所有计算和通信,导致调度开销大,尤其在处理数十亿参数的LLM时效率低下。
  • 灵活性差:用多控制器独立管理每个设备,导致代码耦合度高,难以支持不同算法和模型配置。

2. HybridFlow的核心创新:混合编程模型
HybridFlow结合了单一控制器多控制器的优点:

  • 节点间(模型间):用单一控制器统一协调数据传输和执行顺序。例如,演员模型生成文本后,控制器自动将数据分发给评论家模型评分,无需手动编写通信代码。
  • 节点内(模型内):每个模型(如演员、评论家)内部用多控制器并行计算,利用现有的LLM训练框架(如Megatron-LM、DeepSpeed)优化计算效率。

好处

  • 灵活:用户只需几行代码即可搭建不同RLHF流程(如PPO、Safe-RLHF),无需关心底层分布式计算细节。
  • 高效:减少控制器调度开销,同时利用多GPU并行计算,提升吞吐量。

3. 3D-HybridEngine:零冗余的模型切换
在RLHF中,演员模型需要在“训练阶段”(更新参数)和“生成阶段”(生成文本)之间切换,传统方法会导致大量内存冗余和通信开销。3D-HybridEngine通过以下方式优化:

  • 零内存冗余:训练和生成阶段共享同一套模型参数,通过巧妙的分组策略(如调整张量并行和数据并行的比例),避免重复存储参数。
  • 低通信开销:仅在小范围内(如“微数据并行组”)同步参数,相比传统方法减少70%以上的通信量。

4. 自动设备分配算法:让GPU资源更高效
HybridFlow提供自动算法,根据模型大小和集群规模,动态分配GPU资源:

  • 场景适配:小集群中,将所有模型放在同一组GPU上,充分利用资源;大集群中,将演员和评论家模型分开放置,实现并行计算。
  • 负载均衡:避免GPU空闲或内存溢出,例如将大模型(如70B参数的评论家)分配更多GPU,小模型(如7B参数的演员)分配较少GPU。

5. 实验效果:速度提升显著
在不同模型规模(7B到70B参数)和算法(PPO、ReMax等)中,HybridFlow相比现有框架(如DeepSpeed-Chat、OpenRLHF):

  • 吞吐量提升:1.53倍到20.57倍,尤其在大模型和复杂算法中优势明显。
  • 过渡开销降低:演员模型在训练和生成阶段的切换时间减少55%以上,70B模型切换时间从78秒降至8秒以内。

6. 总结:HybridFlow的价值

  • 推动RLHF研究:开源框架降低开发门槛,支持更多新算法(如安全RLHF、数学推理训练)。
  • 资源利用率优化:通过混合架构和自动分配,让不同规模的团队(从小型集群到大型数据中心)都能高效训练LLM。

一句话总结:HybridFlow通过“分层控制+高效切换+智能分配”,让大模型的人类反馈训练更快、更灵活,为开发更安全、更智能的AI奠定基础。

github

这个仓库 verl 是一个由 ByteDance Seed 团队发起并由 verl 社区维护的强化学习训练库,全称为 Volcano Engine Reinforcement Learning for LLMs,用于大语言模型(LLMs)的训练。以下是关于该仓库的详细介绍:

仓库概述
verl 是 HybridFlow: A Flexible and Efficient RLHF Framework 论文的开源版本,具有灵活、高效且适合生产环境的特点。它可以轻松扩展各种强化学习算法,与现有的大语言模型基础设施无缝集成,支持灵活的设备映射,并能与流行的 HuggingFace 模型集成。

主要特性

  1. 灵活性
    • 多样化 RL 算法扩展:通过混合控制器编程模型,能够灵活表示和高效执行复杂的后训练数据流,只需几行代码就能构建如 GRPO、PPO 等 RL 数据流。
    • 模块化 API 集成:解耦计算和数据依赖,可与现有的大语言模型框架(如 FSDP、Megatron - LM、vLLM、SGLang 等)无缝集成。
    • 灵活的设备映射:支持将模型灵活放置在不同的 GPU 集合上,以实现高效的资源利用和跨不同集群规模的可扩展性。
    • 与 HuggingFace 模型集成:可直接使用流行的 HuggingFace 模型。
  2. 高效性
    • 高吞吐量:集成了最先进的大语言模型训练和推理引擎,实现了最先进的 RL 吞吐量。
    • 高效的模型重分片:使用 3D - HybridEngine 进行高效的 actor 模型重分片,消除内存冗余,显著减少训练和生成阶段之间转换时的通信开销。

支持的算法和技术

  • 训练框架:支持 FSDP 和 Megatron - LM 进行训练。
  • 生成框架:支持 vLLM、SGLang 和 HF Transformers 进行 rollout 生成。
  • 模型兼容性:与 Hugging Face Transformers 和 Modelscope Hub 兼容,如 Qwen - 2.5、Llama3.1、Gemma2、DeepSeek - LLM 等。
  • 学习类型:支持监督微调(Supervised fine - tuning)和多种强化学习算法,如 PPO、GRPO、ReMax、REINFORCE++、RLOO、PRIME、DAPO、DrGRPO 等。
    • 奖励类型:支持基于模型的奖励和基于函数的奖励(可验证奖励)。
    • 多模态支持:支持视觉语言模型(VLMs)和 [多模态 RL](examples/grpo_trainer/run_qwen2_5_vl - 7b.sh)。
  • 优化技术:支持 Flash attention 2、[sequence packing](examples/ppo_trainer/run_qwen2 - 7b_seq_balance.sh)、sequence parallelism(通过 DeepSpeed Ulysses)、LoRA、Liger - kernel。
  • 扩展性:可扩展到 70B 模型和数百个 GPU。
  • 实验跟踪:支持使用 wandb、swanlab、mlflow 和 tensorboard 进行实验跟踪。

近期新闻

  • 2025/05verl 将在 GOSIM x PyTorch Day 2025 上展示。
  • 2025/04:将在 ICLR 2025 Expo、[SCI - FM workshop](https://open - foundation - model.github.io/) 和 LMSys afterparty 上进行关于最新后训练技术和 verl 编程指南的教程。
  • 2025/04:[Seed - Thinking - v1.5](https://github.com/ByteDance - Seed/Seed - Thinking - v1.5/blob/main/seed - thinking - v1.5.pdf) 技术报告发布,该模型使用 verl 训练,在 AIME 2024、Codeforces 和 GPQA 等测试中表现出色。
  • 2025/04:正在开发 VAPO 的开源配方,该算法在 AIME 2024 上取得了 60.4 的成绩。
  • 2025/03verl v0.3.0.post1 发布。
  • 2025/03:[DAPO](https://dapo - sia.github.io/) 开源,基于 Qwen2.5 - 32B 预训练模型在 AIME 2024 上取得 50 分的成绩,其训练完全由 verl 支持,复现代码可在 recipe/dapo 中找到。

代码结构

.gitignore
.pre - commit - config.yaml
.readthedocs.yaml
LICENSE
Notice.txt
README.md
pyproject.toml
requirements.txt
requirements_sglang.txt
setup.py
recipe/dapo/drgrpo/prime/r1/
.vscode/settings.json
scripts/converter_hf_to_mcore.pydiagnose.pymodel_merger.py
.github/dependabot.ymlworkflows/
verl/__init__.pymodels/protocol.pysingle_controller/third_party/trainer/utils/version/workers/
docs/MakefileREADME.mdREADME_vllm0.7.md...
examples/...
docker/...
tests/...

未来特性

  • 路线图:https://github.com/volcengine/verl/issues/710
  • DeepSeek 671b 与 Megatron v0.11 的优化:https://github.com/volcengine/verl/issues/708
  • 多轮 rollout 优化:https://github.com/volcengine/verl/pull/1037 https://github.com/volcengine/verl/pull/1138
  • 环境交互:https://github.com/volcengine/verl/issues/1172

相关文章:

  • x修改ssh版本号9.9可以躲过漏洞扫描器扫描
  • 精通线程池:业务场景中的实践、优化与监控
  • Java 面向对象编程:封装及其各种用法详解
  • 工业摄像头通过USB接口实现图像
  • A. Everybody Likes Good Arrays!
  • 视频转gif在线工具-免费快捷
  • 如何创建成员内部类数组
  • 硬件工程师面试常见问题(8)
  • SQL语法基础,进阶,高级sql语句学习
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-网页图片显示问题
  • Hutool TreeUtil快速构建树形数据结构
  • 简易版2D我的世界C++程序(有点BUG,但是可以玩!!!)
  • 教育领域的AIGC革命:构建多模态智能教学系统
  • Java 安全:如何保护敏感数据?
  • pytorch python常用指令
  • GoLang基础
  • Java ThreadLocal与内存泄漏
  • SD模型的评估指标(挖坑中..)
  • 【强化学习(实践篇)】#1 多臂赌博机网格世界
  • 腾讯云智三道算法题
  • 梅花画与咏梅诗
  • 5145篇报道中的上海车展:40年,什么变了?
  • 政治局会议深读|首提“持续巩固房地产市场稳定态势”,楼市政策还有哪些优化空间
  • 俄总统助理:普京与美特使讨论了恢复俄乌直接谈判的可能性
  • 神舟二十号载人飞船与空间站组合体完成自主快速交会对接
  • 中纪报刊文:新时代反腐败斗争为党赢得历史主动