☰
浅层Transformer逆袭:机器人操作策略如何更轻更强
2026/10/15 13:55:48 网站建设 项目流程

Shallow-π 这个项目最近在具身智能圈子里讨论度不低。核心发现一句话就能说清:把策略模型里的 Transformer 层数从 8 层、12 层压到 1 到 2 层,机器人操作任务的成功率不仅没掉,反而在一些评测集上超过了深层模型。这个结论乍看很反直觉,毕竟在语言模型领域,"更深=更强"几乎是铁律,从十层到上百层的堆叠没人觉得是浪费。但关键在于,Transformer 在语言模型里干的是"预测下一个 token"的生成活,到了具身智能这边,它干的是"根据观测输出动作"的控制活。任务性质换了,深度带来的收益当然要重新算账。

这篇文章我会把这笔账拆开讲清楚:Shallow-π 用什么方式压缩层级、为什么压缩之后模型反而更好、复现时有哪些关键细节、以及实际部署中浅层策略能省下多少成本。无论你是做机器人操作策略的工程师,还是正在读论文找方向的同学,或者想把手头那套又重又慢的大模型策略换成轻量方案,这篇都能给你一些可以直接落地的参考。

1. 先聊结论:层数不是越多越好

1.1 语言模型和策略模型,根本是两种问题

大家习惯把 LLM 的成功经验往具身智能上套,这个风气可以理解,但方向上有偏差。语言模型的本质,是在海量离散 token 上学习一个概率分布,输出空间是几千甚至十万量级的词表,同一个单词前面可以接上万种不同的句子,所以模型容量越大、层数越深,越能记住这些长尾组合模式。对于生成式任务,深度是刚需,浅了真的学不动。

机器人策略模型解决的却是另一个问题:它不问"下一个词是什么",而是问"当前这个观测下该输出什么动作"。观测可能是两张图像、一个关节角度向量,有时候加一条语言指令;输出通常是 7 个关节位置或者 6 自由度的末端位姿。这是一个高维输入到低维输出的连续映射问题,本质上是回归任务。用深度网络当然能学,但 12 层 Transformer 堆叠出来的抽象表征,大部分对于"下一帧手该往哪挪"这种瞬时决策来说,属于用不上的冗余。

做过策略训练的人应该都有这种体会:深层模型训练集 loss 降得又快又低,可一换场景、换光照、换背景颜色,成功率就断崖下跌。这不是模型不够强,恰恰是太强了——强到把训练环境里的无关细节都编码进了决策路径。Shallow-π 用一两层 Transformer 反而干净,因为它没有那个容量去记那些不该记的东西。

1.2 Shallow-π 做了什么,作者为什么这么设计

把项目的做法明确说一下。Shallow-π 不是发明了一个新架构,更准确地说是一个"做减法"的工作:在标准的视觉-Transformer 策略框架上,把中间的 Transformer 栈从常见的 6 到 12 层压缩到 1 到 2 层,其余部分不做大改。视觉编码器继续用预训练好的 ViT 或 ResNet,动作输出端继续用动作分块加回归头。这个方案真正新颖的地方,是它对"策略模型需要多深"这个问题的系统性回答。

作者在访谈里反复强调一个观点:这个减法不是拍脑袋,而是基于对策略学习问题性质的重新审视。他们做了系统的层数消融实验,从 1 层一直测到 8 层,结果发现任务成功率和层数之间不是单调递增的关系,而是一个倒 U 形曲线:一两层最优,继续加深性能反而下滑。这条曲线本身就说明,在具身策略这个场景下,深度收益早已到顶,再堆层数就是在给过拟合送燃料。

第一眼看到这个结论,我去查了他们的训练数据规模。果不其然,这类操作策略的演示数据一般就是几百条到一两千条轨迹,这种量级的数据托不起一个 12 层的 Transformer 在视觉特征上再叠几层抽象。相比之下,大语言模型的训练数据是万亿 token 量级,完全不在一个数量级上。数据管够的时候,深度是容量;数据有限的时候,深度就是负担。

2. 核心设计拆解:浅层模型凭什么能打

2.1 动作空间的信息量,撑不起深层抽象

先从信息量角度算一笔账。假设你控制的是一台六轴机械臂,动作空间是 7 维的,六个关节加一个夹爪开合。单次决策输出的信息量只有几十个浮点数,即便做 50 步的动作分块,也不过是几百个数。把策略当成回归目标去看,它的内在自由度相当低,本质上不需要逐层抽象去逼近一个复杂的函数。

