前言
过去一周,我花了很大的心思、力气,把deepseek的GRPO、MLA算法的代码解析通透,比如GRPO与PPO的详细对比,再比如MLA中,图片 公式 代码的一一对应
2.20日晚,无意中刷到figure 02发布Helix的一个演示视频,再次大为震撼,当时在朋友圈感叹到
毕竟对于工厂特定场景的干活,目前模仿学习和RL落地相对更好(当然,工厂很快也会迎来VLA的落地),但对于家庭相对复杂多变的场景下,VLA的泛化能力确实更强
故本文就来专门解析下figure 02发布的通用VLA:Helix
Figure 02发布通用人形机器人控制的VLA:Helix
- 整个上身控制:Helix 是第一款对整个人形上身(包括手腕、躯干、头部和各个手指)进行高速率连续控制的 VLA
- 多机器人协作:Helix 是第一个同时在两个机器人上运行的 VLA,使它们能够使用从未见过的物品解决共享的、远程操作任务
- 拿起任何东西:配备了 Helix 的 Figure 机器人现在只需按照自然语言提示,就能拿起几乎任何小型家居物品,包括数千种它们从未遇到过的物品
- 一个神经网络:与之前的方法不同,Helix 使用一组神经网络权重来学习所有行为
One neural network: Unlike prior approaches, Helix uses a single set of neural network weights to learn all behaviors
比如挑选和放置物品、使用抽屉和冰箱以及跨机器人交互,而无需任何针对特定任务的微调
换言之,即Helix 仅使用一个统一的模型就实现了不同任务的强大性能,仅使用一组神经网络权重:系统 2 为 7B,系统 1 为 80M
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)
要知道, 此文《π0——用于通用机器人控制的VLA模型:一套框架控制7种机械臂(基于PaliGemma和流匹配的3B模型)》中介绍的π0,是组合的预训练模型与动作专家模型,两个模型的权重是不一样的
总之,具身智能让我对大模型的应用落地 充满极大的热情与信心
- 自从figure 01之前发布的与人类自然流畅的对话且听人类指令整理桌面之后「详见此文的第六部分 Figure 01:VLM做顶层规划 + 操控小模型预测动作」,figure在我眼中便是机器人版OpenAI的存在,它的每一次更新迭代,我都极为关注,代表着具身机器人的最前沿之一
- 创业团队搞大模型纯软应用 拼不过大厂,但具身的落地,现在有不少大中小创业公司的机会与空间(场景太多 大厂搞不过来)
希望与同行/同仁多多合作
第一部分 通用人形机器人控制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更快
比如,对于π0而言,他们也就做到50Hz的频率控制机器人进行如折叠衣物
包括更早之前的RT-2的执行速度更有限,更没法做到200hz的操作速度- 在模型架构上,一个大模型,不用额外且独立的动作专家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
我们收集了高质量的多机器人、多操作员数据集,其中包含各种远程操作行为,总共约 500 小时「相当于使用约 500 小时的高质量监督数据来训练 Helix,这个数据量还是比较小的,差不多就是模仿学习示教数据集的规模,而一般的VLA预训练数据集一般1万小时起步,比如π0——其在超过10,000小时的机器人数据上进行预训练」
为了生成自然语言条件训练对,他们使用自动标记(auto-labeling) VLM 来生成事后指令
VLM 处理来自机载机器人摄像头的分段视频片段,并提示:“你会给机器人什么指令来执行此视频中看到的动作?”
当然了,训练期间处理的所有物品均不包含在训练完成后的效果评估中,以防止污染
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
// 待更