91% 是六个单动作各跑 10 次,串三个动作就掉到 70%:苹果这份人形论文,该读的是分母
91% 与仿真里的 91% 齐平,这是零样本迁移的漂亮结果。但同一套系统串三个动作是 70%,失败原因是「钻完桌子朝向不对,箱子不在视野里」——这一句比成功率更值得记。
- 事实:苹果研究团队 2026-11-04 在 arXiv 提交《Perceptive Humanoid Motion from Simulation》(arXiv:2611.06908),系统名 HALO(Humanoid Autonomy, Learned in simulation, running Onboard)。载体是一台市售宇树 G1,背上绑 Mac mini M4 Pro 跑上层,G1 自带 Jetson Orin NX 跑底层,全部在机上、不联网也能动。
- 数据全合成的:用 INFINIGEN 程序化生成 1200 个房间,1178 个跑通全流程,1000 个用于训练、178 个留作仿真评测;房间 3.5–9.5 米、每间 20–80 件家具。最终合成 162,698 个片段、约 300 小时配对好的视频、语言与全身轨迹。算力为 250 块 H100 跑 48 小时。
- 成绩要连分母读:6 个从没建过图、也没进过训练集的真实房间,6 类单任务各跑 10 次共 360 次,平均成功率 91%,与仿真里的 91% 齐平。分项:侧身过门 93%、走向指定物体 92%、爬行钻桌 90%、推箱 88%、坐下 85%、弯膝钻桌 100%。
- 串联就露了:1 个真实环境、3 个序列各 10 次,平均只有 70%——过门后走向目标 100%,钻桌后坐下 60%,钻桌后走向目标并推箱 50%。论文自己给的失败原因很朴素:钻完桌子朝向不对,箱子已经不在视野里。
- 消融才是钱花在哪的答案:训练场景 1→10→100→1000 个,成功率 43%→64%→81%→84%;到 1000 个只剩 3 个百分点的边际收益。而拿掉「实时分块」掉到 24%,把流匹配解码器换成回归解码器掉到 19%,去掉深度输入只剩本体感知掉到 74%。
- 判断:这篇论文真正的方法论贡献不是 91%,是「接缝在训练期解决」。 把轨迹分块切换时的抖动,从推理时打补丁变成网络的固有属性——这个套路可以迁移到任何分块策略的 VLA,比多造 900 个房间值钱得多。
这条消息在中文圈传播时,留下来的数字通常只有一个:91%。
但 91% 这个数,离开分母就没法用。它是在 6 个房间、6 类单任务、每类跑 10 次、共 360 次试验里得到的平均成功率。任务边界很清楚:走向指定物体、坐下、侧身过门、弯膝钻桌、爬行钻桌、推箱。
换句话说,这是六个单动作的成绩,不是六个任务的成绩。
把同样的系统拿去串三个动作,成绩是 70%。拆开来看更有意思:过门后走向目标 100%,说明「先过一个门、再走向某个物体」这种空间连续的组合没问题;但钻桌后坐下 60%,钻桌后走向目标并推箱 50%。
论文给的失败原因不是控制不稳,是视角:钻完桌子之后机身朝向不对,箱子已经不在相机视野里,后面两步就接不上。
也正因为如此,91% 不能当成「能在家里用」的证据,70% 也不能当成「不能用」的判决。它们回答的是两个不同的问题:一个是「这个动作会不会做」,一个是「做完上一个,还记不记得下一个」。
HALO 的自主栈是三层,频率差得很开。
| 层 | 频率 | 干什么 | 输出 |
|---|---|---|---|
| 编排器 | 约每 2 秒一次 | 现成视觉语言模型,把一句话拆成子任务,指定技能与作用对象 | 子任务序列 |
| 运动生成器 | 3Hz | 冻结的视觉编码器 + DiT 解码器,把第一人称观测映射成全身轨迹 | 5 秒 150 帧、29 个关节角 + 骨盆位姿 |
| 跟踪器 | 50Hz | 强化学习训练,结合参考动作、机载深度、关节状态与 IMU | 关节位置目标,交给 PD 控制器 |
三层频率相差 25 倍,意味着中间一定有「跨频率对齐」的问题。3Hz 的轨迹每秒重算三次,但跟踪器 50Hz 在跑——轨迹在换的时候,跟踪器正在跟的是哪一条?
论文的处理方式是在训练阶段就把前 15 帧(0.5 秒)当作干净的 token 固定住,只让模型补后面 135 帧。这样切换时的连续性就变成了网络的固有属性,而不是推理时打的补丁。
这个设计的价值,在消融里体现得最清楚:拿掉「实时分块」,成功率从 84% 掉到 24%。
判断:一个机制拿掉就掉 60 个百分点,说明它不是锦上添花,是整套系统能不能跑的前提。这也是这篇论文最值得抄的一段——它把一个推理时的工程补丁,前置成了训练目标的一部分。任何用分块策略做实时控制的团队,都可以试这一招。
| 改动 | 成功率 | 相对基准 |
|---|---|---|
| 训练场景 1 个 | 43% | — |
| 训练场景 10 个 | 64% | +21 |
| 训练场景 100 个 | 81% | +38 |
| 训练场景 1000 个 | 84% | +41 |
| 拿掉实时分块机制 | 24% | −60 |
| 流匹配解码器换回归解码器 | 19% | −65 |
| 去掉深度输入,只留本体感知 | 74% | −10 |
这张表里最该看的是第一段:从 1 个房间到 10 个,加 21 个百分点;从 100 到 1000,只加 3 个点。
判断:程序化生成的场景数,在 100 个左右就进入了收益递减区。这条曲线对做仿真数据的团队是有直接指导意义的——如果你的瓶颈是场景多样性,把 100 个做到 1000 个,可能只换来 3 个点;但如果你的瓶颈是时序一致性,改一个解码器能换来 65 个点。这两件事的性价比差 20 倍以上,而大多数团队会把钱花在前者。
还有一行容易被跳过:去掉深度输入,从 84% 掉到 74%。十个百分点,说明在这个任务集里,几何感知仍然是刚需,纯本体感知不够。这对做低成本方案的人是一个提醒:省掉深度相机,省下的可能不止是硬件成本。
论文开篇把痛点摆得很直接:遥操作或穿戴动捕,「至少需要一小时人类时间才能产出一小时数据」。
HALO 的路线反过来:250 块 H100 跑 48 小时,产出约 300 小时配对数据。
250 × 48 = 12,000 GPU·小时,换 300 小时数据。比值是 40 : 1。
这也是为什么苹果强调「研究系统、不对外销售、没有时间表」。这套东西的价值不在产品化,在证明一件方法论:如果一个任务的动作-场景配对可以被程序化生成,那么它就不需要人示范。
边界也很清楚。需要精细力控的装配、需要真实材料形变的抓取、需要人机混行的安全场景——这三类没法靠「生成 1000 个房间」解决,因为它们的难点不在场景多样性,在接触物理。这也是 70% 那个数字出现的位置:不是动作不会做,是做完之后世界变了、而它没跟上。
判断:判断一类任务能不能被合称数据覆盖,只需要问一句——它的失败是「没见过这个房间」,还是「没见过这种接触」。前者可以生成,后者只能去现场。