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

GRAPE——RLHF微调VLA模型:通过偏好对齐提升机器人策略的泛化能力(含24年具身模型汇总)

前言

过去的这两年,工作之余,我狂写大模型与具身的文章,加之具身大火,每周都有各种朋友通过CSDN私我及我司「七月在线」寻求帮助/指导(当然,也欢迎各大开发团队与我司合作共同交付):

  • 要么是做科研想复现
  • 要么是工厂想做自动化生产线的智能升级
  • 要么是想通过机械臂/人形解决各种业务场景问题

让我感慨:二零一一年,因为算法,首次有「天下无人不识君」的感觉,过去这两年,因为大模型和具身机器人,再次有了这感觉

具身的论文解读过很多之后,便会发现整个今24年的具身模型/策略大概如下所示——目前全网独一份「(建议按照从下至上的顺序看,且所有点我都做了详尽而细致的解读,点击下表中对应的文字即可阅读,我后续也会不断完善之——毕竟还有很多并未囊括于下表中,如转载请于文章开头标明作者July及本文链接

2024年具身前沿模型/策略大汇总说明补充备注典型代表
Robotics VLM和VLA中的动作头专门的action head

基于LSTM

Robotics VLM:字节RoboFlamingo
基于diffusion modelRobotics VLM:Octo
VLA:TinyVLA(diffusion-based head)
基于流匹配VLA:π0(即流匹配微调VLM)
基于Diffusion Transformer(DiT)VLA:CogACT(相比Octo的头 更大)
基于下一个token预测技术预测动作token对于离散化token动作表示,即指将机器人的每个动作维度分别离散化为 256 个箱子中的一个VLA:RT-2、OpenVLA(相当于RT-2开源版)
模型训练方法预训练的VLA先对VLM基于机器人数据(开源OXE + 自采,或只开源OXE)做二次预训练(模仿人类)变成VLA,再真实环境中微调VLAπ0:先在高度多样化的开源 + 自采机器人数据上进行预训练——变成了相比不二次预训练情况下更强大的VLA,然后针对所需任务进行微调
RT2和OpenVLA:只在开源OXE上做的预训练
不用预训练的VLA其考虑到预训练成本较高TinyVLA
预训练的Robotics VLM针对VLM的二次预训练,通过开源OXE训练VLM变成Robotics VLMOcto:在Open X-Embodiment数据集上进行预训练
不预训练的Robotics VLM没有针对VLM的二次预训练,而是直接机器人数据微调VLM变成Robotics VLM字节RoboFlamingo:使用简单、少量的微调就可以把 VLM 变成 Robotics VLM
直接真实环境中RL开训,摒弃仿真真实环境中得到的RL数据微调VLM + 机器人动作微调:RL训练运行创建的数据集,可以用于二次训练,代替人类提供的例子(效果如何 待验证)UC伯克利的Sergey Levine,于24年年底在DAI 2024上的演讲:RLDG——Reinforcement Learning Distilled Generalist
结合视觉和人类示教与纠正的RL方法,目前暂时还是小众赛道UC伯克利的HIL-SERL
RL仿真 + VR遥操重定向 + sim to real(师生学习/策略蒸馏) + VR遥操
OmniH2O
RL仿真训本体 + RGB遥操部署Retargeting、Sim-to-Real、RGB Real-time遥控H2O:通过重定向清除不可行的动作,然后仿真训练,最后RGB实时遥操作部署(使用训练好的Sim-to-Real模仿策略进行模仿)
仿真中训小脑HST(仿真中训练好之后,RGB遥操部署)、真实中训大脑HITHumanPlus:RL仿真训本体 + 人类示教(模仿学习/行为克隆)训大脑
静态数据训练 + 人类示教比如通过示范数据做行为克隆,更结合前身ALOHA的静态数据做协同训练Mobile ALOHA
动作预测策略iDP3(改进的3D diffusion policy)可落地在人形机器人上斯坦福iDP3
3D diffusion policy将3D视觉表示与扩散策略3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations
Diffusion Policy(还可基于点云)diffusion policy基于扩散模型UMI/dexcap
RDTRDT基于Diffusion Transformer(DiT)改造

​清华RDT

ACT

ACT基于Transformer

Mobile ALOHA

训练数据来源

1 人类行为视频数据(比如MimicPlay)

2 开源数据(比如Open X-Embodiment等)

3 仿真数据

4 人工收集

左边第4种——人工数据收集方式的有:

手持夹爪,收集方便

这几种人工收集方式分别以如下 为代表

umi/fastumi

动作捕捉,精度较高dexcap
遥操,精度很高主从机械臂遥操数据ALOHA

VR遥操Open-television 

有意思的是,其中的RDT、π0都通过聚合各大机器人数据集先做预训练,然后微调,且它两的参数规模也分别达到了1B、3B

大有类似大语言模型的发展路线,比如

  • 17-20年,以BERT、GPT为代表的预训练-微调模式
    且从GPT3起,模型的参数规模越来越大,慢慢的不再需要针对下游特定任务做微调——一个模型搞定所有任务
  • 途中经历过GPT3.5的RLHF微调(而巧的是本文要介绍的GRAPE便是通过RLHF微调VLA模型)
  • 及至到GPT4之后,模型在各方面的能力逼近人类甚至超越人类

你说,是不是有趣?且越往后越会发现

  1. 大模型和机器人的融合会越来越深入、彻底,很多大模型的技术会加速嵌入至机器人中
  2. 所以说,如果懂大模型对搞具身智能是好处多多的(包括本文涉及的RLHF,如果深入搞过大模型的话,则会和我一样 太熟悉不过了——毕竟两年前,我就是从开写ChatGPT及背后的RLHF开卷的,而写本文时,是在24年12.31日凌晨,真是与23年年初开写ChatGPT原理解析,遥相呼应,算是给这两年弄上一个完美的纪念),建议大家好好学,^_^

第一部分 GRAPE:通过偏好对齐实现机器人策略的泛化

1.1 GRAPE的提出背景与整理原理

近年来,视觉-语言-动作(VLA)模型的快速发展简化了一般的机器人操作任务,在受控环境变化的一系列任务中展示了令人印象深刻的能力

然而,这些模型面临几个关键挑战,例如在新环境、对象、任务和语义上下文中的泛化能力差[26-Openvla]。导致这一限制的一个重要因素是它们依赖于监督微调(SFT),即VLA通过行为克隆简单模仿成功演练的动作,而未能对任务目标或潜在失败模式形成整体理解[27-Should i run offline reinforcement learning or behavioral cloning?]

  1. 虽然像PPO[42]这样的强化学习(RL)算法在增强其泛化能力方面表现出色[52-Fine-Tuning Large Vision-Language Models as Decision-Making Agents via Reinforcement Learning],但收集足够的在线轨迹和明确定义奖励的高成本使其在训练VLA时不切实际[44-Octo]
  2. 此外,训练VLA仅仅复制专家行为通常会导致行为崩溃[28-Training language models to self-correct via reinforcement learning,即通过强化学习进行自我纠正,详见此文的2.3 Self-Correct之SCoRe:通过多轮强化学习进行自我纠正],即计划的轨迹往往次优[26-Openvla]

    这是因为SFT数据集通常未经策划,由从专家处收集的离线演示组成,这些演示隐含地嵌入了不同的价值观(例如任务完成、安全性和成本效益),而这些并未在数据中明确定义[36-Open x-embodiment,45-Bridgedata v2]
    总之,简单地通过SFT模仿这些行为可能会混淆模型,并导致次优-偏离演示实际目标的恶意轨迹
  3. 一些方法试图通过明确定义一组目标并分层解决它们来应对这一挑战 [24-Rekep,详见此文《ReKep——李飞飞团队提出的让机器人具备空间智能:基于VLM模型GPT-4o和关系关键点约束(含源码解析)》]。然而,这种方法会带来额外的推理开销,并且缺乏可扩展性 [30-HAMSTER: Hierarchical action models for open-world robot manipulation]

为了解决这些问题,24年,来自北卡罗来纳大学教堂山分校和华盛顿大学的研究者提出了GRAPE:通过偏好对齐来泛化机器人策略,以减轻使用强化学习目标训练VLA的高成本,同时提供灵活性以实现定制化操控目标的对齐

  • 其对应的论文为《GRAPE: Generalizing Robot Policy via Preference Alignment》
    论文一作为北卡罗来纳大学教堂山分校张子健,指导老师为北卡罗来纳大学教堂山分校助理教授 Huaxiu Yao,共同第一作者为华盛顿大学 Kaiyuan Zheng
    其余作者包括来自北卡教堂山的 Mingyu Ding、来自华盛顿大学的 Joel Jang、Yi Li 和Dieter Fox,以及来自芝加哥大学的 Zhaorun Chen、Chaoqi Wang
  • 如下图图2所示,GRAPE引入了轨迹偏好优化(TPO),通过隐式建模成功和失败试验的奖励,在轨迹层面对VLA策略进行对齐,从而提升对多样化任务的泛化能力

    具体而言
    1) 给定一个复杂的操作任务(顶部),GRAPE首先采用视觉语言模型将任务分解为几个时间阶段,然后识别每个阶段子任务完成所需的空间关键点
    Given a complex manipulation task (top), GRAPE first adopts a vision-language model to decompose thetask into several temporal stages, then identifies spatial keypoints essential for each stage’s subtask completion.
    2) 然后,给定用户指定的对齐目标,GRAPE提示一个强大的视觉语言模型为每个阶段获得一系列成本函数,其中较低的成本意味着更高的对齐合规性
    Then given user-specifiedalignment goals, GRAPE prompts a powerful vision-language model to obtain a series of cost functions for each stage, where lower costimplies higher alignment compliance.
    3) 在迭代偏好优化过程中(底部),作者从基础VLA模型中采样多个离线轨迹,并获得具有相关多阶段成本的轨迹。该评分进一步结合了模型对每条轨迹的自我评估和二元任务成功指示器
    During iterative preference optimization (bottom), we sample multiple offline trajectories from thebase VLA model and obtain trajectories with associated multi-stage costs. This score further incorporates the model’s self-evaluation ofeach trajectory and a binary task success indicator.
    4) 再之后,根据采样轨迹的相应得分对其进行排名,以获得偏好列表
    Then we rank the sampled trajectories with their corresponding scores to obtain a list ofpreferences.
    5) 最后,执行轨迹偏好优化以获得改进的模型,从中进一步采样在线轨迹并迭代直到收敛
    Then we perform a trajectory-wise preference optimization to obtain a improved model, from which we further sample onlinetrajectories and iterate until convergence
  • 且为了进一步缓解轨迹排序和提供任意对齐目标偏好的难度,GRAPE建议将复杂的操控任务分解为多个独立阶段,并采用大型视觉模型为每个阶段提出关键点,每个关键点都与时空约束相关
    值得注意的是,这些约束是灵活的,可以定制以使模型与不同的操控目标对齐,例如任务完成、机器人交互安全性和成本效益

