读 Dream Machines 工业场景微调 π0.5 有感
最大的感悟当然是 - 用学习策略在做真实机器人部署的这层,我觉得行业还没有形成一套稳定的、可复制的工作方法。当然了,你可以 argue 这周刚出来的新文章 https://pd-perry.github.io/posts/post-training.html 有那么一点潜力,但毕竟他是押注于 RL,但我们目前似乎还是百家争鸣,尚未独尊儒术。
而且,现在不确定的往往是适用边界。我们知道示范、接管、预训练、RL、仿真都可能有用,却未必能在接到一个新任务时,提前判断哪个组合最省事、需要多少人力、能做到多可靠。
同一个失败表象,可能来自视觉信息不足、动作时序、数据覆盖,也可能来自夹具。只要不能比较可靠地定位原因,“下一步该做什么”就仍然高度依赖团队经验。这也是为什么一个团队能做出好 demo,并不自动意味着另一个团队照着用同样的模型就能复现,毕竟我们这些 infra 之后是要做给千千万万个开发者、集成商甚至 non-technical user 去用的,而不只有自己做交付用
我对这篇文章的看法
- 我非常认可两个观点,1) R2 John Scholtz 的 time-to-value 和 2) Tony Zhao 说的算法和模型已经确认下来了,架构不会变,但是数据采集的方式一定要变,他们押的就是新的数据采集范式。这两者背后都关乎到 scalable deployment... 为什么会提到这俩,是因为,微调这个任务在数据采集上实在是花了太太太多功夫了...
- 无论是微调 VLA 还是从零训练一个 ACT,如果是通过 teleop 采集数据去做训练的话,这真的非常不“人道” - 太慢了,太久了,很不 scalable... 但如果是非常少的样本就能完成训练的话,则不然,只是说如果你去部署一个机器人项目,你需要让人去收集(而且数采员的质量应该还要得很好,数据要很容易有办法 eval)十几二十个小时甚至更久的话,这个是很有问题的,很难规模化(10.04.26 update - 我在在做完我的第一个 policy training 之后深有体会,收集 USB 插线数据还是蛮麻烦的)
-
我前两天才读到一个研究者,叫 Edward Johns - 他说:
imitation learning should not need to be as slow and laborious as this
机器人应该能像人一样快速学习!

Learning a Thousand Tasks in a Day · Imperial Robot Learning Lab -
我在看文中的 #2.5, 2.8 - 这简直完美应证了我们上面聊到的感受:微小的差别,在数据采集的熟练度和工艺上真的会带来蝴蝶效应,那这个意味着如果我做一个产品,一个开发、部署工具链的话,我会有非常多的 varaibility, depending on the user... this is not great
- Scene variability 还真的是挺重要的
-
HG-DAgger 我感觉很有意思 - 其实我很早就想到过类似的 idea 了,就我从自己的 intuiiton 出发去设计产品的时候,我就考虑到人和机器的交互,我想象中的新的编程机器人的方式不应该是坐下来写代码而是真的像教人一样去教会机器人做事情(但不是机械地进行 teleop)。令我震惊的是,HG-DAgger 在这里把它的那个 1h policy 给大幅度提升,这很重要。不过一个问题是 - 这个 intervention data 是 perfect 的吗?然后我觉得非常震惊的就是 - 数据量大根本就不是最大的关键,而是 intervention data,这个真的挺有意思的,很少量的数据也能做得很好。作者的结论总结的不错:
instead of collecting a big dataset straight away, to start with a small amount of data, train a simple policy, and then improve it with intervention data or with additional demonstrations of the situations in which it fails.
我想从另外一个角度去看待这个事情 - 即:这个行业部署的时候应该用什么配方,是完全还没有收敛的,大家都还在摸索
当时边读边问的问题
读第一遍的时候我想到的问题,也一并扔进来吧!或许几个月之后等我部署完第一个项目的时候,看到这些我会 chuckle
- 太恐怖了,采集了 21 小时的数据,真的假的?21 小时数据你觉得要花多少时间才能采集完毕,这个成本是怎么样的?
- 所以本质上来说作者采用的方式是,利用一个VLA底座,然后用 BC 的方式去 finetune,数采方式是 GELLO 主臂去 teleop(好像加上了 VR?)- 用真机数据去微调,没有用仿真或者 RL
- 他采集的数据,一条 episode 是不是完全的全程的任务?就是左臂从箱子里拿出 actuator,交过去给右臂,右臂接过然后 ... 整条任务对吗?所以一个 episode 包含了什么元素 - 轨迹, wrist camera, and third person view camera? all fish eye? 这个任务多长来着,in terms of time?
- 我现在感觉有点好奇的是 - 我们看到的那些具身基模,pretrain 里面如果没有别的真机数据那该怎么办,意味着我需要自己去 full finetune 吗?那会挺麻烦的我感觉
- 我在重点阅读 2.9 - 这块儿还挺重要的因为 DAgger 在我的产品设计里面会非常关键。我看他的做法是,用一个现有的 policy(可以选那个 21h, 21+1h 或者 1h),让他开始做 inference,只要犯错了(快犯错了)就出手制止修正,我看他们好像是出手了 212 次?我看他们训练的话是用了这些 intervention data 再加上原本 rollout 成功的 dataset,再加上 1 小时的优质数据,就能把 policy 弄到 88%
- figure 22 我没太懂啥意思,那个 98% is pretty impressive
- 2.11 好像有点小绕但结论我知道了就是 pretrain is very important (也就是说今天那些基模买了很多不同数据在做 pretraining 还是很重要的)但我没有完全弄懂他在说什么,他是说他直接拿 PaliGemma 去 inference 吗?他那个 π0.5 init 是什么意思,咩有训练直接做他那个 task?76% success rate??