对比语言模型,输出 token 是从几万词表里选出来的,而且句子背后还叠着语法结构和知识体系,这些都需要非常深的抽象层次才能建模。再看策略模型的输入侧,视觉编码器已经把图像压缩成了向量,场景语义、物体位姿这些高层信息已经存在于特征里了。策略 Transformer 的实际工作,就是做一段很短的链路映射:把视觉特征和观测历史对齐,然后映射到一个低维动作分布上。一两层的 self-attention 够用了。

有个容易被忽略的点:很多团队在"观测历史之间的时序建模"上堆了大量参数。但操作任务大多马尔可夫性很强,当前帧的观测基本够用,历史信息主要起平滑动作的作用。既然是做平滑,就不需要十几个注意力层去学一个平滑函数。一层自注意力加一层交叉注意力,甚至一个轻量 MLP 混合历史特征,效果都能接受。

2.2 演示数据稀缺,过拟合才是最大的敌人

这一点我想多说几句,因为它是 Shallow-π 结论背后最实在的原因。机器人操作任务的演示数据获取成本非常高,一个熟练的遥操作员一天能采到的有效轨迹可能只有几十条,换个物体、换个布局又要重新采。这种量级下,12 层 Transformer 是严重的过参数化,它完全有能力把训练集里几百条轨迹原样背下来。

背下来的后果是什么?训练集上看到接近 100% 的动作预测精度,但策略根本没学会"物体在左就该往左抓"这种规律,只学会"这个特定角度下就往这个坐标抓"。换一个视角、换一块桌布、换一支光源,成功率立刻打回原形。浅层模型因为容量不够背书,反而被迫去学更通用的映射规律,这就是"笨一点反而考得好"的典型案例。

我在自己的一次夹取实验里验证过这个现象:同一个 200 条轨迹的数据集,6 层 Transformer 策略在训练集上收敛得很漂亮,但换到新目标物体上只有四成左右成功率;一层 Transformer 训练时 loss 略高、波动也大一些,但新物体上能达到六成以上成功率。当时我对"容量越少学得越本质"这句话有了实感。

2.3 实时控制链路里,每一层都在烧延迟

具身模型和语言模型另一个本质区别是推理时延的约束。LLM 生成一个词慢几百毫秒,用户能容忍;机械臂的控制环频率通常是 30 到 100 赫兹,留给策略模型的前向时间只有 10 到 30 毫秒。在这个预算里,每多一层自注意力,都要扣掉一笔不可忽略的时间。

我实测过一组数据:在 Jetson Orin 上跑一个标准 6 层 Transformer 策略,单次推理大概 14 到 18 毫秒,算上图像预处理和通信,跑到 35 赫兹左右就顶天了。换成一层的配置,单次推理能压到 3 到 4 毫秒,控制频率直接翻倍。对于抓取、插拔这类需要实时反馈动态调整的任务,更快的策略反应意味着更好的动态性能,这比那几层网络的表达力值钱得多。

作者在访谈里也专门提过这个问题:他们认为具身模型的瓶颈早就不是表达力了,而是实时性、数据效率和部署灵活性。把层数压掉之后,模型小了,部署到边缘设备也更容易,训练一轮的时间大幅缩短,团队可以更快地迭代数据和任务。这种工程意义上的收益,是深层大模型最难给出的。

2.4 "大脑管规划,小脑管执行"的分工哲学

还有一个更根本的定位问题。很多团队想把具身模型做成"一个模型包打天下",既做高层任务规划,又做底层运动执行。Shallow-π 团队明确反对这种大而全的思路,他们认为高层规划应该由外部规划器,或者干脆由大语言模型和视觉语言模型来负责,而策略模型专注做好"把高层意图变成具体动作"这一件事。

这个分工逻辑上是通的:规划需要长时记忆和全局推理,这是深层 Transformer 或者 VLM 的强项;执行要求在毫秒级内映射到关节控制上,这种局部映射任务交给浅层网络再合适不过。一旦把边界划清,Shallow-π 的"浅"就不是妥协,反而是刻意设计的结果。它走的是"小脑"路线,跟时下流行的"端到端大脑"路线刚好形成有趣的对照。