1.2 通过偏好对齐来推广机器人策略

1.2.1 预备知识

在推理过程中,VLA 通常以任务指令q 初始化,并且在每个时间步t,它接收环境观察o_{t}(通常是一张图像)并输出一个动作a_{t},如此可以将\pi_{\theta}\left(a_{i} \mid\left(o_{i}, q\right)\right)表示为由θ 参数化的VLA 的动作策略

为了完成任务,VLA 与环境反复交互并获得长度为T 的轨迹\zeta=\left\{o_{1}, a_{1}, \cdots, o_{T}, a_{T} \mid q\right\}。通常,VLA通过SFT 进行微调以模仿专家行为(定义为方程1):

\mathcal{L}_{\mathrm{SFT}}=-\sum_{(\zeta, q) \in \mathcal{D}} \sum_{t=1}^{T} \log p\left(a_{t} \mid o_{t}, q ; \pi_{\theta}\right)

其中,\mathcal{D}=\left\{\left(\zeta_{1}, q_{1}\right), \ldots,\left(\zeta_{N}, q_{N}\right)\right\}表示包含N 个专家轨迹的训练集,具体来说,\mathcal{L}_{\mathrm{SFT}} 迫使VLA 记住从分布PD 中采样的每个观察相关的动作,导致对新任务环境的泛化能力较差

