前言
25年3.26日,这是一个值得纪念的日子,这一天,我司「七月在线」的定位正式升级为了:具身智能的场景落地与定制开发商 ,后续则从定制开发 逐步过渡到 标准产品化
比如25年q2起,在定制开发之外,我司正式推出第一类具身产品(后续更多产品 详见七月官网):复现各个前沿具身模型的软硬全套的标准化产品,相当于已帮组装好的硬件,和对应复现好的程序,包括且不限于ALOHA/RDT/umi/dexcap/idp3/π0,如此软硬一体标准化的产品,省去复现过程中的
- 各种硬件组装问题
- 各种算法问题
- 各种工程问题
真正做到:一旦拿来,开箱即用
我司具身落地中,过去半年用π0居多,其次idp3和其他模型,也是目前国内具身落地经验最丰富的团队之一了
- 其中有不少工作便涉及到对具身模型的微调——恍如18-20年期间 大家各种微调语言模型
再之后随着GPT3、GPT3.5、GPT4这类语言模型底层能力的飞速提升,使得针对语言模型的微调呈逐年下降趋势 - 但在具身方向,未来一两年,微调具身模型都是主流方向之一
当然了,随着具身模型底层能力的越来越强、泛化性越来越好,也早晚会走到如今语言模型这般 微调偏少的地步
且我(们)始终保持对具身最前沿技术的沟通,这不,25年2月底,斯坦福的三位研究者
- Moo Jin Kim
OpenVLA的一作 - Chelsea Finn
ALOHA团队的指导老师,也是RT-2、OpenVLA、π0的作者之一,是我过去一两年下来读的机器人论文中出现频率最高的一个人了 - Percy Liang
OpenVLA的作者之一
提出OpenVLA-OFT「paper地址《Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success》、项目地址、GitHub地址」,在他们的角度上,揭示微调VLA的三大关键设计:并行解码、动作分块、连续动作表示以及L1回归目标
注意,我在解读的过程中,不一定会严格按照「论文整体的顺序及部分内容的原文顺序」展开,而是会为方便普通读者更好理解、更好认知的逻辑展开,包括部分小标题的编写
第一部分 OpenVLA-OFT
1.1 OpenVLA-OFT的提出背景与相关工作
1.1.1 OpenVLA-OFT的提出背景
Kim等人[22]提出了OpenVLA(一种代表性的自回归VLA模型),其通过LoRA进行参数高效的微调。然而,OpenVLA的自回归动作生成在高频控制中仍然过于缓慢——只能做到3-5 Hz 没法做到高频的25-50+ Hz,并且LoRA和自回归VLAs的全微调在双手操作任务中往往表现不佳[51,26,3]
OpenVLA结合了
- 一个融合的视觉主干(包括SigLIP [52]和DINOv2 [34]视觉变换器)
- 一个Llama-2 7B语言模型[49]
- 以及一个带有GELU激活[11]的三层MLP投影器,用于将视觉特征投影到语言嵌入空间中
流程上,OpenVLA处理单张第三人称图像和语言指令(例如,“将茄子放入锅中”)。融合的视觉编码器从每个ViT中提取256个patch嵌入,沿隐藏维度将它们拼接,并将其投影到语言嵌入空间。这些投影的特征与语言嵌入沿序列维度拼接,然后由Llama-2解码器处理,以输出一个7维的机器人动作,表示末端执行器姿态的增量,由一串离散动作标记表示
更多细节,详见此文《一文通透OpenVLA及其源码剖析——基于Prismatic VLM(SigLIP、DinoV2、Llama 2)及离散化动作预测》
尽管最近的方法通过更好的动作tokenization方案[2,36]提高了效率,实现了2到13倍的加速,但动作块之间的显著延迟「例如,最近的FAST方法[36]为750毫秒」仍然限制了在高频双手机器人上的实时部署
对此,三位作者使用OpenVLA作为基础模型,将VLA适配到新型机器人和任务中的关键设计决策
他们考察了三个关键设计选择并揭示了一些关键见解:
- 对于动作解码方案——自回归与并行生成
通过动作分块的并行解码不仅提高了推理效率,还改善了下游任务的成功率,同时增强了模型输入输出规范的灵活性 - 对于动作表示——离散与连续
与离散表示相比,连续动作表示进一步提高了模型质量 - 对于学习目标——下一个token预测、L1回归与扩散
使用L1回归目标对VLA进行微调时,在性能上与基于扩散的微调相当,同时提供了更快的训练收敛速度和推理速度
基于以上见解,他们引入了OpenVLA-OFT:一种优化微调(OFT)方案的具体实现,该方案结合了并行解码和动作分块、连续动作表示以及L1回归目标,以在保持算法简单性的同时提高推理效率、任务性能和模型输入输出灵活性
具体而言,在架构层面上,相比OpenVLA,OpenVLA-OFT 引入了以下关键变化:
- 动作块与解码上(详见下文1.2.1节)
将因果注意力替换为双向注意力以实现并行解码
且输出K个动作的块——比如K可以设置为14,而不是单时间步的动作 - 输出变化上,即动作表示上(详见下文1.2.2节)
用一个四层的多层感知机(ReLU激活)替代语言模型解码器的输出层,用于生成连续动作(而非离散动作)
比如,
,
..,总计25轮
至于学习目标上——即怎么生成动作呢?下文1.2.3节会介绍,三位作者实现了L1回归、与条件去噪扩散conditional denoising diffusion - 输入变化上 (详见下文1.3.1节)
通过共享的 SigLIP-DINOv2 主干网络处理多个输入图像(例如第三人称图像,加上腕部摄像机图像)
下文《1.3 微调三大关键设计之外的:额外输入输出、FiLM》会再次提到——一个带有GELU激活函数的三层MLP投影到语言模型嵌入空间
且通过带有 GELU 激活的两层MLP将机器人本体状态投影到语言嵌入空间
下文《1.3 微调三大关键设计之外的:额外输入输出、FiLM》会再次提到——即低维的机器人状态同样通过一个带有GELU激活函数的两层MLP投影到语言嵌入空间 - 可选的FiLM,下文1.3.2节详述
(适用于 OpenVLA-OFT+)添加了 FiLM [35] 模块,该模块使用任务语言嵌入的平均值来调制 SigLIP和 DINOv2 视觉变换器中的视觉特征(详见附录C)
最终,他们号称在标准化的LIBERO模拟基准测试和真实双手ALOHA机器人上的灵巧任务中进行了实验
- 在LIBERO中
一方面,准确率高
OpenVLA-OFT通过在四个任务套件中达到97.1%的平均成功率,建立了新的技术标准,超越了微调的OpenVLA策略[22](76.5%),和π0策略[3](94.2%)
二方面,动作生成速度快
同时在动作生成中实现了26倍的速度提升(使用8步动作分块),换言之,如果使用14步动作分块,则可以实现14/8 × 26 = 45.5,也意味着更高的吞吐量 - 对于真实的ALOHA任务[53],通过FiLM[35]增强了他们的方案以增强语言基础能力
1.1.2 相关工作:OpenVLA无法高频、π0_FAST(推理慢/吞吐慢)、扩散VLA(训练慢)
第一,以往的研究更关注什么呢?他们更关注模型开发
- 利用语言和视觉基础模型来增强机器人能力,将其用作预训练的视觉表示,从而加速机器人策略学习 [29-Vip,32-R3m,30-Liv,19-Language-driven representation learning for robotic,31]
在机器人任务中进行物体定位 [9,45]
以及用于高层次的规划和推理
[1-SayCan,17,42-Progprompt,16-Language models as zero-shot planners: Extracting actionable knowledge for embodied agents,43-Llmplanner: Few-shot grounded planning for embodied agents with large language models,18-Voxposer,6-Manipulate-anything] - 最近,研究人员探索了微调视觉-语言模型(VLMs)以直接预测低级别机器人控制动作,生成“视觉-语言-动作”模型(VLAs)
[4-RT-2,33-Open x-embodiment,23-Vision-language foundation models as effective robot imitators,22-Openvla,7-An interactive agent foundation model,15-An embodied generalist agent in 3d world,8-Introducing rfm-1: Giving robots human-like reasoning capabilities,50-Lingo-2,55-3dvla,51-Tinyvla,3-π0,2-Minivla]
这些模型展示了对分布外测试条件和未见语义概念的有效泛化能力
而OpenVLA-OFT的三位作者则专注于开发微调此类模型的流程,并通过从实证分析中获得的见解来验证每个设计决策的合理性
第二,相比OpenVLA,OpenVLA-OFT优势是什么呢
- 据论文称,尽管微调对于现实世界中的VLA部署至关重要,但关于有效微调策略的经验分析仍然有限
Kim等人[22]研究了各种参数更新策略,并通过他们的研究发现,LoRA微调能够有效适应单臂机器人在低控制频率(<10Hz)下的操作,但OpenVLA的分析并未扩展到双臂机器人在高控制频率(25-50+ Hz)下的更复杂控制场景 - 而本次的研究,OpenVLA-OFT通过探索VLA适应设计决策,以实现快速推理和在具有25 Hz控制器的真实双臂操控器上可靠的任务执行——这是第二点意义
第三,相比π0_FAST(推理慢),OpenVLA-OFT意义在于什么呢
- 尽管π0_FAST通过新的动作tokenization化方案改进了VLA 的效率,使用矢量量化或基于离散余弦变换的压缩方法,以比简单的逐维分箱——如RT-2 [4] 和OpenVLA [22] 中使用的,更少的token表示动作块(动作序列)
- 尽管这些方法为自回归VLA——π0_FAST 实现了2 到13× 的加速,但三位作者探索了超越自回归建模的设计决策,而自回归建模本质上受到迭代生成的限制
说白了,正因为OpenVLA和π0_FAST都属于自回归的VLA,所以他俩都无法实现很高频的控制(比如50hz以上),也就都存在推理慢、吞吐慢、高延迟的问题
最终OpenVLA-OFT的并行解码方法,与动作分块结合时,实现了
显著更高的加速:26× 到43× 的吞吐量
同时具有更低的延迟(单臂任务使用一张输入图像的延迟为0.07 ms,双臂任务使用三张输入图像的延迟为0.321 ms)
第四,与基于扩散的VLA(训练慢)相比
尽管这些基于扩散的VLA通过同时生成多时间步的动作块实现了比自回归VLA更高的动作吞吐量,但它们因为训练速度较慢以及推理时需要多次去噪或整合步骤,从而引入了计算上的权衡「they introduce compu-tational trade-offs through slower training and multiple denois-ing or integration steps at inference time」
- 此外,这些扩散VLA在架构、学习算法、视觉语言融合方法以及输入输出规范方面差异很大——哪些设计元素对性能影响最大仍不清楚
- 通过受控实验,三位作者表明,使用更简单的L1回归目标微调的策略可以在任务性能上匹配更复杂的方法,同时显著提高推理效率
1.2 微调VLA的三大关键设计:动作分块下的并行解码、连续动作表示、L1回归
在涉及到微调VLA的三个关键设计决策之前,有三点 需要先特别说明下
首先,三位作者使用 OpenVLA [22] 作为他们代表性的基础 VLA
- 如上文介绍过的,这是一种通过在 Open X-Embodiment 数据集 [33] 的 100 万个episodes上对Prismatic VLM [20] 进行微调而创建的 7B 参数操控策略
- OpenVLA的原始训练公式使用 7 个离散机器人动作token的自回归预测,每个时间步有
3 个用于位置控制
3 个用于方向控制
1 个用于抓手控制
它采用与语言模型类似的「交叉熵损失的下一个token预测」作为其学习目标
其次,先前的研究表明,动作分块——即预测并执行一系列未来动作而无需中间重新规划,在许多操作任务中提高了策略的成功率[53-ALOHA ACT, 5-Diffusion policy, 27-Bidirectional decoding]
- 然而,OpenVLA 的自回归生成方案使得动作分块变得不切实际,因为即使生成单个时间步的动作,在NVIDIA A100 GPU 上也需要0.33秒
- 对于块大小为
个时间步和动作维度为D 的情况,OpenVLA 需要进行
次顺序解码器前向传递,而无需分块时仅需
次
这种倍的延迟增加使得在OpenVLA的原始公式下,动作分块对于高频机器人来说变得不切实际
最后,现有的方法使用基础模型的自回归训练策略微调VLA时面临两个主要限制:
- 推理速度较慢(3-5 Hz),不适合高频控制
- 以及在双手操作器上的任务执行可靠性不足 [51-Tinyvla,26-Rdt-1b,3-π0]
为了解决这些挑战,三位作者研究了VLA微调的三个关键设计组件:
- 动作生成策略(图2,左):
比较了需要逐个token顺序处理的自回归生成,与同时生成所有动作并支持高效动作分块的并行解码 - 动作表示(图2,右):
对通过基于 softmax 的token预测处理的离散动作(对归一化动作进行 256 个分箱的离散化)与由多层感知机(MLP)动作头直接生成的连续动作进行了比较
对于离散动作,语言模型解码器的最终隐藏状态被线性投影为对数几率,然后通过 softmax 操作处理,形成动作token的概率分布
而对于连续动作,最终隐藏状态则通过一个单独的动作头MLP直接映射到归一化的连续动作
- 学习目标(图2,右侧)
比较了通过
下一个token预测微调离散动作的策略
L1回归微调连续动作的策略[53-ALOHA ACT]
L1回归(L1 Regression)是一种回归分析方法,它通过最小化预测值与真实值之间的绝对误差(L1范数)来拟合模型
L1回归的目标是最小化以下损失函数:
以及条件去噪扩散微调连续动作的策略[5-diffusion policy](类似于Chi等人[5]的研究)
他们使用OpenVLA [22]作为基础模型,并通过LoRA微调[14]对其进行适配,这是因为的训练数据集相对较小(500个示例,相比于预训练的1百万个示例)
1.2.1 支持动作分块的并行解码
OpenVLA 最初采用自回归生成离散动作token,并通过下一个token预测进行优化。三位作者实施了不同的微调设计决策,同时保持原始预训练不变
第一,与需要按顺序token预测的自回归生成不同
- 并行解码使模型能够在一次前向传递中将输入嵌入映射到预测的输出序列「parallel decoding enables the model to map input embeddingsto the predicted output sequence in a single forward pass」
- 为此,三位作者修改了模型,使其接收空的动作嵌入作为输入,并用双向注意力替换因果注意力掩码,从而使解码器能够同时预测所有动作
这将动作生成从D 次顺序传递减少到一次传递,其中D 是动作的维度「This reduces action generation from D sequential passes to asingle pass, where D is the action dimensionality」
此外,并行解码可以自然地扩展到动作分块
- 为了预测多个未来时间步的动作,只需在解码器的输入中插入额外的空动作嵌入,这些嵌入随后会被映射到未来的一组动作
- 对于分块大小为 K 的情况,模型在一次前向传递中预测
个动作,吞吐量增加
倍,而对延迟的影响极小
虽然从理论上讲,并行解码可能不如自回归方法那样具有表现力,但三位作者的实验表明,在各种任务中均未出现性能下降
在原始OpenVLA 自回归训练方案中,模型接收真实标签动作token(向右偏移一个位置)作为输入(这种设置称为教师强制)
- 因果注意力掩码确保模型仅关注当前和先前的token。在测试时,每个预测token会作为输入反馈用于下一个预测
- 对于并行解码,三位作者将此输入替换为空的动作嵌入,这些嵌入仅在位置编码值上有所不同「类似于[53-ALOHA ACT]」
且他们还使用了双向注意力掩码(而非因果掩码),使模型在预测动作块中的每个元素时可以非因果性地利用所有中间特征
1.2.2 连续动作表示
OpenVLA 最初使用离散动作token,其中每个动作维度被归一化到[−1, +1] 并均匀离散化为256 个区间
- 虽然这种方法很方便,因为它不需要对底层VLM进行架构修改,但离散化过程可能会牺牲细粒度的动作细节
换言之,对于离散动作表示,增加用于离散化的分箱数量可以提高精度,但会降低单个token在训练数据中的出现频率,此举会损害泛化能力 - 对此,三位作者研究了连续动作表示
1.2.3 提取「L1回归和条件去噪扩散」的学习目标
连续动作表示之外,三位作者并从突出的模仿学习方法中提取了两个学习目标
- L1 回归,该动作头直接将解码器最后一层隐藏状态映射到连续动作值
模型被训练为最小化预测动作与真实动作之间的平均 L1 差异
同时保持并行解码的效率优势并可能提高动作精度 - 其次,受 Chi 等人[5] 的启发,他们实现了条件去噪扩散(conditional denoising diffusion)建模
在训练过程中,模型学习预测在前向扩散期间添加到动作样本中的噪声
在推理过程中,策略通过反向扩散逐渐去噪噪声动作样本以生成真实动作
虽然这种方法提供了可能更具表现力的动作建模,但它在推理期间需要多次前向传递(在三位作者的实现中为 50 次扩散步骤),即使使用并行解码也会影响部署延迟
得益于使用连续动作表示,VLA可以直接建模动作分布而无需有损离散化。三位作者的连续表示实现中,使用以下规范
- L1回归:MLP动作头由4层带有ReLU激活的层组成,将最终的Llama-2解码器层隐藏状态直接映射到连续动作
- 扩散:使用DDIM [44] 采样器,具有50个扩散时间步,且遵循 [5,54] 的平方余弦β调度,此外,基于4层噪声预测器,采用与L1回归头相同的MLP架构
1.3 微调三大关键设计之外的:额外的输入及针对输入的FiLM处理
1.3.1 额外的模型输入:多视角图像和机器人状态
虽然原始 OpenVLA 处理单个摄像头视图,但一些机器人设置包括多个视角和额外的机器人状态信息
故三位作者实现了一个灵活的输入处理管道:
- 对于摄像头图像,三位作者使用 OpenVLA 的双视觉编码器提取每个视图的 256 个patch嵌入,这些嵌入通过共享投影网络被投影到语言嵌入空间
即将每个输入图像通过OpenVLA融合视觉编码器处理,生成256个patch嵌入,这些嵌入通过一个带有GELU激活函数的三层MLP投影到语言模型嵌入空间 - 对于低维机器人状态输入(例如关节角度和夹持器状态),三位作者使用单独的投影网络将这些映射到与摄像头图像相同的嵌入空间——从而作为另一个输入嵌入
即低维的机器人状态同样通过一个带有GELU激活函数的两层MLP投影到语言嵌入空间
所有输入嵌入——视觉特征、机器人状态和语言token——在传递给解码器之前沿序列维度进行连接。这种统一的潜在表示使模型能够在生成动作时关注所有可用信息
且结合并行解码和动作分块,这种架构可以高效处理丰富的多模态输入,同时生成多时间步的动作
1.3.2(可选) 使用 FiLM 增强 OpenVLA-OFT 的语言基础能力(使模型更加关注语言输入)
当在 ALOHA 机器人设置中部署时,包含来自腕部安装摄像头的多个视角,三位作者观察到由于视觉输入中的伪相关性,策略可能难以跟随语言
- 在训练过程中,策略可能会在预测动作时学习依赖这些伪相关性,而不是正确关注语言指令,导致在测试时无法很好地遵循用户的命令
- 此外,语言输入可能仅在任务的特定时刻是关键的——例如,在“将X 舀入碗中”任务中,抓住勺子后决定舀取哪种成分,如第 VI 节所述
因此,如果没有特殊技术,训练模型适当地关注语言输入可能特别具有挑战性
为了增强语言跟随能力
- 三位作者采用了特征线性调制FiLM[35],它将语言嵌入注入到视觉表示中,以使模型更加关注语言输入
we employ feature-wise linear modulation (FiLM) [35], which infuses languageembeddings into the visual representations so that the modelpays more attention to the language inputs. - 怎么实现呢?三位作者计算任务描述中的语言嵌入
的平均值,并将其投影以获得缩放和偏移向量
和
,这些向量通过仿射变换调制视觉特征F
We compute the average of the language embeddings x from the task description and project it to obtain scaling and shifting vectors γ and β. These vectors modulate the visual features F through an affine transformation
一个关键的实现细节是选择什么去ViT中调制(对应的视觉)” 特征”。尽管人们可能自然地考虑将单个patch 嵌入作为需要调制的特征,但三位作者发现这种方法会导致较差的语言跟随能力
相反,借鉴FiLM 在卷积网络中的操作方式,其中调制通过缩放和偏移整个特征图来空间无关地进行,他们将 和
的每个元素应用于所有视觉patch 嵌入中的对应隐藏单元,从而使
和
影响所有patch 嵌入「we apply each element of γ and β to the corresponding hidden unit across all visual patch embeddings so that γ and β influence all patch embeddings」
- 具体来说,这使得γ 和β 成为
维向量「别忘了,这两个向量怎么来的——任务描述中的语言嵌入
的平均值,并将其投影以获得缩放和偏移向量
和
,故需要和视觉patch的维度保持一致」,其中
是视觉patch 嵌入中的隐藏维度数量
- 三位作者在每个ViT块的自注意力层之后和前馈层之前应用 FiLM,每个块都有单独的投影器
具体如下图所示,在OpenVLA的融合视觉主干中,将FiLM[35]集成到SigLIP[52]和DINOv2[34] ViT中
通过在每个transformer块中进行缩放和偏移操作,平均任务描述嵌入对视觉特征进行调制,从而增强语言与视觉的集成。这一修改显著提高了ALOHA任务中的语言跟随能力
且三位作者遵循Perez 等人[35] 的做法,他们将F 乘以(1 + γ) 而不是γ,因为在初始化时γ 和β接近于零。这有助于在微调开始时保留视觉编码器的原始激活,最小化对预训练表示的扰动
实现细节上
- 将语言嵌入投影为 γ 和 β 的函数 f(x) 和h(x) 被实现为简单的仿射变换。为每个transformer学习了单独的投影器,以允许块特定的调制模式。这种设计使模型能够在视觉特征处理的不同层次学习不同的调制模式
- 可能有人最初会考虑独立调制每个patch嵌入,而不是像第 IV-C 节讨论的那样调制每个嵌入的每个隐藏维度
然而,他们的空间无关调制方法更接近 FiLM 在卷积网络中的操作,其中调制在空间维度上全局应用,因为特征图的整个部分由 γ 和 β 的单个元素进行缩放和偏移
这种设计选择更好地保留了 FiLM 的优势,并显著改善了策略的语言理解能力。且发现,一种独立调制每个patch嵌入的替代形式导致了较弱的语言理解能力最后,他们仅在第 VI 节讨论的 ALOHA 实验中使用 FiLM,在这些实验中,多个摄像机视角导致视觉输入中存在更多的虚假相关性
1.4 对VLA微调设计决策的评估
根据原论文,下面将通过旨在回答三个关键问题的控制实验,评估他们提出的 VLA 适配设计决策的效果
- 每个设计决策如何影响微调策略在下游任务上的成功率
- 每个设计决策如何影响模型推理效率(动作生成吞吐量和延迟)
- 替代的微调形式如何影响模型输入输出规范的灵活性
1.4.1 LIBERO 实验设置:4个任务套件,每个套件10个任务
在 LIBERO 模拟基准 [25] 上进行评估,该基准包含一个 Franka Emika Panda 机械臂模拟,演示数据包括相机图像、机器人状态、任务注释和末端执行器位姿变化的动作
他们使用四个任务套件——LIBERO-Spatial、LIBERO-Object、LIBERO-Goal 和LIBERO-Long,每个套件提供 10 个任务的 500 个专家演示,用于评估策略在不同空间布局、物体、目标
根据Kim 等人[22] 的方法,他们筛选出不成功的示范,并通过LoRA [14] 独立地对每个任务集微调OpenVLA
- 针对非扩散方法训练50 −150 K 次梯度步
对于扩散方法(收敛较慢)训练100 −250 K 次梯度步
并使用跨8 个A100/H100 GPU 的64-128 的批量大小 - 每隔50K 步测试一次检查点,并报告每次运行的最佳性能。除非另有说明,策略接收一张第三人称图像和语言指令作为输入
- 对于使用动作分块的方法,将块大小设置为K = 8,以匹配Diffusion Policy 基线[5],并在重新规划前执行完整的块,这一设置被发现可以同时提高速度和性能。超参数的详细信息见附录D
1.4.2 LIBERO任务性能比较
为了实现令人满意的部署,机器人策略必须展示出可靠的任务执行能力
三位作者首先评估不同的VLA微调设计决策如何影响LIBERO基准测试中的成功率。根据效率分析显示,并行解码PD和动作分块AC对于高频控制(25-50+ Hz)是必要的,特别是对于具有双倍动作维度的双臂机器人
因此,他们评估了同时使用这两种技术的OpenVLA策略,并比较了使用离散动作、带L1回归的连续动作以及带扩散的连续动作的变体
下表表I的结果显示「1 对比了包括从预训练基础模型 (Octo, DiT Policy, Seer,π0) 微调的策略,从头训练的模型 (Diffusion Policy, Seer (scratch), MDT),以及使用不同微调设计决策的 OpenVLA 变体:并行解码 (PD)、动作分块 (AC,块大小 K=8 步长)、以及带有 L1 回归的连续动作 (Cont-L1) 或扩散 (Cont-Diffusion)。2 本研究中的 OpenVLA 结果是对每个任务套件 (10 个任务 × 50 个实验) 平均 500 次试验的结果。最终,带有额外输入的完整 OpenVLA-OFT 方法实现了 97.1% 的平均成功率,达到了最先进的水平。基线结果来自原始论文,除了 Diffusion Policy、Octo 和原始 OpenVLA 策略的结果由 Kim 等人[22] 报告。加粗和下划线的值分别表示最佳和次优性能」
- 并行解码和动作分块不仅提高了吞吐量,还显著提升了性能,使得自回归OpenVLA策略的平均成功率绝对提高了14%。这一改进在LIBERO-Long中尤为显著,这表明动作分块有助于捕获时间依赖性[27]并减少复合错误[39],最终导致更平滑和更可靠的任务执行
- 此外,谈发现使用连续动作变体相较于离散动作变体,成功率进一步提高了 5%(绝对值),这可能是由于动作预测的精度更高所致
- L1回归和扩散变体表现相当,这表明高容量的OpenVLA模型即使使用简单的L1回归也能有效建模多任务动作分布
1.4.3 LIBERO 推理效率比较
高效的推理对于在高频控制机器人上部署 VLAs 至关重要。故原论文中评估了并行解码(PD)、动作分块(AC)和连续动作表示如何影响模型推理速度
- 他们通过在 NVIDIA A100 GPU 上对每种模型变体进行 100 次查询来测量平均延迟(生成一个机器人动作或动作块所需的时间)和吞吐量(每秒生成的总动作数)
- 每次查询处理一个 224 x 224 像素的图像和一个示例 LIBERO 语言指令(“拾起alphabet soup并将其放入篮子中”)
下表表II 中的结果表明「1 针对对 7 维动作的动作生成吞吐量和延迟,平均在 NVIDIA A100 GPU 上的 100 次查询中得出结果。每次查询处理一个 224 × 224 像素的图像和一个 LIBERO 任务指令(“拾起字母汤并将其放入篮子”)。2 比较了使用并行解码(PD)、动作分块(K=8 个时间步长)以及使用 L1 回归或扩散目标的连续动作的 OpenVLA 变体。最后一行添加了腕部摄像头图像和机器人状态输入。加粗和下划线的值分别表示最佳和次优性能」
- 通过将策略中解码器部分的 7 次顺序前向传递替换为单次传递,并行解码将延迟降低了 4 倍,并将吞吐量提高了 4 倍
Results in Table II show that parallel decoding reduces latency and increases throughput by 4× by replacing 7 se-quential forward passes through the decoder portion of the policy with a single pass - 添加动作分块(K = 8)会使延迟增加 17%,这是由于解码器中的注意力序列变长所致,但当与并行解码结合使用时,它能显著提高吞吐量,比基准 OpenVLA 快 26 倍
- 带有 L1 回归的连续动作变体在效率方面几乎没有差异,因为额外的 MLP 动作头仅增加了极少量的计算量
扩散变体需要50个去噪步骤,因此延迟增加了3倍。然而,通过并行解码和分块,它的吞吐量仍然比基线OpenVLA高出2倍
这意味着尽管动作块之间的暂停时间更长,扩散变体仍然比原始自回归变体更快地完成机器人操作周期
1.4.4 模型输入输出的灵活性
并行解码使得OpenVLA能够以最小的延迟增加生成动作块,从而提高模型输出的灵活性。且并行解码和动作块的显著加速为处理额外的模型输入也创造了余地
接下来,通过对OpenVLA进行微调,添加机器人本体状态等额外输入来证明这一点
机器人腕部安装的相机图像,这使得传递到语言模型解码器的视觉patch嵌入数量翻倍,从256增加到512
- 尽管输入序列长度大幅增加,微调后的OpenVLA策略仍然保持高吞吐量(71.4 Hz)和低延迟(0.112秒),如表II所示
- 通过在LIBERO基准上使用额外的输入评估这些策略,显示出所有任务套件的平均成功率进一步提高(表I)
- 值得注意的是,改进的经过微调的OpenVLA策略甚至超过了最佳微调的π0策略[3,36]——这些策略得益于具有更大规模预训练和更复杂学习目标(流匹配[24])的基础模型——以及多模态扩散变换器(MDT)[38]
- 即使使用比最近的VLA更少数据预训练的简单基础模型,他们发现他们的替代VLA适应设计决策使得微调的OpenVLA策略能够在LIBERO基准上建立新的技术水平
第二部分 将OpenVLA适配于现实世界的ALOHA机器人
虽然上面第一部分的实验结果表明OpenVLA-OFT在模拟中的有效性,但在现实世界中成功部署在与预训练阶段所见机器人平台有显著差异的机器人上,对于展示广泛的适用性至关重要
- 因此,三位作者还评估了他们优化后的微调方法在ALOHA机器人环境[53]中的效果,这是一种实际的双手操作平台,以高控制频率运行
- 他们在新颖的灵巧操作任务上进行了评估,这些任务在OpenVLA的预训练阶段(仅涉及单臂机器人数据)中从未遇到过
- 先前的研究[51-Tinyvla,26-Rdt-1b,3-π0]表明,使用自回归VLA[22-Openvla]进行原始LoRA微调对于此类任务是不切实际的,因为其吞吐量(单臂机器人为3-5 Hz,双臂任务甚至更低)远低于实时部署所需的25-50Hz
因此,他们在实验中排除了这一基线,并将其与稍后讨论的更有效方法进行比较
在论文的该部分中,三位作者介绍了增强版本的VLA微调方案(OFT+),该方案额外包括特征线性调制(FiLM)以增强语言基础
最终,他们将通过此增强微调方案实例化的OpenVLA策略记为OpenVLA-OFT+
2.1 ALOHA 实验设置
2.1.1 ALOHA与OpenVLA硬件设置的不同
ALOHA 平台由两个 ViperX 300 S 机械臂、三个相机视角(一个俯视视角和两个安装在手腕上的视角)以及机器人状态输入(14 维关节角度)组成。其运行频率为 25 Hz(从原始的 50 Hz 降低,以实现更快的训练,同时仍保持平滑的机器人控制),动作表示目标绝对关节角度
此设置与 OpenVLA 的预训练显著不同,后者仅包括单臂机器人数据、来自第三人称相机的单一视角、无机器人状态输入、低频率控制(3-10 Hz),以及相对末端执行器的姿态动作。 这种分布的变化给该模型的适应性带来了挑战
2.1.2 4个代表性任务:折叠短裤、折叠T恤、将X舀入碗中、将X放入锅中
他们设计了四个代表性任务,用于测试可变形物体操作、长时间技能、工具使用和基于语言的控制:
- “折叠短裤”:在桌子上使用连续的双手折叠动作折叠白色短裤
训练:20次示范(19次训练 一次验证)
事件长度:1000步长(40s)
评估:10次试验
初始状态:下图图9 - “折叠T恤”:通过多次同步的双手折叠动作折叠白色T恤,测试接触丰富的长时间操作
训练:30次演示(29次训练,1次验证)
情节长度:1250步,50s
评估:10次试验 - “将X舀入碗中”:用左臂将碗移至桌子中央,用右臂使用金属勺舀取指定的原料(“葡萄干”、“杏仁和绿色M&M巧克力”或“椒盐脆饼”)
训练:45次演示(每种原料15次,42个用于训练,3个用于验证)
情节步长:900,36s
评估:12次试验(每种原料4次) - “将X放入锅中”:用左臂打开锅盖,用右臂放置指定物品(“青椒”、“红椒”或“黄玉米”),然后关闭锅盖
训练:300次演示(每个物体100次,总计285次训练,15次验证)
评估:24次试验(12次分布内,12次分布外)
这个相对较大的演示数量并不是为了达到令人满意的性能所必需的。这仅仅反映了这项工作的早期调查阶段,在该阶段三位作者遇到了在学习的策略中进行语言对接的困难,并最初假设增加演示数量可能会提高语言跟随能力。然而,单纯扩展训练集不足以实现令人满意的语言对接,三位作者发现需要额外的技术来实现更可靠的语言对接,比如FiLM。尽管如此,他们仍然决定使用包含300个演示的完整数据集进行微调
为了完成上述任务,他们使用OFT+ 对OpenVLA 在每个任务上独立进行微调,进行50 −150 K 次梯度步骤(总批量大小为32,使用8 个A100/H100-80GB GPU),动作块大小为K = 25
且在推理时,在重新查询模型以获取下一个块之前,先执行完整的动作块
2.2 各个方法的PK:OpenVLA-OFT+/RDT/π0/ACT/diffusion policy
ALOHA 任务对OpenVLA 作为基础模型提出了显著的适应性挑战,因为在控制频率、动作空间和输入模态方面,它与OpenVLA的预训练平台存在显著差异
2.2.1 与VLA 模型RDT-1B 和π0 之间的对比PK
基于此,三位作者将OpenVLA-OFT+ 与最近的VLA 模型RDT-1B [26] 和π0 [3]进行比较,这些模型在双手操作数据上进行了预训练,并可能在这些下游任务中表现得更好
且三位作者按照原作者推荐的微调方法对这些模型进行评估,这些方法作为重要的比较基准
- RDT-1B微调的超参数见表 VIII
RDT-1B 的作者建议训练 150K 次梯度步长,但由于三位作者的微调数据集比 RDT-1B 的微调数据集小得多,三位作者观察到训练在显著较少的步长内就收敛了
因此,他们发现没有必要训练如此长的时间
事实上,在“将 X舀入碗中”这一任务上,较早的 18K 步长检查点(73.3% 成功率)优于较晚的 40K 步长检查点(70.0%)——我们在 ALOHA 实验中报告的是前者 - π0 的训练细节见表 IX
三位作者使用完整微调(其代码库中的默认选项)并训练至收敛
2.2.2 与ACT和Diffusion Policy的对比PK
此外,为了提供与计算效率较高的替代方法的比较,三位作者评估了两个流行的模仿学习基线:ACT[53] 和Diffusion Policy [5],它们在每项任务上从零开始训练
为了在这些基线方法中启用语言跟随,三位作者使用了跟随语言的实现
- 对于ACT,三位作者修改了EfficientNet-B0[46-Efficientnet: Rethinking model scaling for convolutional neural networks]
且通过FiLM [35-Film: Visual reasoning with a general conditioning layer,41-Yell at your robot: Improving on-the-fly from language corrections,详见此文《YAY Robot——斯坦福和UC伯克利开源的:人类直接口头喊话从而实时纠正机器人行为(含FiLM详解)》]处理CLIP [37]语言嵌入
下表表 VII 列出了从头开始为每个任务训练的 ACT [53] 的超参数
当然了,他们仅将此FiLM-EfficientNet实现用于与语言相关的任务,即
对于语言相关的任务(例如“将 X 舀入碗中”,“将 X 放入锅中”),三位作者实现了带有 FiLM [35] 的 EfficientNet-B0[46],类似于 [41-Yell at your robot]
对于非语言相关的任务(即对于折叠衣物任务,例如“折叠短裤”,“折叠衬衫”),他们使用默认的ResNet-18 [10] 骨干网络,该网络不包含语言条件,如在[54-3dvla]中所述
最后,ACT 的作者建议训练至少 5K 个周期,而三位作者将每个任务的训练扩展到 10K-70K 个周期以提高性能 - 对于Diffusion Policy,三位作者使用了DROID数据集[21-Droid: A large-scale in-the-wild robot manipulation dataset]的实现,该实现将动作去噪条件设定为基于DistilBERT [40]的语言嵌入,并修改以支持双手控制和多图像输入
下表表 VII 中列出了超参数
2.3 ALOHA任务性能结果
三位作者评估了所有方法——ACT、Diffusion Policy、RDT-1B、π0和OpenVLA-OFT+——在他们4个ALOHA任务上的表现
为了提供精细的评估,三位作者使用了一个预定的评分标准,该标准为部分任务完成分配分数(详见附录F)
图4展示了综合性能分数「OpenVLA-OFT+通过并行解码、动作分块、连续动作、L1回归以及用于语言基础的FiLM [35]增强了基础模型。微调的VLA模型始终优于从头开始的方法,其中OpenVLA-OFT+达到了最高的平均性能」
2.3.1 非VLA基线的性能
从头开始训练的基线方法表现出不同程度的成功
- ACT虽然能够完成基本任务,但其产生的动作不够精确,总体表现最低
- 扩散策略展示了更强的能力,在折衣服和舀取任务中与RDT-1B的可靠性相匹配或超过。然而,它在“将X放入锅中”任务中表现不佳,该任务具有更大的训练数据集,这表明相比基于VLA的方法,其可扩展性有限
2.3.2 微调的VLA的性能
微调的VLA策略在任务执行和语言跟随方面通常优于从头开始的基线,与之前的研究结果一致[26-Rdt-1b,3]
在VLA中,三位作者观察到不同的特点:
- RDT-1B通过其“交替条件注入”方案[26-Rdt-1b]实现了良好的语言跟随,但显示出在处理闭环反馈方面的局限性
如图7 所示,它经常无法纠正” 将X 舀入碗中” 任务中的错误——例如,在错过实际碗后继续将材料倒入一个想象中的碗中,这表明其对本体感受状态的依赖超过了视觉反馈 - 另一方面,π0 展现了更稳健的执行能力,动作更流畅,对反馈的反应更灵敏,经常能够从初始失败中成功恢复(如图7 所示)
尽管其语言理解能力稍微落后于RDT-1B,π0 实现了更好的整体任务完成能力,使其成为最强的基线模型 - 最后,OpenVLA-OFT+ 在任务执行和语言理解两方面都达到了最高性能(有关成功任务展开的示例,请参见图6)
当然,值得注意的是,因为基础OpenVLA 模型仅在单臂数据上进行了预训练,而RDT-1B 和π0 分别在大量双臂数据集上进行了预训练(6 K 个任务和8 K 小时的双臂数据)
这表明,微调技术可能比预训练数据的覆盖范围对下游性能更为关键
2.3.3 FiLM的消融研究
三位作者通过消融并评估其对他们OpenVLA-OFT+方法中策略语言跟随能力的重要性来进行研究,这些策略在最后两个任务中需要良好的语言基础才能成功执行
如图5所示——专门跟踪了语言依赖任务的语言跟随能力「微调的 VLA 比从头训练的策略更频繁地遵循用户的命令。OpenVLA-OFT+ 展示了最强的语言基础,然而移除 FiLM [35] 将成功率降低到随机水平」,在这两个任务中,OpenVLA-OFT+语言跟随能力下降到33%——相当于随机选择正确的指令
这表明 FiLM 对于防止模型过度拟合于虚假视觉特征以及确保对语言输入的恰当关注至关重要
2.4 ALOHA 推理效率比较
三位作者通过测量每100个查询的动作生成吞吐量和延迟来评估推理效率
他们在表III中报告了结果「1 吞吐量和延迟测量基于在NVIDIA A100 GPU上进行的100次查询的平均值。每次查询处理三张224 × 224像素的图像、14维机器人状态和一个任务命令(“将葡萄干舀入碗中”)。2 所有方法使用动作块大小K=25,除了DiffusionPolicy(K=24,因为需要是4的倍数)和原始的OpenVLA(K=1,无块化)。RDT-1B预测64个动作,但为了公平比较,他们只执行前25个动作。所有实现都使用PyTorch,除了π0(使用JAX)。加粗和下划线的值表示最佳和次优性能」
- 即使加入了额外的手腕摄像头输入,原始的OpenVLA公式表现出较低的效率,吞吐量为1.8 Hz,延迟为0.543秒
- 相比之下,OpenVLA-OFT+实现了77.9 Hz的吞吐量,尽管与之前LIBERO实验中的策略相比,其延迟较高,因为它需要处理两个额外的输入图像
其他方法展示了更高的吞吐量由于其较小的架构:ACT(84M参数)、DiffusionPolicy(157M)、RDT-1B(1.2B)和π0(3.3B)——而OpenVLA拥有7.5B参数
- ACT通过结合基于L1回归的单次动作生成(类似于OpenVLA-OFT+)及其紧凑架构,实现了最高速度
- 此外,尽管其规模更大,π0仍然由于其优化的JAX实现(所有其他方法均以PyTorch实现),在速度方面同时超过了RDT-1B和Diffusion Policy
- 值得注意的是,OpenVLA-OFT+ 的吞吐量(77.9 Hz)接近RDT-1B的(84.1 Hz),尽管其大小是后者的7倍,因为它通过单次前向传递生成动作,而不像RDT-1B那样需要多个去噪步骤
2.5 总结与不足
最后,引用原论文的阐述总结一下
- 对VLA微调设计决策的研究揭示了不同组件如何影响推理效率、任务性能、模型输入输出的灵活性以及语言跟随能力
这些见解形成了他们的优化微调(OFT)方案,该方案通过并行解码、动作分块、连续动作、L1回归和(可选的)FiLM语言条件化,实现了VLA在新机器人和任务上的有效适应 - OFT的成功在OpenVLA上尤其值得注意:尽管在预训练期间没有接触过双手机器人或多视图图像输入,使用OFT微调的OpenVLA能够适应此类配置,并能匹配甚至超越遇到过双手操控器和多输入图像的更近期的基于扩散的VLA(π0和RDT-1B)
这表明,一个设计良好的微调方案对最终性能可以有显著影响,且现有的VLA可以在不从头开始大量重新训练的情况下成功适应新的机器人系统 - 三位作者的研究结果表明,基于简单L1回归的方法结合高容量模型(如OpenVLA)在适应新型机器人和任务方面非常有效
与基于扩散的方法相比,这种方法具有实际优势:更简单的算法可以加快训练收敛和推理速度,同时保持较强的性能,这使其特别适合于实际的机器人应用
尽管OFT方法在将VLA适配到新型机器人和任务方面表现出潜力,但仍存在一些重要问题需要解决
- 处理多模态演示
三位作者的实验使用了针对每个任务具有统一策略的聚焦演示数据集。虽然 L1 回归可能通过鼓励策略学习演示动作中的中位数模式来帮助平滑训练演示中的噪声,但它可能难以准确地对存在多个有效动作的相同输入的真正多模态动作分布进行建模,这在生成替代动作序列对任务完成有益的情况下可能不是理想的选择
相反,基于扩散的方法可能更好地捕捉这种多模态性,但存在过度拟合训练数据中次优模式的风险(有关这些细微差别的讨论和视频演示,请访问该项目的网站)。了解 OFT 在多模态演示中的有效性是未来工作的一个重要方向 - 预训练与微调
三位作者的研究特别关注为下游任务微调视觉语言模型。OFT 的优势是否能有效地延伸到预训练,或者对于大规模训练是否需要更强大的算法如扩散模型,这需要进一步的研究 - 不一致的语言对齐
三位作者的 ALOHA 实验表明,没有 FiLM 的 OpenVLA 在语言对齐方面表现不佳,尽管在 LIBERO 模拟基准实验中并未出现此类问题。造成这种差异的原因——无论是由于预训练中缺乏双手数据还是其他因素——仍不清楚,需要进一步研究
// 待更