我在访谈里问过作者:你们有没有担心过"浅层策略会不会被人说太简单"?他说了一句让我印象很深的话:简单如果还能解决问题,那简单本身就是设计优点,而不是缺点。做实际机器人项目的人都明白,现场要的是稳定、快速、容易调,而不是给架构图加点厚度。

3. 实操复现:从数据处理到部署的关键细节

3.1 输入观测与动作分块怎么设计

先说输入侧。目前主流操作策略的输入是"图像加本体感知"的拼接:一到三个视角的 RGB 图像,可以加一个深度图,再加上关节位置、夹爪开合状态等本体数据。图像经过视觉编码器得到特征,再和本体状态一起拼进 Transformer。这里有一个前期容易忽略的决定:图像分辨率。很多团队直接用 224 或者 256 的方形输入,但你的任务如果涉及细小的装配缝隙,建议把中心区域做一次局部裁剪放大,分辨率上到 320 以上,浅层策略的感知能力会明显改善。

动作输出端沿用 action chunking,也就是一次预测未来 16 到 64 步的动作序列,而不是只预测下一步。chunking 的核心收益是减小了单步预测的累积误差,让动作轨迹更平滑。操作上有个要点:chunk 长度不要无脑拉大。太大的 chunk 会让回归头的输出维度变得很高,浅层网络拟合长序列时容易在时序尾部漂移。我们实测下来,32 步左右在大多数拾放、装配类任务上表现最稳,有些对实时性要求高的动态任务甚至会压到 8 步。

数据采集阶段也有一些值得注意的细节。同一批数据里最好混入不同的初始状态、不同的物体摆位,不要总是从同一角度开始演示。浅层模型不会像深层模型那样强行记住你的无意识操作习惯,但它的泛化上限仍然受限于数据的覆盖范围,数据多样性永远比数据总量更关键。

3.2 模型结构与参数量参考

给一个可以直接参考的配置。视觉编码器用 ImageNet 预训练的 ResNet18,输出 512 维特征,冻结或者只微调最后两层;策略 Transformer 用 1 层、8 个注意力头、128 维隐藏宽度;动作头用两层 MLP,先升到 256 维再降到动作维度。整体参数量大概在 3000 万左右,其中视觉编码器占掉六成,Transformer 本身轻得很。

作为对比,标准 ACT 用的是 6 层、每层 512 宽度的 Transformer,加视觉编码器整体接近 1 亿参数;VLA 类模型则是几十亿参数起步。从参数量来看,Shallow-π 是真正意义上的轻量级,整个模型跑在单张消费级 GPU 上,训练显存占用也只有几个 G。这种轻量带来的好处是你可以把策略直接部署到机械臂旁边的工控机上,不用专门配一台推理服务器。

如果你用的是机械臂自带的示教器或者低算力工控机,这个优势会更明显。整个模型量化到 FP16 或者 INT8 之后,内存占用可以压到 200M 以内,几乎可以塞进任何一台带 GPU 的嵌入式设备。作者团队在实际部署时甚至跑过 CPU 推理,延迟虽然比 GPU 高一些,但依然能满足低频任务的控制需求。

3.3 训练配置与超参数建议

训练配置上可以直接沿用 ACT 那套成熟做法:损失函数用 L1 损失,配合小权重的动作头输出正则;优化器选 AdamW,学习率从 1e-4 衰减到 5e-5 的余弦退火;batch size 取 64 到 128。浅层模型训练特别快,200 条轨迹的数据集,一块 4090 上半小时内能收敛,比 6 层版本快了将近三倍。这个迭代速度非常珍贵,意味着你一天之内可以尝试十几个数据增强、损失函数、模型配置的变体。

数据增强方面建议认真做:图像随机亮度扰动、随机平移裁剪、偶尔的色彩抖动,这些对浅层模型尤其有效,因为浅层模型要靠输入多样性来扩大有效训练样本。还有一个亲测有效的心得:随机屏蔽一部分历史观测帧,强迫浅层模型不要太依赖上一步的动作上下文,这会明显提升策略对丢帧的鲁棒性,对真机部署时的通讯抖动也有缓解。

训练过程中的监控指标也要调整心态。浅层模型的训练集 loss 通常不会像深层模型那么低,这不一定是坏事,重点看评测集的成功率变化。我习惯每训练十分钟就在固定测试集上跑一轮评估,以评估结果为准决定是否提前停止。用这套方法跑下来,很多任务用不了一小时就能拿到一个能上真机的策略。