值得注意的是,虽然遵循Brohan 等人[7-Rt-2] 和O’Neill 等人[36-Open x-embodiment] 的做法,并基于马尔可夫决策过程MDP假设[43-Richard S Sutton. Reinforcement learning: An introduction.
A Bradford Book, 2018
] 考虑逐步策略,但作者的方法可以很容易地适应非MDP 情况,该情况将过去的交互历史(通常是视频或一系列图像)作为状态[9-Gr-2,详见此文《字节GR2——在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)》],以及扩散策略[16-Diffusion policy],其一次生成多个未来步骤[44-Octo]「which takes past interaction histories (usually a video or a series of images) as state [9] and diffusion policy [16] which generates multiple futuresteps all at once [44]

1.2.2 TPO:轨迹偏好优化

为了提高泛化能力,作者遵循

  • Bai等人[3-Training a helpful and harmless assistant with reinforcement learning from human feedback,相当于早在2022年4月份,目前OpenAI最大的竞争对手Ahthropic就发了其LLM论文:Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback,这篇论文和OpenAI的instructGPT论文极其相似 (如果你之前还没看到instructGPT论文,或者尚不了解ChatGPT的三阶段训练方式,强烈建议先看此文:ChatGPT技术原理解析:从RL之PPO算法、RLHF到GPT4、instructGPT),也就比后者晚发布40多天]
  • Schulman等人[42-Proximal policy optimization algorithms,即PPO算法,详见此文《强化学习极简入门:通俗理解MDP、DP MC TC和Q学习、策略梯度、PPO》]的工作

