滴啦嘟啦哒头像
【具身笔记】【Piper+PI0.5】三、探究失败原因封面图

【具身笔记】【Piper+PI0.5】三、探究失败原因

概述

本系列为我在vla上的第二个实践:基于piper机械臂完成数据采集--格式转换--pi05微调 --评估--panda支线对比。再上一篇文章中,我在自己的数据集上进行了多轮微调及评估,最终对比piper和panda两臂的结果,发现panda不管在同分布样本还是OOD样本上都有不错的表现,piper在同分布上的表现尚可(42/50),但OOD样本上表现出明显的泛化能力不足(14/50),本篇文章将尝试做一些推理阶段的消融实验,对比两臂在改变某些推理和训练参数设定后表现如何。


1. 改变n_action_steps

众所周知,pi05最核心的机制之一,便是推理chunk_size步,运行其中的n_action_steps步后进行重规划,以我之前的具体参数为例,chunk_size为50,n_action_steps为10,也就是模型每次输出50步,执行其中的10步后进行重规划。在这一小节中,我将尝试不同的n_action_steps值,即让模型每次执行不同的步数后再重新观察,看看最后评估的效果如何。

为了让结果对比更显著,对panda臂,我选择的是让其在上周使用的OOD数据集上进行不同步数的推理测试,因为其同分布数据集成功率达到了98%,可预见的波动范围不大,所以选择了当时成功率为78%的OOD数据;而piper则选择了当时成功率为84%的同分布数据集。

1.1. 结果

机械臂n_action_steps成功/回合成功率95% Wilson 区间
Panda545/5090.00%78.6–95.7%
Panda1041/5082.00%69.2–90.2%
Panda2027/5054.00%40.4–67.0%
Piper544/5088.00%76.2–94.4%
Piper1046/5092.00%81.2–96.8%
Piper2043/5086.00%73.8–93.0%

可以看到panda的结果比较符合直觉:每次更谨慎一些,走一小点步数就重新规划,最后的虽然慢,但成功率能更高,虽然没高到哪里去,不过其n_action_steps=20时,成功率大幅下降,可以表明步数增长对其明确有害。

最后结论如下:

  1. Panda 执行 20 步明确有害(54.0%,p=0.012 对 5 步、p=0.039 对 10 步);5 步与 10 步无显著差别(90.0% vs 82.0%,p=1.000)。

  2. Piper 的 5/10/20 无显著差别(88.0% / 92.0% / 86.0%,全部 p>0.45),执行步数不是它的瓶颈。

  3. 两臂规律相反:Panda 依赖高频重规划(键盘遥操作、动作有台阶),Piper 一次执行更久也不掉分。

  4. 现有默认 10 步对两臂都不吃亏;若给 Panda 选更稳配置,5 步略优但不显著。

我找了相关参考及其例图:

https://arxiv.org/html/2606.00537v1#S4

这篇文章中作者也是做了相同checkpoint,只改变n_action_steps,结果发现在不同任务上表现不同,但总体是小步数时较低,大步数后趋于稳定。

https://arxiv.org/html/2609.39754v1

注意看b部分,也是分别执行了10-50步后再观察,结果显示步数在中间时成功率高于步数在边沿时。

换句话说,n_action_steps是否影响效果在不同模型不同任务上是很难说清的,没有广泛意义上的绝对结论,只能按各自情况对比讨论。


2. 改变视觉信息

在之前的实验中,我曾专门看过同一状态下piper和panda的腕部相机画面是什么样的,画面如下:

可以发现panda的相机使得其能清晰地看到目标的相对位置,而piper的相机画面有相当一部分被自己的夹爪挡住,目标在视觉中的信息不如panda那般显著。因此我产生了下面的猜测:会不会piper压根就没用上腕部相机的信息,纯靠背轨迹或者是靠全局相机就实现了抓取。因此我设计了下面的四阶段实验:

在30条测试集上,对两臂进行如下的消融实验:

1.保持正常的双相机信息,测试成功率

2.遮住外部相机,只用腕部相机,测试成功率

3.遮住腕部相机,只用外部相机,测试成功率

4.交换两个相机的图像,测试成功率

2.1. 结果

相机条件

Panda成功/回合

Piper成功/回合

正常双相机

26/30

28/30

冻结外部相机

0/30

0/30

冻结腕部相机

0/30

0/30

两路图像互换

1/30

0/30

由此结论如下:

  1. 两臂现有模型对两路图像的实时更新都很敏感,冻结任一路后成功率均降至0/30。

  2. 交换视角后几乎全部失败,说明正确的相机通道对应关系对当前模型很重要。

  3. Piper腕部画面虽然夹爪占比大,但不能据此判断该通道无用。


    3. 改变训练集大小

    之前的实验中我对单条任务采集了60条数据,因此在本节中我想探索这个数据集数量是否合适,能不能偷偷懒,用更少的数据训,最后训出来的结果怎样呢?因此我做了下面的测试:

    保持 VLM LoRA+动作专家全量微调方案、batch_size=4,在之前各自的60条数据中取30条,按数据帧数对齐训练 epoch:Panda 30条训练10339步,Piper 30条训练10097步;60条基线均为20000步,学习率日程随训练步数同步调整。

    3.1. 结果

    机械臂

    评估条件

    30条成功率

    60条成功率

    下降

    Panda

    位置OOD,执行5步

    38/50=76%

    45/50=90%

    14个百分点

    Piper

    同分布,执行10步

    28/50=56%

    46/50=92%

    36个百分点

    由此得出结论:

    相同epoch预算下,60条演示的闭环成功率均高于30条,Piper下降尤其明显,说明当前任务仍受演示数量与覆盖度限制。训练loss之外,必须结合闭环成功率判断数据是否足够。

    不过这次实验也有相当大的不足,我并没有测试数据集增加时的表现,不过我在后续中尝试了piper在90条数据上训练,到时候的结果我会更新在本文后面。


    总结

    本文在上一篇文章的基础上,进一步探究了哪些因素可能影响模型的表现,在执行步数、视觉、训练集大小三个因素上设计了消融实验,结果表明执行步数对表现的影响并不显著,视觉、训练集大小对模型表现的影响较大。

    转载自 CSDN-专业IT技术社区

    原文链接:https://blog.csdn.net/m0_75114363/article/details/169160684

    文章来源转载

    评论

    评论列表

    微信小程序
    QQ小程序

    关于作者

    点赞数:0
    关注数:0
    粉丝:0
    文章:0
    关注标签:0
    加入于:--