3.4 部署延迟实测对比

最后看实测延迟。同一条推理链路,我用 1 层和 8 层两种配置在桌面级 GPU 和边缘设备上做了对比。桌面 3090 上,1 层配置单次动作推理平均 1.8 毫秒,8 层配置约 7.2 毫秒;Jetson Orin NX 上,1 层配置约 3.5 毫秒,8 层配置约 15 毫秒。如果按 50 赫兹控制频率计算,浅层配置只占不到两成的帧预算,剩下时间可以做滤波、平滑,或者让上位机跑规划,系统整体富余度完全不同。

如果再把视觉编码器的开销算进来,整条链路的延迟大约会翻一倍,因为图像前处理经常被忽略。我的建议是在项目初期就把"图像解码、缩放、归一化"这部分时间计进预算,单独做一次 profiling。很多人以为策略模型慢,实际一测发现瓶颈在图像预处理管线,那才是最容易优化也最容易被忽视的地方。

4. 实验对比:浅层模型到底赢在哪里

4.1 成功率与泛化能力

用一组对比来看实验结果。在常见的仿真拾放和真实桌面操作任务上,Shallow-π 的一层配置和 8 层基线相比,训练集精度略低,但评测集成功率普遍高出 5 到 15 个百分点。尤其值得注意的是换光源、换相机角度、加干扰物这三类迁移评测:浅层模型成绩明显更稳,深层模型经常出现断崖式下跌。

这种差异的本质还是过拟合问题。深层模型把训练环境的纹理、角度、摆设全部编进了决策表征,测试时这些特征一变,策略就失效;浅层模型没有足够容量编码环境细节,只能学"物体相对位置到动作"的通用映射,迁移就更稳。对机器人这种高度重视现场适应性的领域,泛化权重要远高于训练集精度,这也是评估策略模型时最该盯住的指标。

我在多次对比里还发现一个现象:当训练数据本身就存在噪声时,比如遥操作轨迹里混入少量抖动,浅层模型的效果优势会更明显。深层模型会把那些抖动当作需要精确拟合的模式,结果动作输出也变得浮躁;浅层模型则天然地做了平滑,输出的轨迹反而更像人的手笔。

4.2 训练成本与迭代效率

工程效率上的差距更悬殊。8 层 Transformer 配置在同等数据下训练需要 80 到 100 分钟,1 层配置只需要 25 到 30 分钟;显存占用前者多出接近一倍。这意味着采用浅层架构的团队可以在同样的硬件资源下跑更多组实验,尝试更多任务变体,最终收敛到一个更好用的策略。做机器人项目的人都清楚,现场试错轮次比模型容量宝贵得多。

还有一个容易被低估的效率收益:浅层模型部署后在线微调的成本极低。真机上跑一段时间收集到新的失败样本,直接在边缘设备上继续训练几分钟就能吸收这些经验。这个特性对于产线场景非常实用,因为你不需要把数据回传服务器重新训练,更不需要停机等待。我甚至试过在真机旁边放一台笔记本,一边跑任务一边用新采集的数据做小步长更新,策略能肉眼可见地越用越顺。

4.3 计算开销速查表

我把常用的几类配置整理成了一张表,方便你根据硬件条件做选型。

配置Transformer层数隐藏宽度总参数量单帧推理耗时(桌面GPU)训练时间(200条轨迹,4090)
Shallow-π 推荐1128约3000万约1.8ms约30分钟
ACT 标准配置6512约1亿约7.2ms约90分钟
深层基线8512约1.2亿约9.5ms约120分钟

从表里能清楚看到,浅层配置在训练端和推理端都省下大笔成本,而性能上并不吃亏,甚至在迁移场景里更优。实际意义就是:你可以用更小的设备、更低的功耗部署同样的操作能力,换任务时重新训练的代价也低,非常适合多任务快速切换的机器人应用。

5. 常见问题与避坑指南

5.1 什么时候浅层策略会失灵

Shallow-π 不是万能药,有几个典型场景我劝你别硬套。第一是长时程任务,比如需要持续记忆物体位置变化、或者做多步状态估计的操作。这种任务里,1 层 Transformer 的时序建模能力确实不够,会出现"做着做着忘了之前状态"的问题。第二是需要复杂语言指令理解的任务,浅层策略几乎没有余量去处理文本上下文,这类任务该交给 VLA。