并通过RL目标进一步微调VLA策略

  1. r_{\phi}表示由\phi参数化的奖励函数,从而有(定义为方程2)
    \max _{\pi_{\theta}} \mathbb{E}_{\zeta \sim \pi_{\theta}}\left[r_{\phi}(\zeta)\right]-\beta D_{\mathrm{KL}}\left[\pi_{\theta}(\zeta) \| \pi_{\mathrm{ref}}(\zeta)\right]

    其中,\beta控制与通过SFT 在方程(1) 中训练的基础参考策略\pi_{\mathrm{ref}} 的偏差,\pi(\zeta, q)是在指令q 下策略\pi 生成整个轨迹\zeta 的可能性
  2. 然后我们遵循Rafailov 等人的方法[40-Direct preference optimization: Your language model is secretly a reward model,即DPO,详见此文《RLHF的替代之DPO原理解析:从RLHF、Claude的RAILF到DPO、Zephyr》],推导出轨迹奖励r(\zeta)的解析重参数化为(定义为方程3)
    r(\zeta, q)=\beta \log \frac{\pi_{\theta}(\zeta \mid q)}{\pi_{\mathrm{ref}}(\zeta \mid q)}+\beta \log Z(\zeta)
  3. 类似于Rafailov 等人[40],作者采用Bradley-Terry(BT) [5-Rank analysis of incomplete block designs: I. the method of paired comparisons] 模型,并从一组带有偏好排序的轨迹中对r_{\phi}进行建模

    具体来说,令\zeta_{w}\zeta_{l} 分别表示从相同初始状态开始的被选择和被拒绝的轨迹,可以将轨迹奖励建模目标公式化为(定义为方程4)
    P\left(\zeta_{w} \succ \zeta_{l}\right)=\frac{\exp \left(r\left(\zeta_{w}\right), q\right)}{\exp \left(r\left(\zeta_{w}\right), q\right)+\exp \left(r\left(\zeta_{l}\right), q\right)}
  4. 然后,我们遵循Rafailov等人[40]的方法,将公式(3)代入公式(4),得到如下轨迹偏好优化(TPO)损失\mathcal{L}_{\mathrm{TPO}},相当于公式(2)——定义为方程5
    -\mathbb{E}_{\left(\zeta_{w}, \zeta_{l}\right) \sim \mathcal{D}}\left[\log \sigma\left(\beta\left(\log \frac{\pi_{\theta}\left(\zeta_{w}\right)}{\pi_{\mathrm{ref}}\left(\zeta_{w}\right)}-\log \frac{\pi_{\theta}\left(\zeta_{l}\right)}{\pi_{\mathrm{ref}}\left(\zeta_{l}\right)}\right)\right)\right]
  5. 然后可以进一步从MDP中提取,并将轨迹\zeta的可能性分解为单个状态-动作对,即\pi(\zeta, q)=\prod_{i=1}^{T} \pi\left(a_{i} \mid\left(o_{i}, q\right)\right),且进一步获得(定义为方程6)
    \log \frac{\pi_{\theta}(\zeta, q)}{\pi_{\mathrm{ref}}(\zeta, q)}=\sum_{t=1}^{T} \log \frac{\pi_{\theta}\left(a_{i} \mid\left(o_{i}, q\right)\right)}{\pi_{\mathrm{ref}}\left(a_{i} \mid\left(o_{i}, q\right)\right)}

    最后,可以将方程(6) 代入方程(5),以获得逐步状态-动作对形式的TPO 损失\mathcal{L}_{\mathrm{TPO}}

