前言
过去一周,我花了很大的心思、力气,把deepseek的GRPO、MLA算法的代码解析通透,比如GRPO与PPO的详细对比,再比如MLA中,图片 公式 代码的一一对应,详见此专栏《火爆全球的DeepSeek系列模型》
2.20日晚,无意中刷到figure 02发布Helix的一个演示视频,再次大为震撼,当时在朋友圈感叹到,应该vla的贡献程度最大
后来看了其技术blog后 发现确实如此,毕竟对于工厂特定场景的干活,虽然目前模仿学习和RL落地相对更好(当然,工厂很快也会迎来VLA的落地),但对于家庭相对复杂多变的场景下,VLA的泛化能力确实更强
故本文就来专门解析下figure 02发布的通用VLA:Helix
Figure 02发布通用人形机器人控制的VLA:Helix
- 整个上身控制:Helix 是第一款对整个人形上身(包括手腕、躯干、头部和各个手指)进行高速率连续控制的 VLA
- 多机器人协作:Helix 是第一个同时在两个机器人上运行的 VLA,使它们能够使用从未见过的物品解决共享的、远程操作任务
这点还是6的,毕竟之前咱们看到的大部分机器人演示视频,基本都是针对单个机器人的 - 拿起任何东西:配备了 Helix 的 Figure 机器人现在只需按照自然语言提示,就能拿起几乎任何小型家居物品,包括数千种它们从未遇到过的物品
- 一个神经网络:与之前的方法不同,Helix 使用一组神经网络权重来学习所有行为
比如挑选和放置物品、使用抽屉和冰箱以及跨机器人交互,而无需任何针对特定任务的微调
One neural network: Unlike prior approaches, Helix uses a single set of neural network weights to learn all behaviors—picking and placing items, using drawers and refrigerators, and cross-robot interaction—without any task-specific fine-tuning.
换言之,现有的 VLA 系统通常需要专门的微调或专用的动作头来优化不同高级行为的性能,而Helix 仅使用一个统一的模型就实现了不同任务的强大性能,仅使用一组神经网络权重:系统 2 为 7B,系统 1 为 80M
Existing VLA systems often require specialized fine-tuning or dedicated action heads to optimize performance across different high-level behaviors.
Helix achieves strong performance across diverse tasks with a single unified model. Using just one set of neural network weights (7B for System 2, 80M for System 1)
总之,具身智能让我对大模型的应用落地 充满极大的热情与信心
- 自从figure 01之前发布的与人类自然流畅的对话且听人类指令整理桌面之后「详见此文的第六部分 Figure 01:VLM做顶层规划 + 操控小模型预测动作」,figure在我眼中便是机器人版OpenAI的存在,它的每一次更新迭代,我都极为关注,代表着具身机器人的最前沿之一
- 创业团队搞大模型纯软应用 拼不过大厂,但具身的落地,现在有不少大中小创业公司的机会与空间(场景太多 大厂搞不过来)
希望与同行/同仁多多合作,若有意合作,敬请私我
更新:后于2.24日,我于本文的第二部分,新增了对“ 清华大学IIIS的一个和Helix类似工作HiRT” 的解读
第一部分 通用人形机器人控制Helix
1.1 如何理解Helix
1.1.1 不同场景下训练方法的对比
众所周知
- 在面对特定的比如工厂场景中,在模仿学习的框架之下,采集数千条人类示教数据,是可以教会机器人比如协作机械臂干一些活的(当然,也可以通过先建立仿真环境,通过RL大量重复交互、训练一个base model,然后再在真实环境中通过人类示教数据做微调)
- 但当面对相对复杂多变的家庭场景,针对家庭场景的一个个特定任务,则不管是每个任务都进行长达数小时的编程,还是一个个场景下采集数千条示教演示的数据,都显得成本高昂——至少不太经济
说白了,就是前者工厂目前暂不需要很强的泛化,更多需要精细控制
但家庭则需要相对比较好的泛化能力,毕竟家庭场景下的每个任务的精读要求没工厂要求那么高,有一定的容错性,但家庭场景复杂多变
为了让机器人有比较好的泛化能力,此前的VLA已经在这方面做了很多的探索
而本次Figure 02发布的Helix便是延续VLA这条路线的成果——将视觉语言模型VLM)中已有的丰富语义知识通过一定的途径转化为机器人动作
那针对如何从 VLM 中提取所有这些常识性知识并将其转化为可泛化的机器人控制这个问题,Helix是怎么做的呢,和其他的VLA模型——比如和π0有何不同呢
1.1.2 Helix:组合“快系统 1、慢系统 2”,以用于整个上身控制
先前的方法面临着一个根本性的权衡:VLM 主干是通用的,但速度不快,而机器人视觉运动策略是快的,但不通用,而Helix 通过两个互补的系统解决了这一权衡:兼顾通用性和实用性,且这两个系统经过端到端的训练,可以进行通信
总之,Helix 是首创的双系统[分为“快系统 1、慢系统 2”]VLA 模型,可对人形机器人的整个上半身进行高速、灵巧的控制
- 系统 2 (S2),一个在互联网规模数据上进行了预训练的 开源VLM,其参数大小为7B
以 7-9 Hz 的频率运行,用于场景理解和语义解析,从而实现跨对象和跨情境的广泛泛化
它处理经过投影进入视觉语言嵌入空间的单目机器人图像和机器人状态信息(包括腕部姿态和手指位置)
It processes monocular robot images and robot state information (consisting of wrist pose and finger positions) after projecting them into vision-language embedding space.
结合指定期望行为的自然语言指令,S2 将所有与任务相关的语义信息提炼为一个单一的连续潜在向量Latent Vector,传递给 S1 以对其低级动作进行条件设置
Combined with natural language commands specifying desired behaviors, S2 distills all semantic task-relevant information into a single continuous latent vector, passed to S1 to condition its low-level actions - 系统 1 (S1):一种基于交叉注意力编码器-解码器Transformer的视觉编码器,其参数大小为80M
且S1自身的视觉骨干网络通过全卷积、多尺度视觉主干网络进行视觉处理「It relies on a fully convolutional, multi-scale vision backbone for visual processing」,该网络通过完全在模拟环境中进行的预训练来初始化
S1的动作策略会融合:S1自身接收到的最新观察结果、来自S2的最新S2潜在向量,具体而言
第一方面,S1快速推理,S1自身的视觉骨干网络 会直接接收与 S2 相同的图像和状态输入,但它以更高的频率处理它们,以实现响应更快的闭环控制
第二方面,S1结合S2深度思考下的深度推理,即S1还会接收来自 S2 的Latent Vector「投影到 S1 的token空间中」,且沿着序列维度与来自第一方面S1自身视觉骨干网络的视觉特征连接起来,以提供完成对应任务的完整条件
The latent vector from S2 is projected into S1's token space and concatenated with visual features from S1's vision backbone along the sequence dimension, providing task conditioning
如此一快、一慢,最终融合S1自身视觉主干的输入信息和来自S2 产生的潜在语义表征(latent semantic representations),整体输出快速反应的视觉运动策略——即200 Hz 的精确连续机器人动作,包括所需的手腕姿势、手指屈曲和外展控制,以及躯干和头部方向目标
且他们在动作空间中附加了一个合成的“任务完成百分比”动作,使 Helix 能够预测自己的终止条件,从而更容易对多个学习到的行为进行排序
我再帮大家对比下之前的模型
- 在操作频率上,比π0、RT2更快,与Figure 01相当
比如,对于π0而言,他们也就做到50Hz的频率控制机器人进行如折叠衣物
包括更早之前的RT-2的执行速度更有限(RT-2论文里提到的决策频率则只有1到5hz),更没法做到200hz的操作速度
只有Figure 01中得益于基于neutral network的机器人操控小模型,做到了以 200hz 的频率生成 24-DOF 动作(在自由度上,Helix有35自由度)- 在模型架构上,一个大模型,不用额外且独立的动作专家expert
首先,Figure 01类似RT-1,两个模型:组合了OpenAI的VLM、Figure 01的机器人操控小模型——这两个模型的权重是不一样的
其次,Figure 02的Helix全程就一个大模型,非简单组合VLM和动作专家expert,而是一个整体的VLA,两个系统共享一组神经网络权重
且过程中不再需要将自然语言转化成简单指令「根据输入直接得到输出action(没有Figure 01中的机器人操控小模型)」,通过自然语言就可得到最终的 Action- 在是否微调上,不用针对特定的任务进行微调
现有的 VLA 系统通常需要专门的微调来优化不同高级行为的性能,Helix不用
Existing VLA systems often require specialized fine-tuning or dedicated action heads to optimize performance across different high-level behaviors
这种解耦架构使得每个系统都能在其最优的时间尺度上运行。S2 可以“慢思考”高层次的目标,而 S1 则能“快思考”以实时执行和调整动作。例如,在协作行为期间,S1 能够迅速适应伙伴机器人不断变化的动作,同时保持 S2 的语义目标
且Helix 直接输出高维动作空间的连续控制,避免了先前 VLA 方法中——比如RT-2、OpenVLA使用的相对复杂的离散化动作tokenization方案,这些方案在低维控制设置「例如二指夹爪,即binarized parallel grippers」中已取得一些成功,但在高维人形控制中面临扩展挑战
1.2 数据和训练细节
1.2.1 500 小时的高质量视频片段来监督微调Helix中的VLM模块
我们收集了高质量的多机器人、多操作员数据集,其中包含各种远程操作行为,总共约 500 小时「相当于使用约 500 小时的高质量监督数据来训练 Helix,这个数据量还是比较小的,差不多就是模仿学习示教数据集的规模,而一般的VLA预训练数据集一般1万小时起步,比如π0——其在超过10,000小时的机器人数据上进行预训练」
为了生成自然语言条件下的训练对,他们使用了一个自动标注(auto-labeling)的视觉语言模型VLM来生成事后指令「即To generate natural language-conditioned training pairs, we use an auto-labeling VLM to generate hindsight instructions」
为方便大家理解,我举一个原技术报告中没有的例子
- 首先,让该 VLM——比如可能比较强大的GPT4o,来处理来自机器人机载摄像头的分段视频片段「The VLM processes segmented video clips from the onboard robot cameras」,比如片段A、片段B、片段C、片段D..
且让该VLM把这一系列视频片段中看到的动作步骤用自然语言标注出来,从而分别对应动作步骤a1 a2 a3、b1 b2 b3、c、d.. - 然后,以“为了得到这段视频中看到的动作,您会给机器人下达什么指令?”作为提示「即prompted with: "What instruction would you have given the robot to get the action seen in this video?"」,让Helix预测对应的动作步骤a1' a2' a3'、b1' b2' b3'、c'、d'
- 最后,对比
Helix预测对应的动作步骤a1' a2' a3'、b1' b2' b3'、c'、d'
与VLM标注的动作步骤a1 a2 a3、b1 b2 b3、c、d..
建loss
当然了,训练期间处理的所有物品均不包含在训练完成后的效果评估中,以防止污染
1.2.2 训练与推理
Helix 经过完全端到端的训练
- 从原始像素和文本命令映射到具有标准回归损失的连续动作。梯度通过用于调节 S1 行为的潜在通信向量:从 S1 反向传播到 S2,从而允许对两个组件进行联合优化
- Helix 不需要针对特定任务进行调整;它保持单个训练阶段和单个神经网络权重集,无需单独的动作头或针对不同任务的微调阶段
it maintains a single training stage and single set of neural network weights without separate action heads or per-task fine-tuning stages - 在训练过程中,在 S1 和 S2 输入之间添加时间偏移,此偏移经过校准以匹配 S1 和 S2 部署的推理延迟之间的差距,确保部署期间的实时控制要求准确反映在训练中
优化的流式推理
- Helix 的训练设计支持在 Figure 机器人上高效地并行部署模型,每个机器人都配备了双低功耗嵌入式 GPU
推理管道分为 S2(高级潜在规划)和 S1(低级控制)模型,每个模型都在专用 GPU 上运行
S2 作为异步后台进程运行,使用最新的观察结果(机载摄像头和机器人状态)和自然语言命令。它持续更新一个共享内存潜在向量——即下图中间的那个Latent Vector,该向量编码了高层次的行为意图
It continuously updates a shared memory latent vector that encodes the high-level behavioral intent.S1 作为单独的实时过程执行,保持整个上身动作流畅所需的关键 200Hz 控制环路。它采用最新的观察结果和最新的 S2 潜在向量
It takes both the latest observation and the most recent S2 latent vector - S2 和 S1 推理之间固有的速度差异,自然导致 S1 在机器人观测上以更高的时间分辨率运行,从而为反应式控制创建了一个更紧密的反馈回路
The inherent speed difference between S2 and S1 inference naturally results in S1 operating with higher temporal resolution on robot observations, creating a tighter feedback loop for reactive control.
这种部署策略刻意反映了训练中引入的时间偏移,从而最大限度地减少了训练-推理分布差距。异步执行模型允许两个进程以最佳频率运行,使得能够以最快的单任务模仿学习策略的速度运行 Helix
1.3 Helix升级版:对视觉运动策略系统1的架构改进及加速推理
1.3.1 视觉表现:增加3D空间感知和多尺度视觉表示
后来在25年2.26日,Helix宣告推出了升级版
相比之前的系统 1依赖于单目视觉输入,而新系统 1 现在利用立体视觉骨干网络和多尺度特征提取网络来捕捉丰富的空间层次结构「our new System 1 now leverages a stereo vision backbone coupled with a multiscale feature extraction network to capture rich spatial hierarchies」
- 简言之,系统1不再独立处理每个摄像头的图像特征token,而是将两个摄像头的特征合并到多尺度立体网络中,然后再进行tokenized处理,从而保持输入到交叉注意力transformer的视觉token总数不变,并避免计算开销
Rather than feeding image feature tokens from each camera independently, features from both cameras are merged in a multiscale stereo network before being tokenized, keeping the overall number of visual tokens fed to our cross-attention transformer constant and avoiding computational overhead. - 多尺度特征提取网络能够同时捕捉到细节和更广泛的上下文信息,这有助于提高操作的准确性和可靠性
1.3.2 多个机器人之间的策略迁移
此外,为了解决在多个机器人上部署统一策略时遇到的挑战,以及如何通过在线自我校准来实现跨机器人策略迁移——例如由于机器人硬件差异导致的观察和动作空间的分布偏移,传统的手动校准方法不适用于大规模机器人群体
- Deploying a single policy on many robots requires addressing distribution shifts in the observation and action spaces due to small individual robot hardware variations. These include sensor calibration differences (affecting input observations) and joint response characteristics (affecting action execution), which can impact policy performance if not properly compensated for.
- Especially with a high dimensional whole-upper-body action space, traditional manual robot calibration doesn't scale over a fleet of robots.
Figure训练了一个视觉自体感觉模型(visual proprioception model),这个模型可以让每个机器人通过自身的视觉输入来自我校准,估算出机械臂末端(即抓取物体的部分)的精确位置和姿态——Instead, we train a visual proprioception model to estimate the 6D poses of end effectors entirely from each robot's onboard visual input
并且这种自我校准是在线进行的,也就是说机器人可以在工作的同时进行校准,这样就能最大程度地减少因校准而需要停止工作的时间——This online "self-calibration" allows strong cross-robot policy transfer with minimal downtime
顺便一提,训练过程中,Figure排除了那些较慢的、遗漏的或失败的案例,不过特意保留了包含纠正行为的案例(非遥控操作员导致,环境因素下自然产生的随机行为)
1.3.2 推理时间操作加速
为了接近并最终超越人类的操控速度,他们还采用了一种被称为“运动模式”的test-time加速技术,该技术可以产生比演示者更快的学习行为:
- S1 策略本身会以每秒200次的频率输出一系列动作,这些动作被称为动作块action chunks
Our S1 policies output action "chunks", representing a series of robot actions at 200hz - 为了加速这些动作块的执行,他们采用了一种插值方法「插值是一种数学方法,可以在原有数据点之间生成新的数据点」,他们将原本的动作块通过插值缩短为0.8T毫秒的动作块
具体而言,即将 [T x action_dim] 的动作块(代表 T 毫秒轨迹)线性重新采样为更短的 [0.8 * T x action_dim] 轨迹,然后仍然以每秒200次的频率执行这些缩短后的动作块
by linearly re-sampling an action chunk of [T x action_dim]—representing an T-millisecond trajectory—to a shorter [0.8 * T x action_dim] trajectory, then executing the shorter chunk at the original 200 Hz control rate.
其实有点类似线性插值编码的意思「详见此文《大模型长度扩展综述:从直接外推ALiBi、插值PI、NTK-aware插值(对此介绍最详)、YaRN到S2-Attention》的2.3.2 什么是位置内插Positional Interpolation——Meta于23年6月底提出」
总之,最终可以实现 20% 的 test-time加速,而无需对训练程序进行任何修改
第二部分 清华HiRT:通过分层Transformer架构增强机器人控制
有意思的是,Helix发布之后,清华大学交叉信息研究院IIIS的一博士生Yanjiang Guo在X上表示,这跟他们24年9月份发布的一篇论文HiRT——其使VLM以低频运行以捕获暂时不变的特征 同时通过高频的视觉策略实现实时交互,所用的思路很相似
- 于是我去特意看了下这篇论文,原来是这篇:《HiRT: Enhancing Robotic Control with Hierarchical Robot Transformers》
- 然后我一看这个HiRT很眼熟啊,原来我24年年底在解读预测与动作扩散器PAD的时候「详见此文《Diffusion Transformer(DiT)——将扩散过程中的U-Net换成ViT:近频繁用于视频生成与机器人动作预测(含清华PAD详解)》的第二部分 DiT在机器人动作预测中的典型应用:清华RDT、CogACT、PAD」,便知道了有HiRT这个工作
但当时解读完PAD之后,便没继续去解读HiRT这个工作了(实在是每天事情太多了),也是巧啊,^_^
既然HiRT再次进入了我和一些朋友的视线,那本文第二部分就来解读下这个HiRT吧
2.1 现有问题与相关工作
2.1.1 VLA现存的一些问题:控制频率不够快
众所周知,在预训练的VLMs基础上,现有的VLA模型[1,2]提出在大量机器人数据上对VLMs进行微调,这使得能够直接进行端到端的机器人控制,同时享受VLM预训练的益处
然尽管具有数十亿参数的VLM后端带来了卓越的泛化优势,但它也伴随着巨大的计算负担。在部署过程中,这导致了控制推理速度较低和高延迟。这可能会减慢机器人运动速度并延长任务完成时间,从而在处理动态任务(如在杂乱环境中操纵快速移动的物体)时影响性能和安全性[7,8]
总之,大型VLA模型的控制频率限制仍然是将这些先进模型部署到实际机器人上的一个重大障碍
到人类认知双重过程理论[9]的启发,作者提出了HiRT,一种用于VLA模型的分层交互模仿学习框架
双重过程理论认为存在两个系统,在人类认知中:系统1负责快速、直觉的反应,而系统2负责缓慢、分析性的计划
- 我用不同深浅的紫色来表示系统1还是系统2,轻紫代表轻快的系统1、重紫代表较重的系统2)
- 这么看的话,个人认为,figure 02在研发HELIX之前或过程中,极大可能关注到了清华IIIS的这个HiRT工作
目前的VLA模型可以被视为仅依赖于系统2,使用计算成本高的VLM进行推理和动作生成。然而,他们认为VLA模型可以通过结合这些系统受益
- HiRT利用系统2提取高层次、缓慢变化的信息来指导轻量级的系统1模块
这个系统1由一个较小的模型实现,可以快速响应环境变化。尽管轻量化,HiRT中的系统1可以利用系统2的指导来保持与原始VLM相当的性能,同时获得显著的速度提升
他们将此方法称为HiRT,这是一种分层交互模仿学习框架,旨在能够快速执行多种指令、场景和任务 - 总之,HiRT由两个主要组件组成:理解模块和执行模块
理解模块InstructBLIP (7B) [5],相当于Helix的系统2,是一个预训练的大型视觉-语言模型,能够将视觉信息和语言指令转换为潜在特征,这些特征包含了常识知识,用于长期场景理解,包括任务规划和错误校正
此外,在训练过程中,他们在整个 InstructBLIP 模型中插入了LoRA 层:包括 ViT、Qformer 和 LLaMA
执行模块,相当于Helix的系统1,是一个紧凑的基于视觉的动作策略,负责处理短期场景认知,且利用视觉-语言模型的先前观察和潜在特征
相当于为了增强对全局指令和视觉数据的关注,他们在执行模块中引入了新的条件层
「和上面的Helix一样,系统1会融合最新的观察结果和最新的 S2 潜在向量」
The execution module is a compact visual-based action policy that processes short-term scene cognition, utilizing prior observations andlatent features from the visual-language model. To enhance focus on global instruction and visualdata, we incorporate novel conditioning layers within the execution module.
在实现过程中,他们使用了预训练的EfficientNet-B3 [59] 和 ViT-B/16 [56] 作为低级策略的视觉编码器,这些模型已经在大规模视觉数据上进行了预训练——参数大小为150M
最终,HiRT利用较慢的视觉-语言模型指导快速的低级策略,从而在准静态和动态任务中实现高频率的高效性能。此外,他们通过调整模块的异步频率来进一步优化速度
2.1.2 相关工作
相关的工作包括如下
一方面,基于语言的机器人操作模仿学习
通过模仿学习将语言与机器人动作结合的研究[10,11,12]具有悠久的历史
- 其中语言通常被用作目标指定[13-Rt-1,14-Open-world object manipulation using pre-trained vision language models,15-Bc-z,16],或规划的中间表示[17-Camel,18-Liv,19-R3m]
- 一些先前的工作采用强化学习技术[20-earning language-conditioned robotbehavior from offline data and crowd-sourced annotation,21,22,23,24]来解决某些类型的下游任务
- 为了应对这些强化学习方法在泛化能力上的不足,最近的研究集中于为高层次任务规划提示大型语言模型(LLMs)[17,25,26,27-Do as i can, not as i say,28-gent instructs large languagemodels to be general zero-shot reasoner]
以及在专家机器人数据集上微调视觉语言模型(VLMs)以进行低层次机器人控制[20-earning language-conditioned robotbehavior from offline data and crowd-sourced annotation,13-Rt-1,24-Pixl2r,29,30,31]
与以往探索如何泛化到新任务的工作不同,HiRT专注于通过更高效和有效地利用VLMs中的广泛视觉语言知识来解决低层次操作任务
二方面,用于机器人学的视觉语言模型
将预训练的视觉语言模型(VLM)[3-Blip-2,4-Image as a foreign language,5-Instructblip,6-Palm-e,32-Prompt a robot to walk with large language models]应用于各种具身场景是近期研究的重点领域
大多数先前的工作集中于利用VLM进行高层次的规划或推理[27-Do as i can, not as i say,33-Socratic models,34-Lm-nav: Robotic navigation with large pre-trained modelsof language, vision, and action,35-Inner monologue: Embodied reasoning through planning with languagemodels,36,37-Llm-planner: Few-shotgrounded planning for embodied agents with large language model,38-Llm+ p: Empoweringlarge language models with optimal planning proficienc]
- 为了有效地将视觉或语言信息与物理环境连接起来,具身模型需要在具身数据[1-Rt-2]上对预训练的VLM进行微调,包括包含
任务级规划的语言形式的视频数据[39-Embodiedgpt: Vision-language pre-training via embodied chain of thought,17-Camel: Communicativeagents for” mind” exploration of large scale language model societ,27-Do as i can, not as i say]
简单文本描述[40-Unleash-ing large-scale video generative pre-training for visual robot manipulation,41-Affordances from human videos as aversatile representation for robotics]
低层次操作[42-Rt-h: Action hierarchies using language,43-Robotic task generalization via hindsight trajectory sketches,44-Vint: Afoundation model for visual navigatio]——称为视觉-语言-动作模型 - 然而,部署如此大型的VLA模型通常会导致推理速度缓慢[45-Toward general-purpose robots via foundation models: A survey and meta-analysis],这使得具身模型不适用于需要精确操作或快速执行的场景
- HiRT则着重于通过使用一种新颖的策略模型来解决这一限制,该模型可以有效地保留较大模型的强大视觉语言能力
三方面,分层动作规划
分层动作规划 [17-Camel,46-Video language planning,27-Do as i can, not as i say,47-Agile catching with whole-body mpc andblackbox policy learning,48-Doremi: Grounding language model bydetecting and recovering from plan-execution misalignment] 涉及将任务分解为多个可以直接执行的简单任务,从而能够制定策略来处理更复杂的、长期的任务
- 先前的研究已展示了将提示输入到大型语言模型(LLMs)中作为通向低级动作的桥梁的作用
具体来说,这可以通过
任务级规划 [49-Text2motion: From natural languageinstructions to feasible plans. Autonomous Robots,39-Embodiedgpt,46-Video language plannin]
代码执行 [50-Progprompt,51-Codeas policies: Language model programs for embodied control,52-Gensim:Generating robotic simulation tasks via large language model]
或其他规划表示(如三维场景图 [53-Sayplan]、可供性函数 [54-李飞飞团队的Voxposer] 和用于移动的动作模式 [55-Saytap])来实现
然而,这些方法通常与物理体现无关,阻碍了高层模型直接与物理环境交互 - 与这些方法相反,HiRT将视觉语言模型(VLMs)与特定机器人的物理形式以端到端的方式结合,使其能够通过连续的中间表示学习分层任务规划
2.2 HiRT的完整方法论
HiRT,这是一种支持多任务学习和快速推理的分层策略架构。其核心思想是利用预训练的 VLM(视觉语言模型)从多模态输入中提取丰富的语义表示,然后将这些表示应用于轻量级的动作策略,这些策略能够异步且独立于 VLM 运行——说白了,就是架构分层,VLM提取丰富的语义信息,然后通过潜在向量输送给轻量级的动作系统中
- 具体来说,HiRT 探索了一种流行的视觉语言模型 InstructBLIP [5],将其开源模型用作骨干。目标是通过一个利用历史观测和由 VLM 编码的潜变量的潜变量条件化策略来输出低级动作
We aim to output low-levelactions with a latent-conditioned policy that leverages historical observations and latent encoded by VLM
相当于和Helix 差不多 - 这个小规模的策略应能够独立于大型模型以更高频率运行,这需要一个由轻量级视觉编码器组成的紧凑架构
遵循 BC-Z [15] 和 RT-1 [13],他们设计了一种作为低级策略的潜变量条件模型「we design a latent-conditioned model as the lower-level policy」——说白了,相当于就是Helix中的系统2,能够以高频率独立执行有限数量任务的行为克隆
2.2.0 问题表述和方法概述
语言条件下的操作问题可以被视为由马尔可夫决策过程建模的环境中的决策序列:(S, A, R, P, ρ0),其中
- S, A, ρ0 分别表示状态空间、动作空间和初始状态分布
表示奖励函数,指示是否完成了期望的状态或任务
表示环境的概率前向动态函数
具体来说,给定一个指定某项任务的自由形式语言指令,控制策略接收一个视觉观测
,通常由一系列图像组成
然后,从由控制策略建模的动作分布中采样一个动作
,该动作结合了末端执行器的相对位置和姿态
对于HiRT,策略由视觉语言模型中的
和快速潜变量条件策略中的
,进行参数化「For HiRT, the policy π(a|o, l) is parameterized by Fθ from the vision language model and Sϕ fromthe swift latent-conditioned policy」
- 在轨迹中的某些时间步
,VLM 主干接收通过异步采样获得的视觉观测
和自然语言指令
,并输出融合的嵌入:
- 同时,在每个时间步,潜变量条件模型利用最近的视觉观测上下文和最新的潜变量预测动作:
相当于这个快速视觉反应系统,它在做动作策略输出时,会结合最新的观察结果和来自VLM的潜变量,做预测
如下图所示「指令通过“视觉语言模型与采样的视觉观测”转换为连续的潜在变量,并被缓存到潜在缓冲区中。在推理的每一步,预训练的视觉编码器将根据最新的潜在变量对视觉观测进行编码,然后将减少的视觉语言token通过条件化的动作头解码为低级动作」
2.2.1 使用视觉-语言模型编码多模态信息
在 HiRT 中,InstructBLIP [5] 使用视觉信号(以单张图像的形式)对指令进行编码。InstructBLIP 包括一个预训练的视觉编码器,一个大型语言模型(LLM),可学习的查询token,以及一个 Q-Former [3],更多详见此文《AI绘画原理解析:从CLIP、BLIP到DALLE、DALLE 2、DALLE 3、Stable Diffusion(含ControlNet详解)》的「1.2.3 InstructBLIP」
- 在每个执行时间步
,视觉观察(来自手腕或第三视角相机)由一个视觉变换器(ViT)[56] 编码为一系列视觉token
其中N 表示token长度,d 表示token宽度 - 随后,
与指令token
、可学习查询token
拼接,并通过Q-Former(一个轻量级的transformer)编码为融合了语义信息的图像表示:
- 最后,这些视觉查询特征被用作预训练LLM(LLaMA [57])的提示
在第层将嵌入设置为
,第
层的输出计算如下
其中 表示LLM 中transformer层的深度,MSA 代表多头注意力模块,MLP 表示多层感知机,LN 表示LayerNorm
当然了,咱们并不打算从最终层输出生成语言token,而是希望利用信息丰富的语言嵌入来指导动作生成
故采用一个MAP 模块[58],即单层注意力块,来聚合这些表示:,这将用于下一节中的动作策略的条件设定
2.2.2 潜变量条件策略
遵循BC-Z [15] 和RT-1 [13] 的做法,这些方法使用指令和视频作为任务嵌入,他们通过轻量级的视觉编码器(例如,EfficientNet [59] 和Vision Transformer [4])将图像上下文编码为视觉token
然后,使用一个MAP 块将所有token聚合到连续的动作空间中
且为了进一步整合由VLM 编码的具有信息量的任务嵌入,在视觉编码器或动作头上采用以下条件策略
- FiLM 条件
对于基于卷积网络(CNN)的视觉编码器,每一隐藏层都以VLM 潜在变量为条件
在EfficientNet 中,使用FiLM 层来计算条件特征:
其中表示隐藏特征,Wγ, Wβ 是FiLM 层中的可学习参数
- 在每个Transformer 的自注意力层中,插入一个额外的交叉注意力层用于条件处理:
其中表示一个可学习的参数,将
投影到隐藏token H 的空间
- 使用带前缀调节的条件
为了更好地使VLM 调节低级动作,利用VLM 潜在变量作为动作头中MAP 块的前缀提示
具体来说,动作通过计算得出
2.3 训练与推断策略
在推理阶段,可以通过调整VLM 的执行频率来加速模型
- 具体而言,在初始时间步t = 0,VLM 编码包含视觉上下文的多模态信息并将其存储在缓存中
- 在随后的步骤中,潜变量条件策略使用缓存中最新的潜变量快速输出动作,同时VLM 与潜变量条件策略并行异步运行。这种异步机制使得策略能够以接近潜变量条件策略的速度运行,避免因VLM 较慢的推理速度导致的延迟
- 然而,异步操作可能会导致策略使用反映几步之前场景和指令信息的潜变量,这与训练中使用的信号不一致
因此,在训练阶段,HiRT 随机从过去的观察上下文中选择一个步骤,并使用相应的第三视角图像作为VLM 的视觉输入。该技术可以增强策略对时间不一致潜变量的鲁棒性
在训练过程中,VLM 部分通过LoRA [60] 进行微调,而网络的其余部分则完全微调。具体来说,利用最大似然模仿学习目标
- 末端执行器的期望相对位置
(或连续关节动作)通过回归损失(例如MSE 损失)进行优化
- 末端执行器的离散状态
通过二元交叉熵损失进行优化:
其中,
表示在采样的小批量B 中末端执行器的相对位置和状态的示例
// 待更