让你更懂AI的 2025-10-16 21:21 北京
不止会“卷基准”,还会上机器人
前段时间清华大学推出了首个面向具身智能的大规模强化学习框架 RLinf,之前主要是从系统设计的角度出发,介绍 RLinf 极度灵活的系统设计思想。最近,团队加班加点,终于出炉了 RLinf 系统中关于 VLA+RL 部分的算法技术报告(简写为 RLinf-VLA)。
简单来说,RLinf-VLA提供了一个统一、高效的平台用于 VLA+RL 的研究:
1. “快”:系统级优化方案使得吞吐量比基线平台提升 2.27 倍;
2. “多”:支持大规模多任务强化学习训练,所得到的单个模型可以在 LIBERO 所有 130 个任务中取得平均 98.11% 的成功率;
3. “好”:系统阐述了具身大模型时代应用 PPO 和 GRPO 算法的设计思路和最佳实践。
论文题目:
RLinf-VLA: A Unified and Efficient Framework for VLA+RL Training
论文地址:
https://arxiv.org/pdf/2510.06710
代码地址:
https://github.com/RLinf/RLinf
Huggingface地址:
性能快览版
▲ 图1. RLinf-VLA的整体介绍
当前已经有一些研究工作开展 VLA+RL 的相关研究,从不同维度展示了这种技术路线的潜力。
然而,这些研究大多仅采用某一个模型、某一种算法或者只在小规模任务下进行实验,缺少对不同算法设计、不同模型的全面系统分析。同时大模型时代的 RL Infra 上手难度高,算力昂贵,成为算法研究人员的主要瓶颈。
RLinf-VLA 正是为解决这样的开发困境而出现的,RLinf-VLA 的主要特点是“统一”和“高效”。
“统一”:
1)多仿真器支持:支持 LIBERO 和 ManiSkill。RLinf-VLA 选择首先支持这两个仿真器的原因是他们代表了两类典型的具身仿真器设计思路:CPU 并行(LIBERO)和GPU并行(ManiSkill)。
针对这两类典型的仿真器,RLinf 提出了一系列系统级优化手段,高效解决仿真中开展 VLA+RL 训练的“仿训推一体化”难题。其他类别仿真器都可以采取类似的思路进行系统化集成和优化。
2)多 VLA 模型支持:采用统一接口支持两种主流的模型 OpenVLA 和 OpenVLA-OFT,能够一键切换 LoRA 微调/全量微调,减少模型适配工作量。
3)多 RL 算法支持:支持具身版本 PPO 和 GRPO 两种主流强化学习算法。
“高效”:RLinf-VLA 在系统与算法两个层面针对效率进行了优化。系统层面,仅通过YAML文件就可以灵活切换3种分配模式,与基线框架相比,系统吞吐量提升高达 2.27倍。特别地,在采用GPU并行仿真器的情况下,创新的混合细粒度流水机制可加速1.61×–1.88× 的吞吐量。
算法层面,RLinf-VLA 引入了多项设计优化,包括轻量化 critic、轨迹长度归一化、动作掩码以及过滤机制等,显著提升了训练效率。
我们通过大量的实验验证了 RLinf-VLA 的效果。在仿真环境中,单个统一模型在 130 个 LIBERO 任务 上首次达到了 98.11% 的成功率,并在 25 个 ManiSkill pick&place 任务上取得了 97.66% 的成功率。
在真实的 Franka 机械臂上展示了初步部署结果:与基于 SFT 训练的策略相比,RL 训练的策略在零样本(zero-shot)泛化能力上表现更强。更重要的是,技术报告提炼了一系列 VLA+RL 训练的最佳实践,例如:
PPO:在使用动作块(action chunks)时,基于动作级(action-level)的价值估计优于基于块级(chunk-level)的估计;此外,部分重置(partial resets)可显著提升采样效率。
GRPO:轨迹长度归一化(trajectory-length normalization)与动作掩码(action masking)是稳定训练的关键。
通用实践:更大的 rollout 批量规模通常有助于性能提升;LoRA 虽可能不直接影响性能,但往往需要重新调整超参数。
详细介绍版
▲ 图2. VLA+RL训练流程
如图 2 所示,VLA+RL 训练流程可以分为 2 个部分(Rollout 和 Training),其中涉及 3 个三个组件:分别是红色的 Simulator(仿真器)、蓝色的 Generation(模型生成)、黄色的 Training(模型训练)。其中在 Rollout 阶段,Simulator 和 Generation 多步交互,对资源调度提出新挑战。
具体而言,不同的仿真器所占用的资源是不同的。对于 LIBERO 这类 CPU 并行的任务,其并行环境数量被节点 CPU 总数限制,因此 GPU 显存相对富余,可以更多调度给模型 Generation。
对于 ManiSkill 这类 GPU 并行的任务,其并行环境数量则主要由显存限制。因此需要精细调整分配给仿真器和模型的 GPU 资源。
为了能够灵活地调度资源,RLinf-VLA 提供了共享式、分离式、混合式三类 GPU 调度模式,并在混合式支持细粒度流水设计,如图 3 所示。
在 RLinf-VLA 中,只需要简单修改行 YAML 的几个配置即可在多种调度模式之间任意切换:
对于 Simulator, Generation 和 Training 三个组件的 GPU 的分配,只需在 cluster.component_placement
下分别设置想要使用的 GPU ID;
对于混合式中流水线的配置,将 Simulator 分成 k 个实例,可将该超参配置为 rollout.pipeline_stage_num=k。
以 OpenVLA 在 ManiSkill 中进行强化学习训练为例,我们发现
混合式细粒度流水的调度模式展现了最佳的吞吐。
为了减少 GPU 空闲等待的时间,我们以流水线数量 k = 2 来配置 Rollout 的组合,即 Simulator 部分使用 GPU 0~1 两张卡创建四个 ManiSkill 实例,而 Generation 部分使用 GPU 2~3 两张卡运行两个 OpenVLA 实例的推理过程。
在 Rollout 结束之后,Training 的实例可独立运行,并不依赖其他组件,所以,我们空出所有的 GPU 资源给 Training。
▲ 图3. RLinf-VLA支持多种不同的GPU调度模式
算法设计
3.1 关于优势函数和logprob的设计
▲ 图4. VLA模型输出的三个粒度
在讲算法设计之前,需要首先定义 VLA 模型输出的三个粒度,如图 4 所示。
1. Token-level:这是最小的输出单元,例如表示夹爪开合的一个token;
2. Action-level:机器人领域常用的 atomic action,通常表示模型的动作轨迹中某个时刻的一次动作;
3. Chunk-level:模型在一次前向中就能输出多个动作,这些动作可以在仿真环境中依次执行得到多个过程奖励,这是最大粒度,在模仿学习中常被称为动作块(action chunk)。
下面将分别介绍RL算法中关键的对数似然(log-probability)计算和优势(advantage)计算。
两种粒度的 advantage 的计算粒度:在 LLM +RL 算法中,通常有 token-level 的奖励,但是在具身领域我们通常关注 action-level 或 chunk-level 的奖励,因为某个词元不足以表示某次动作,因此也就无法从环境中获取奖励。
但是计算动作优势需要奖励信息,所以优势函数(advantage function)的计算粒度只有 chunk-level 和 action-level 两种级别。前者是说将动作块中的所有动作的反馈的奖励加和到一起,将整个块视为一个动作。
在 RLinf-VLA中,只需要更改 reward_type 参数即可,可选参数为 chunk_level 和 action_level。
三种粒度的 log-probability 的计算粒度:在 GRPO 和 PPO 算法中更新策略,计算 log-probability 是计算重要性采样比例的必不可少的一步,在 RLinf-VLA 中,我们支持了三种粒度的 log-probability 的计算方式。
只需要更改 logprob_type 参数即可,可选参数为 token_level,chunk_level 和 action_level。
▲ 表1. 优势函数的计算粒度和logprob的计算粒度
3.2 支持三种环境采样的重置方式
▲ 图5. 三种环境采样的重置方式
RL 算法中,策略在环境中采样会遇到两种结束的情况,第一种是环境执行成功返回终止( termination ),第二种是策略在环境中交互达到最大的交互次数,循环中止,返回截断( truncation )。为了应对这两种结束情况,提高我们采样的效率,我们在 PPO 算法中提供了两种环境采样的重置方式:
方法一:强制策略执行到固定步数才结束(Fixed Episode Length):只需要打开 ignore_terminations =True
即可实现。这种重置方式对应的优化目标是希望策略能够在执行成功后继续保持成功的状态,所以需要关注 success_at_end
这个目标。这个重置方式如图 5(a) 所示。
方法二:只要模型执行到有成功返回就立刻重置环境(Partial Reset):需要同时打开 auto_reset=True
和 ignore_terminations=False
。由于这种模式只需要策略执行成功至少一次,所以需要关注 success_once
这个目标。这个重置方式如图 5(b) 所示。
我们对两种方案进行了消融实验,如图 6 所示。我们发现在 PPO 算法中应用 Partial Reset 在两种模型下的效果都更优。
▲ 图6. OpenVLA 和 OpenVLA-OFT 模型在 PPO 两种重置方式下的任务成功率曲线
对于 GRPO 算法来说,也可以采用第一种重置方法,然而这种重置方法在同步执行多个任务时,有的任务较为简单,可能早早地就完成了。这就引出了第三种情况,即不重置环境,但成功之后的动作不会参与训练。在 RLinf-VLA 中,我们通过增加掩码来实现这种情况,这就是第三种重置方式:
方法三:模型执行到固定步数结束并将成功后的动作做掩码(Valid Action Mask):只需要打开 auto_reset=False
和 ignore_terminations=False
。这种模式只需要策略执行成功至少一次,所以需要关注 success_once
这个目标。这个重置方式如图 5(c) 所示。该部分曲线结果在后文展示。
3.3 关于 PPO 算法的设计
轻量化的 Critic 模型:由于使用整个独立的神经网络模型来估计期望回报占用的 GPU 资源较多,RLinf-VLA将 Actor 策略和 Critic 模型共享大部分参数,为 Actor 神经网络后接一个三层的线性层网络作为 Critic 模型。
Critic 模型以 Actor 最后一层神经网络输出的第一个词元 token 前的隐藏状态 (hidden state) 作为输入,输出当前动作的期望回报。
估计价值函数的两种粒度:价值函数 (value function) 的估计跟优势函数的估计粒度一样,计算粒度只有 chunk-level 和 action-level 两种级别。前者是将整个块视为一个动作。在 RLinf-VLA 中,只需要更改 value_type
参数即可。
默认情况下,这个参数与优势函数估计方式相同,即 value_type = reward_type
。在 PPO 算法实验中发现, 价值函数的粒度取 action-level 能够让模型收敛更快,成功率更高,如图 7 所示。
▲ 图7. OpenVLA-OFT 模型在采用 PPO 算法训练的成功率曲线和价值损失曲线。
3.4 关于GRPO算法的设计
GRPO 动作轨迹的长度归一化:不同于 LLM 中较长的回答有更大的可能是符合期望的回答,具身操作场景下,较长的交互轨迹很可能是失败的轨迹。因此失败的轨迹往往会执行到最大的交互步数而被截断,相反,由于环境返回的终止信号,成功轨迹的长度较短。
因此,为了让策略更公平地学习成功与失败的轨迹,RLinf-VLA 在更新策略时,对损失的计算加上了对每一个时间步的损失做在有效轨迹长度上的归一化。
具体而言,当一条轨迹有 T 个成功的时间步,那么这一条轨迹上的所有成功时间步(失败的时间步已经被掩码盖住)对应的损失都应该除以 T。公式如下:
图 8 展示了有无动作轨迹的长度归一化的对比结果,可以长度归一化对于最终性能影响相对较大。
▲ 图8. OpenVLA-OFT 模型在有无长度归一化的任务成功率曲线
图 9 进一步展示了结合前面的动作掩码的长度归一化的对比结果,可以看出在 LIBERO 任务中,二者均有正向效果,在 ManiSkill 的任务中效果相当。
▲ 图9. OpenVLA-OFT 模型在有无动作掩码和有无长度归一化的任务成功率曲线
过滤 GRPO 组内的轨迹 与 DAPO 类似,RLinf-VLA 设计了过滤机制,如果某个组内的所有的轨迹都是成功的或者失败的,那么这个组的所有的轨迹都不会参与策略的更新。
因为在 GRPO 的优势函数计算方法下,组内的所有轨迹的优势值都是 0,并不会对策略的更新提供贡献。过滤这个操作能够加速策略的性能收敛并且最终能够提升模型的性能,如图 10 所示。
▲ 图10. 是否过滤 GRPO 组内的轨迹对训练效果的任务成功率曲线
性能一览
4.1 高性能
1. 多任务实验-ManiSkill
在 ManiSkill 的 25 个 pick&place 任务中,OpenVLA 模型和 OpenVLA-OFT 模型在 PPO 和 GRPO 算法中都有明显的效果提升,相较于 Base 模型,提升幅度在 45%~70%。如图 11 所示,PPO 算法相较 GRPO 算法更加稳定,模型最终的成功率更高。
▲ 图11. 对于 PutOnPlateInScene25Main-v3 任务,两个模型在两种训练算法下的表现。
为了进一步验证模型的泛化能力,我们进一步测试了模型在训练数据分布外的性能实验。
如表 2 所示,我们发现,OpenVLA(RLinf-PPO) 的算法和实验设置虽然与 RL4VLA 相同,但是 OpenVLA(RLinf-PPO) 有更优的效果,这说明了在相同的绝对时间中,RLinf-VLA 能够以更高效的方式采集更多的数据和进行更多轮次的训练。
▲ 表2. 各种实验设置下的性能表现,包括训练分布内和训练分布外的测试结果。表中的值表示任务成功率。
2. 多任务实验-LIBERO
▲ 图12. OpenVLA-OFT 模型在 LIBERO-130 任务上的训练曲线
本文在 LIBERO 所有的 130 个任务中采用 GRPO 算法训练 OpenVLA-OFT。
结果表明,训练后的单个模型在 LIBERO-Spatial 和 LIBERO-Object 的任务成功率达到 99% 以上,在 LIBERO-Goal 和 LIBERO-90 的任务成功率提升到 98% 以上(注意:相关工作采用的是针对每一个任务组训练单独模型进行评估,而本文是一个模型在所有任务组进行评估)。
这个实验表明 RLinf-VLA 能够支持大规模的具身智能的强化学习训练。
▲ 表3. 单个OpenVLA-OFT 模型在 LIBERO 不同任务组中的测试效果
4.2 高效率
▲ 图13. 在各种实验设置下,多种调度策略的比较。其中 pipe 指的是混合式细粒度流水中 pipeline_stage_num
为了测试 RLinf-VLA 的吞吐,我们在多种实验设置下,对三种调度模式进行了广泛的测试,如图 13 所示,结论总结如下:
1. OpenVLA 与 ManiSkill 的实验设置(图13a):
我们发现使用 pipe=2 的混合式调度的训练比使用分离式的基线快了 1.88 倍(8 块 NVIDIA H100),并且在持续增加卡数后也能观察到吞吐量持续上涨。如图 13a 所示,其他模式则由于频繁地卸载加载组件和状态切换,出现多机的吞吐量下降的情况;
在进一步比较 pipe=1 和 pipe=2 的调度模式之后,我们发现更细粒度地切分 Simulator 能够提升整体的吞吐量性能,意味着 RLinf-VLA 设计的混合式细粒度流水的设计能够有效地减少 GPU 空闲等待的时间,减少“气泡”;
2. OpenVLA-OFT 与 ManiSkill 的实验设置(图13b):
这个组合的最优调度模式则不同于前一组,这是由于 OpenVLA-OFT 模型输出的动作块,模型只需要前向传播一次就能生成 8 个动作,这 8 个动作依次在模拟器中执行,因此 Simulator 需要更多的 GPU 资源。那么 pipe=2 的混合式的优势因此消失,如图 13b 所示,pipe=1 的吞吐量更大;
由于 ManiSkill 是 GPU 并行的模拟器,从图 13b 中也能观察到吞吐量随着 GPU 的数量增加而线性增长,因此,为 ManiSkill 分配更多 GPU 资源的共享式和 pipe=1 的混合式有明显更大的吞吐量;
3. OpenVLA-OFT 与 LIBERO 的实验设置(图13c):
OpenVLA-OFT 在 LIBERO 中的最佳调度模式则是共享式。如图 13c 和图 14 所示,这是由于 LIBERO 是 CPU 并行程度高的模拟器,其并不会与 Generation 抢占 GPU 资源,所以使用共享式让 Generation 调度所有的 GPU 资源加速推理。
OpenVLA-OFT 在 LIBERO 的共享式比同样使用共享式的 SimpleVLA-RL(基于 VeRL)要快 1.34~2.27 倍。如图 14 所示,RLinf 训练在 Rollout 和 在 Training 阶段都比基线需要更少的时间。
在 Rollout 阶段,由于我们封装了 LIBERO 模拟器原生的多线程类,并且无需每条轨迹结束之后无需频繁重新创建模拟器实例,这减少了不少的时间开销,同时没有牺牲采样的效果和正确性;
在 Training 阶段,得益于 RLinf 框架在系统上的多种优化手段,相比于基线,在拓展到多机后的耗时减少更多。
▲ 图14. OpenVLA-OFT 在 LIBERO 训练中各调度模式中各组件的耗时对比图
4.3 真机实验
为了验证使用 RLinf-VLA 训练策略的虚拟到真实的迁移性能,我们把在模拟器训练的 OpenVLA (RLinf-PPO) 直接部署到 Frank Panda 机械臂中进行多个任务的实验。
真机实验不仅展现出 OpenVLA (RLinf-PPO) 的零样本泛化到真实场景的能力,并且,在与使用 SFT 训练的策略相比,前者有更优的任务成功率,并且观察到后者有更严重的运动不稳定、抖动或震荡过大的现象。
▲ 表4. OpenVLA (SFT) 和 OpenVLA (RLinf-PPO) 的成任务功率对比表格。Pick 表示机械臂成功抓到物体,Success 表示物体被成功放置到容器中。
结语
RLinf-VLA的目标是通过强化学习不断提升VLA的能力,让智能体在真实世界中具备更强的理解、推理与行动能力。要实现这一目标,需要一个可靠且可扩展的基础设施。我们将持续维护与升级 RLinf-VLA 框架,未来将持续扩展仿真平台、模型生态、算法和真机支持,欢迎大家关注。
仓库链接:
https://github.com/RLinf/RLinf
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·