最终得到的TPO损失方程6是有益的,因为它:

  1. 通过简单地使用VLA收集的逐步回合,将策略\pi_{\theta}在轨迹级别上全局对齐到人类偏好
  2. 通过在整个轨迹的状态-动作对中反向传播梯度,稳定策略并引导其朝向最终目标
  3. 通过通过RL目标从成功和失败的轨迹中学习,显著提升泛化能力。尽管Finn等人[21-Guided cost learning: Deep inverse optimal control via policy optimization]指出,扩大采样轨迹的规模可以减少奖励建模中的偏差,但这也增加了训练成本
    因此,虽然作者的方法可以轻松扩展,但作者还是建议将讨论限制在仅存在一个选择/拒绝轨迹的二进制情况

// 待更


http://www.mrgr.cn/news/82122.html

相关文章:

  • 用python编写一个放烟花的小程序
  • 使用 apply 方法将其他列的值传入 DataFrame 或 Series 的函数,来进行更灵活的计算或操作
  • FORCE 大会开发者论坛演讲实录|吴一帆:边缘智能在 Agent 上的探索与实践
  • 第3章 总线
  • log4j2的Strategy、log4j2的DefaultRolloverStrategy、删除过期文件
  • GXUOJ-算法-补题:22级《算法设计与分析》第一次课堂练习
  • win32汇编环境下,提取对话框程序中,listview列表控件里的内容示例
  • 设计模式 创建型 单例模式(Singleton Pattern)与 常见技术框架应用 解析
  • 点跟踪基准最早的论文学习解读:TAP-Vid: A Benchmark for Tracking Any Point in a Video—前置基础
  • win32汇编环境下,双击窗口程序内生成的listview列表控件的某行,并提取其内容的示例程序
  • 溢出概念总结
  • 基于深度学习的视觉检测小项目(二) 环境和框架搭建
  • MIT Cheetah 四足机器人的动力学及算法 (I) —— 简化动力学模型
  • GeekPad 连接到VirtualBox的Ubuntu虚拟机上的Home-Assistant
  • win32汇编环境下,窗口程序中生成listview列表控件及显示
  • 使用Clion在ubuntu上进行交叉编译,并在Linux上远程编译五子棋
  • UE5 Debug的一些心得
  • 商汤C++开发面试题及参考答案
  • Enum枚举类与静态变量和静态数组的区别
  • 单片机-LED实验
  • Edge如何获得纯净的启动界面
  • 线段树保姆级教程
  • CT 扫描显示 USB-C 电缆可能隐藏复杂的恶意硬件
  • 【paddle】初次尝试
  • C++新特性||线程协程
  • 论文实现:Reactive Nonholonomic Trajectory Generation via Parametric Optimal Control