一个人形技能到底需要多少数据:机器人样本效率
从模仿学习到预训练策略,再到第一人称人类视频,诚实地拆解一个人形机器人技能到底需要多少条演示数据,以及是什么在推动这个区间上下移动。
一个 diffusion policy 大约用一百次演示就能学会把面包从烤面包机里夹出来。换一个厨房、换一台烤面包机、把清晨的光换成午后,同一个模型、同样这一百次演示,就会失手。技能本身没有任何变化,变的是你要求这个技能去应对的那一小块世界。
去问十位机器人工程师,一个人形技能到底需要多少数据,你会得到跨越三个数量级的答案:五十条遥操作轨迹、几个小时、一万个小时。它们都站得住脚,而这恰恰是问题所在。「每个技能需要多少条演示」是一个带着隐藏分母的数字,在你把分母固定下来之前,这个数字几乎没有意义。
本文想给出的是一个诚实的区间,而不是单一的数字,并点明是什么让你在这个区间里上下移动:任务的复杂度、你想覆盖多少环境变化,以及你是从一个通用模型出发,还是从零开始。一句话概括:固定场景里的技能很便宜,而要在开放世界里依然可靠的同一个技能,则完全不便宜。
单位的问题
一条演示就是一段轨迹:一串观测和动作,把某个任务完整地做成一次。可是「把杯子拿起来」这几个字,把巨大的难度差异压缩了进去。在一个固定的姿态、一张固定的桌子、一种固定的光线下拿起同一个杯子,现代的模仿学习管线所需的数据少得惊人;而要拿起任意一个杯子、在任意地方拿起,你学的就不再是一个技能,而是一个分布。
所以真正有用的问题不是一个技能需要多少条演示,而是它需要多少条演示,才能在一组目标条件范围内达到某个目标可靠度。接触丰富的任务(剥、插、叠)比在自由空间里伸手要贵;公差很紧的任务比宽容的任务要贵。而你每增加一个变化的维度,新物体、新背景、新光线、新的初始状态,所需的演示都会被成倍放大,而不是简单相加。
问题从来不是一个技能需要多少条演示,而是你希望这个技能能在多大一块世界里存活下来。
单任务模仿到底要花多少
先看最便宜的情形:一个任务、一个固定场景、从零训练。在这里,文献出奇地一致。ALOHA 平台上的 Action Chunking Transformer 用大约五十条演示就能学会接触丰富的双臂任务;Diffusion Policy 报告称,单任务的可靠表现大致落在 100-200 条演示的区间,简单动作有时更少;Google 的 RT-1 收集了大约 130,000 段轨迹、覆盖 700 多个任务,即便在这种车队规模下,平均每个任务也不过两百条上下。
于是有了第一个诚实的锚点:对于一个范围界定良好、条件固定的操作技能,预算是几十到一两百条演示,也就是几个小时的遥操作。这也是最常被断章取义引用的那个数字,因为它描述的是这个问题最容易的版本,并悄悄假设了测试集长得和训练集一模一样。
预训练的折扣
上面这些数字都假设你把每个技能孤立地训练。如今认真做事的人几乎没有谁还这么干。主流配方是:先在一个大而多样的语料上预训练一个通用策略,再用少量目标技能的演示去微调。预训练把之后每一个新技能的成本都摊薄了。
这些语料如今规模可观。Open X-Embodiment 汇聚了跨 22 种机器人本体、数百种技能的一百多万条真实轨迹;DROID 又补上了在真实环境中、跨 564 个场景采集的约 76,000 条轨迹。Physical Intelligence 的 pi-zero 流模型和 NVIDIA 的 GR00T N1 都是在这类跨本体混合数据上预训练的视觉-语言-动作模型,两者都被设计成能用远少于从头训练的数据去适配一个新任务。Toyota Research Institute 的 Large Behavior Model 工作把这个机制讲得很直白:在数百个任务上联合训练一张网络,会提升每个任务的表现,并削减添加下一个任务所需的演示数量。
| 数据集 | 规模 | 构成 | 监督来源 |
|---|---|---|---|
| Open X-Embodiment | 超过 1M 条轨迹 | 22 种本体,数百种技能 | 真实机器人,聚合 |
| DROID | 约 76k 条轨迹,约 350 小时 | 564 个场景,86 个任务 | 真实机器人,真实环境 |
| RH20T | 超过 110k 段序列 | 147 个接触丰富任务 | 真实机器人,多模态 |
| Ego4D | 约 3,670 小时视频 | 日常第一人称活动 | 人类,无动作标签 |
| Ego-Exo4D | 超过 1,200 小时视频 | 技能任务,第一加第三人称 | 人类,同步视角 |
这个折扣是真实的,却不是免费的。微调仍然需要目标本体和目标环境里的演示;你的机器人和场景离预训练分布越远,需要的就越多。一只人形手不是一个平行夹爪,很多最廉价的现成机器人数据没法干净地迁移过去。
为什么人类视频改变了这道算术题
遥操作机器人数据有一道硬天花板:每一条演示都需要一台机器人和一名操作员,所以语料只能一次一个「机械臂小时」地增长。人类演示不受此限。Ego4D 汇集了大约 3,670 小时的第一人称日常活动;Ego-Exo4D 又加入了 1,200 多小时、从同步的第一人称与第三人称视角拍摄的技能任务。这是双手在做真实工作的视频,其规模是任何遥操作车队短期内都追不上的。
难点在于本体差异。人类视频携带了真正要紧的先验:一个任务如何分解、接触发生在哪里、物体如何运动,但它没有机器人关节指令,往往也没有可靠的 3D。把它转化成策略可以训练的监督信号,重定向后的手、恢复出的接触、动作标签,正是当前活跃的研究前沿,也是这个领域大量杠杆如今所在之处。GR00T 的训练混合数据里已经把真实机器人数据、仿真和人类视频掺在一起,正是因为这三者单独任何一个都不够。
为一个新技能做数据预算
把这些拼起来,一条实用的经验法则就浮现了。要估计一个新人形技能的数据量,别去要一个单一数字;先明确三件事,再读出一个区间。
- 可靠度目标。演示日 70% 的成功率和量产 99% 的成功率之间,隔着一条吃掉大部分数据的长尾。
- 变化范围目标。一个固定工位,还是任意一个厨房?每一个独立的变化维度大致都会把需求乘上一档。
- 起点。从零开始,固定情形预算几十到几百条演示;从一个强的预训练通用模型出发,同样的固定情形往往更少,但开放世界的情形仍会攀到数千条。
大致的形状是这样:固定场景的技能活在几十到几百条演示的量级;而同一个技能要在千家万户或众多门店里硬化到可部署,往往会爬升到数千条演示、或者等价的数百个小时,其中大部分不是花在那个动作本身,而是花在它周围条件的长尾上。
诚实的那个数字
那么,一个人形技能究竟需要多少数据?让它风光地做成一次,几十条演示;让它在固定工位里稳定工作,几百条;而要让它经受住一个从未见过的世界,数千条,或者等价的人类工时。这个数字是一个函数,不是一个常数,它最陡峭的自变量是泛化。任何给你报出「每个技能一个数字」的人,其实是在给你报他心里的那个分母,并指望你不会追问。