一次性总结数十个具身模型(2024-2025):从训练数据、动作预测、训练方法到Robotics VLM、VLA(如π0等)

前言

本文一开始是属于此文《GRAPE——RLAIF微调VLA模型:通过偏好对齐提升机器人策略的泛化能力》的前言内容之一(该文发布于23年12月底),但考虑到其重要性,加之那么大一张表格 看下来 阅读体验较差,故抽出取来独立成文且拆分之

当时的前言是

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

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

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

    • 17-20年,以BERT、GPT为代表的预训练-微调模式
      且从GPT3起,模型的参数规模越来越大,慢慢的不再需要针对下游特定任务做微调——一个模型搞定所有任务
    • 再之后,咱们经历了GPT3.5的RLHF微调
    • 及至到GPT4之后,模型在各方面的能力逼近人类甚至超越人类

    你说,是不是有趣?

    第一部分 从训练数据来源、动作预测策略、模型训练方法

    1.1 训练数据来源:视频、仿真、人工采集

    在机器人领域,互联网数据、仿真数据、真实数据等这三类数据构成了主要的数据来源

    • 如果采用端到端模仿学习的方法,给定一张图像并直接输出机器人动作,这通常依赖于真实世界数据
    • 如果采用端到端的强化学习RL,因为需要一个可以反复交互的环境,则往往依赖于仿真数据

    当然,也有先在RL仿真环境里训练一个base model,然后再在真实环境中通过模仿学习微调——这个搞法,我司七月具身项目组 便用到过

    详见如下表格

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表

    第一大块

    训练数据来源

    人类行为视频数据直接用互联网上大规模的视频数据,比如YouTube上的比如DexMV、MimicPlay
    受Google的Genie的启发,利用海量的无标注视频做训练——生成或预测潜在动作tokenViLLA、LAPA、Moto
    开源数据集需要一定的整合比如Open X-Embodiment
    合成数据视频生成模型生成数据比如英伟达的GR00T N1,有用到合成数据
    仿真数据毕竟仿真环境中训练base model,最后真实环境中微调,是常见训练方式1 英伟达的Isaac Sim:整合了物理引擎PhysX、图像渲染引擎RTX、动画/电影描述格式USD
    2 Google的MuJoCo
    人工收集手持夹爪,拍摄/录像,收集方便umi/fastumi
    动作捕捉,拍摄/录像,精度较高dexcap
    遥操,精度很高1 主从机械臂遥操数据ALOHA
    2 也可以通过手持夹爪摇操机械臂,类似松灵pika,有点类似ALOHA的升级版本
    3 VR遥操Open-television、iDP3

    1.2 动作预测策略:以ACT、Diffusion Policy、下个token自回归预测居多

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表

    第二大块

    动作预测策略

    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
    Diffusion Transformer(DiT)基于Diffusion Transformer(DiT)改造

    ​清华RDT

    预测与动作扩散器PAD:通过联合去噪同时预测未来图像和动作Prediction with Action: Visual Policy Learning via Joint Denoising Process

    ACT

    ACT基于Transformer

    Mobile ALOHA

    基于下一个token预测技术,自回归式的预测动作token

    将机器人的每个动作维度分别离散化为 256 个箱子中的一个

    自回归模型被训练为在给定所有先前token的情况下预测下一个token

    RT-2、OpenVLA
    自回归版π0-FAST

    训练一个Transformer模型来自回归地预测轨迹

    伯克利Digit

    基于文本指令和视频生成模型,预测动作轨迹

    模型基于GPT风格的Transformer构建,接受经过tokenized的文本和图像序列作为输入,并输出未来图像的离散token,未来的图像则通过VQGAN解码器从这些token中解码出来,自回归生成

    字节GR2
    在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)
    使用一种GPT 风格的transformer对这些运动token轨迹进行自回归 Moto:自回归方式预测未来视频片段的潜在运动token轨迹

    1.3 模型训练方法:人形偏RL + 遥操、VLA偏预训练或微调

    1.3.1 非Robotics VLM、非VLA的训练方法

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表

    第三大块

    模型训练方法

    直接真实环境中RL开训,摒弃仿真真实环境中得到的RL数据微调VLM + 机器人动作微调:RL训练运行创建的数据集,可以用于二次训练,代替人类提供的例子(效果如何 待验证)UC伯克利的Sergey Levine,于24年年底在DAI 2024上的演讲:RLDG——Reinforcement Learning Distilled Generalist
    结合视觉和人类示教与纠正的RL方法,目前暂时还是小众赛道UC伯克利的HIL-SERL
    RL仿真 + VR遥操估计人类动作 + 人类动作到人形机器人的重定向凡是人形,必涉及到基于AMASS数据集(包括SMPL-X做参数化建模)做人形运动目标的重新定位 + sim to real(师生学习/策略蒸馏) + VR遥操
    OmniH2O
    RL仿真训本体 + RGB遥操部署Retargeting、Sim-to-Real、RGB Real-time遥控H2O:通过重定向清除不可行的动作,然后仿真训练,最后RGB实时遥操作部署(使用训练好的Sim-to-Real模仿策略进行模仿)
    仿真中训小脑HST(仿真中训练好之后,RGB遥操部署)
    且其真实中训大脑HIT
    HumanPlus:RL仿真训本体 + 人类示教(模仿学习/行为克隆)训大脑
    静态数据训练 + 人类示教比如通过示范数据做行为克隆,更结合前身ALOHA的静态数据做协同训练

    Mobile ALOHA

    某种意义上,没有显性奖励函数定义的模仿学习里,可以把对expert action(人类专家动作)的模仿看作为奖励函数

    1.3.2 Robotics VLM和VLA训练方法:是否预训练

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表

    第三大块

    模型训练方法

    预训练的VLA先对VLM基于机器人数据(开源OXE + 自采,或只开源OXE)做二次预训练(模仿人类)变成VLA,再真实环境中微调VLA1 π0:先在高度多样化的开源 + 自采机器人数据上进行预训练——变成了相比不二次预训练情况下更强大的VLA,然后针对所需任务进行微调
    2 RT2和OpenVLA:只在开源OXE上做的预训练
    CogACT:把OpenVLA的离散化动作预测换成DiT
    不用预训练的VLA其考虑到预训练成本较高TinyVLA
    预训练的Robotics VLM针对VLM的二次预训练,通过开源OXE训练VLM变成Robotics VLMOcto:在Open X-Embodiment数据集上进行预训练
    不预训练的Robotics VLM没有针对VLM的二次预训练,而是直接机器人数据微调VLM变成Robotics VLM字节RoboFlamingo:使用简单、少量的微调就可以把 VLM 变成 Robotics VLM

    第二部分 Robotics VLM和VLA中的动作预测

    2.1 微调VLM之Robotics VLM和VLA中的动作预测

    2.1.1 要么专门的动作头,要么下一个token自回归预测动作,要么融合扩散头和自回归

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表

    微调VLM

    Robotics VLM和VLA中的动作预测

    第一类 专门的action head

    基于LSTM

    Robotics VLM:字节RoboFlamingo
    基于diffusion modelRobotics VLM:Octo

    VLA:TinyVLA(diffusion-based head)

    VLA:Diffusion-VLA

    VLA:DexVLA
    在VLM上插上1B大小的扩散动作专家,类似Diffusion VLA
    基于gemma_300m上的流匹配(扩散模型的变体)VLA:π0 (流匹配微调VLM)
    基于Diffusion Transformer(DiT)

    VLA:CogACT(相比Octo的头 更大)

    英伟达的GR00T N1

    第二类 基于下一个token预测技术,自回归式的预测动作token对于离散化token动作表示,即指将机器人的每个动作维度分别离散化为 256 个箱子中的一个VLA:RT-2OpenVLA(相当于RT-2开源版)
    打造机器人动作专用的高效Tokenizer:比扩散π0的训练速度快5倍但效果相当自回归版π0-FAST
    第三类 融合扩散与自回归动作生成

    考虑到

    扩散头训练速度慢、但推理快,比如扩散π0

    自回归训练速度快、但推理慢,比如RT-2

    那就结合两者各自的优势好了,以做到训练快推理也快

    Diffusion-VLA
    HybridVLA

    2.1.2  训练数据形式:是文本数据还是机器人数据

    微调或预训练VLM而言,一个重要的问题便是训练数据的由来

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表
    数据形式大量的图像-文本数据和少量的机器人演示数据RT-1、Palm-e、Rt-2、RoboFlamingo
    * 带下划线的是做了预训练的
    利用带有动作标签的多样化跨机器人数据集CrossFormer、OpenVLAOcto、OpenX

    2.2 直接提示VLM规划的更细,但过程中加约束

    如此文《让VLM充当机器人大脑——不微调直接提示VLM做顶层任务规划:从SayCan、VoxPoser到ViLA、CoPa、ReKep》所述,有

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表
    要求VLM规划的更细让模型生成动作规划的代码利用VLM和LLM的常识知识,借助模型生成代码,将常识知识映射到三维空间,具体而言VoxPoser
    将高层次指令分解为一系列低层次技能直接提示VLMs基于环境的视觉观察和高级语言指令生成一系列可执行步骤VILA
    其利用嵌入在基础模型中的常识知识(比如视觉语言模型的代表GPT-4V)为开放世界机器人操控生成一系列6自由度末端执行器姿势

    1 任务导向抓取,类似抓到锤柄
    使用视觉语言模型(VLMs) 比如GPT4-V,通过一种新颖的粗到细的定位机制选择对象的抓取部件(这句话的意思类似,好比人拿一个锤子去钉钉子时,是知道用手去拿锤子的锤柄,而非锤头)
    2 任务感知运动规划,类似拿打击面对准钉子
    再次利用VLMs来识别与任务相关的对象部件的空间几何状态(或约束),然后用于推导抓取后的姿势

    CoPa
    利用大模型(如 VLM 或 LLM)来推断和指定任务关键点的关系也就是说,这些关系并非由人工定义,而是依赖于大模型的推理能力及其内在的知识ReKep

    第三部分 架构层面:是否端到端及其发展之路

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表
    是否端到端,及其发展之路分层
    上层任务规划策略和下层操作策略

    VLM

    上层任务规划策略主要是基于文本指令当前环境信息,利用多模态大模型技术进行任务规划,输出为文本动作序列

    SayCan、PaLM-E(组合的PaLM + ViT)

    下层操作策略主要是指让机器人学会各种操作技能

    输入是技能标识(文本或轨迹)和当前状态信息(环境机器人本体),输出是末端姿态或关节角度

    RT-1、RT-Trajectory、MT-ACT
    端到端VLA
    大小脑统一,从感知直接映射到运动
    输入为文本指令、图像,输出则是机器人操作动作(末端姿态)RT2、OpenVLA、π0(VLM + 动作专家)
    端到端 VLA下的快慢双系统

    人脑的双系统机制

    系统一的快思考与系统二的慢思考

    相当于从外面看 是个端到端的黑盒子,但如果打开黑盒子一看,内部做了分层

    Helix / HiRT、GR00T N1
    ​​

    第四部分 借鉴大语言模型的发展之路(含3D版的VLA)

    2024年具身前沿模型/策略大汇总大类子类/说明典型代表
    借鉴大语言模型的发展之路让VLM充当机器人大脑,做顶层任务规划机器人基础模型(相当于大脑):用于整体任务规划
    机器人操控模型(相当于小脑):用于精确控制
    Figure 01、清华ViLA、CoPa
    基于VLM模型GPT-4o和关系关键点约束rekep
    预训练-微调模式中把模型搞大需要架构、数据双双具备RDT、π0
    把RLHF引入近具身通过偏好对齐提升机器人策略的泛化能力GRAPE
    把CoT引入具身让具身模型学会逐步推理ECoT、CoT-VLA
    把3D引入具身

    3D VLA

    PointVLA

    SpatialVLA

    让大模型来打辅助VLM解释人类演示视频,并为机器人生成任务计划、代码纽约大学:VLM See, Robot Do
    结合「GPT4V的open-world vision能力」和重定向OKAMI

    更多可以查看此文《RoboVLM——通用机器人策略的VLA设计哲学:如何选择骨干网络、如何构建VLA架构、何时添加跨本体数据

    // 本文一直在持续更新、汇总2025年 最新的具身模型中..

      ### 关于C/C++中的变长数组(Variable Length Array, VLA) #### 定义与特点 变长数组(VLA)是一种特殊的数组形式,在声明时其大小可以通过运行时计算得出的结果来动态指定。这种特性允许开发者创建有灵活尺寸的数组结构,而无需提前固定数组大小[^1]。 在标准方面,VLAs最初被引入到C99标准中作为正式的一部分[^2]。这意味着任何遵循C99或更高版本标准的编译器都应支持这一功能。然而需要注意的是,并不是所有的现代开发环境完全兼容这些较新的标准;例如Visual Studio 2022就不支持C99中的某些特性,包括VLA[^3]。 当尝试在一个不支持C99特性的环境中使用VLA时,可能会遇到诸如`warning: ISO C90 forbids variable length array 'a'`这样的警告信息[^4]。这表明当前使用的可能是更老的标准(C89/C90),该标准不允许如此定义数组。 #### 使用示例 以下是利用VLA的一个简单例子: ```c #include <stdio.h> int main() { int n; printf("Enter the size of array:"); scanf("%d", &n); // Variable-Length Array declaration based on user input. int vla[n]; for(int i=0;i<n;i++) { vla[i]=i*2; } for(int j=0;j<n;j++) { printf("%d ",vla[j]); } return 0; } ``` 此程序首先询问用户想要创建多大尺寸的整数型数组,然后基于这个输入值构建了一个相应规模的VLA并填充数据最后打印出来。 #### 警告机制与其他安全措施 尽管VLA提供了灵活性,但也伴随着潜在风险——比如栈溢出等问题。因此一些编译工不仅会发出ISO C90相关的警告消息外,还可能启用额外的安全防护选项像stack protector等功能来增强应用程序安全性。 #### §相关问题§ 1. 如何判断我的编译器是否支持C99标准下的变长数组? 2. 如果VS2022不支持C99的VLA,那么有哪些替代方案可以在Windows平台上实现类似的动态内存分配效果呢? 3. 变长数组相较于传统静态数组或者指针加malloc方式有什么优缺点吗? 4. 在实际项目编码过程中我们应当注意哪些事项才能有效规避因采用VLA而导致的各种隐患? 5. 是否存在其他编程语言也备类似于C语言里的VLA这样便捷又强大的语法糖设计?
      评论 2
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包

      打赏作者

      v_JULY_v

      你的鼓励将是我创作的最大动力

      ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
      扫码支付:¥1
      获取中
      扫码支付

      您的余额不足,请更换扫码支付或充值

      打赏作者

      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值