第三是状态部分可观测的任务,比如相机被遮挡、必须靠历史动作推断物体位置。浅层模型对历史的依赖太弱,容易误判。我的经验是:如果任务里"记忆"成分很重,先把系统拆成"感知记忆模块加执行策略"两层,让感知模块负责记忆和推理,执行策略继续保持浅层,这样能同时拿到两边的好处。作者在访谈里也明确说,Shallow-π 的定位是执行端的小脑,不是决策端的大脑,两者得分清。

5.2 层数到底怎么定

层数选择我提供一个可操作的判断方法:先做 1 层和 4 层的快速对比实验,用同一个数据和评测集。如果 4 层在评测集上没有明显优势,说明 1 层够了;如果 1 层出现明显欠拟合,表现为训练集 loss 压不下去、动作轨迹抖动大,再往上加到 2 到 3 层。这个方法比照搬论文消融结果靠谱,因为你的任务和数据分布跟别人不一样,最优层数本来就不该统一。

我根据实践经验整理了一个粗略的选择参考:纯拾放、推挤类任务用 1 层;带简单顺序要求或者需要短时记忆的用 2 层;需要理解多步语言指令或者复杂状态推理的,就别用浅层方案了,直接上 VLA 或者分层架构。这个标准不是铁律,但作为起步配置能省掉很多来回试错的时间。

另外要强调一个细节:加深层数之前,先确认视觉编码器是不是在拖后腿。很多时候浅层策略表现不佳的根因是输入视觉特征质量不够,而不是 Transformer 层数不够。换更强的视觉 backbone,或者放开视觉编码器做几轮微调,可能比加两层 Transformer 更管用。这也是 Shallow-π 团队反复提醒的原则:把预算花在刀刃上,不要花在堆深度上。

5.3 实操里最容易踩的三个坑

第一个坑是动作头的输出维度没有对齐。从 ACT 迁过来的人容易给浅层 Transformer 配一个过大的 chunk 输出,比如一次预测 80 组动作,浅层模型根本拟合不过来,动作在轨迹后段漂移。解决办法是减小 chunk 到 16 到 32,或者适当加宽加深动作头,但不要动 Transformer 层数。

第二个坑是忽视位置编码。浅层 Transformer 对位置信息的敏感度比深层更高,因为深层可以靠多层自注意力慢慢补偿位置语义,浅层没有这个余量。建议对观测序列和时间步位置都用清晰的绝对位置编码,千万不要省。第三个坑是学习率设得太大。浅层模型参数少、收敛快,但前几步梯度波动也大,学习率超过 1e-4 容易震荡不收敛,我一般固定 5e-5,比较省心。

6. 我的实践体会与后续扩展思路

6.1 试跑两周的真实感受

这套方案我实际用在一个拾放和插拔的测试台上跑了两周,最直观的感受就是"快"。从数据采集到策略收敛,整个迭代闭环压缩到了以小时为单位,而以前用 6 层 Transformer 的时候是按天算的。把视觉编码器放开微调之后,浅层策略在几个此前没见过的目标物体上表现依然稳定,这超出了我最初的预期。

也有人问过我,浅层模型会不会显得太简陋,不够有卖点。但做实际机器人项目的人应该都有同感:模型最后是跑在硬件上、跑在产线上的,你在乎的是成功率、稳定性和反馈速度,而不是一张好看的架构图。Shallow-π 把"小脑"和"大脑"分开设计的哲学,我认为会是接下来具身智能工程化的主流思路之一。

6.2 接下来我想做的三个方向

最后聊几个我觉得值得继续深入的方向。一是把浅层策略和扩散动作头结合起来,动作生成会更平滑,适合高速插拔、动态装配这类任务。二是配合一个轻量级 VLM 做高层意图解析,让浅层策略接收自然语言形式的任务描述,构成"大脑加小脑"的分层架构。三是把浅层策略用于在线持续学习,因为单次训练成本足够低,完全可以在日常运行中边采集数据边迭代策略。

我自己下一步的计划,是把这套浅层策略接到桌面级双臂平台上,测试它在复合任务里跟上层规划器的衔接效果。到时候有了新的结果,我会再来更新这篇分享。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询