
1. 从“数据金字塔”说起具身操作领域正在经历什么如果你最近在关注机器人学习、具身智能或者操作策略训练大概率会反复撞见一个词——数据金字塔。这个词听起来很唬人但拆开看其实特别朴素它说的是具身操作领域的数据天然就分成几个层级从最底层海量的、粗糙的、几乎不需要人工标注的原始交互数据一路往上收敛到少量但极其昂贵、极其精细的真机示教数据。整个领域过去几年的方法论演进本质上就是在回答一个问题——怎么用金字塔底部的“便宜货”去撬动金字塔顶端的“奢侈品”。我最早接触这个概念是在做一套桌面级机械臂抓取策略的时候。当时团队里有个争论一派认为必须砸钱采真机数据另一派觉得仿真里跑强化学习就够了。吵了两周没结论最后我们干脆两条路都走了一遍结果发现两边都撞墙——纯仿真训出来的策略一到真机就“手抖”纯真机采数据又慢到让人怀疑人生。后来才慢慢意识到这不是二选一的问题而是数据层级之间怎么衔接的问题。这个认知其实就是数据金字塔的核心。所以这篇综述想做的事情很明确把具身操作数据金字塔这个框架讲透。它是什么、每一层的数据长什么样、层与层之间怎么流动、当前主流方法各自站在金字塔的哪个位置、以及最关键的——如果你现在要动手做一个操作任务应该怎么规划自己的数据策略。不管你是刚入门的研究生还是已经在做策略部署的工程师我都尽量把话说得直白把坑标出来。需要先说明一点具身操作这个方向变化极快很多方法半年就迭代一轮。我下面讲的内容一部分来自公开文献的梳理一部分来自我自己和身边同行实际踩过的经验。凡是涉及具体参数和操作步骤的地方我会明确说清楚这是“常见实践下的合理取值”而不是什么金科玉律——因为这个领域压根就没有金科玉律。2. 数据金字塔的四层结构每一层到底装的是什么2.1 底层无标注的原始交互流金字塔最底下这一层数据量最大获取成本最低但信息密度也最低。典型代表就是随机探索产生的交互轨迹——机械臂在环境里乱动、抓取失败、碰撞、滑动所有这些“不成功”的尝试都被记录下来。每条轨迹可能只有关节角度、末端位姿、夹爪开合状态这些低维信号没有语言标注没有成功标签甚至没有明确的任务定义。这一层的价值在于覆盖度。具身操作最怕的是策略没见过某种状态一旦遇到就彻底懵掉。海量的随机交互虽然大部分是“垃圾”但它能保证状态空间的边缘区域也被触及过。我在做抓取任务时就发现那些奇奇怪怪的失败姿态——比如物体卡在夹爪侧面、桌面边缘的极限位置——恰恰是策略最容易崩的地方而这些状态在精心设计的示教数据里几乎不会出现。获取这一层数据的手段现在很成熟遥操作随机采样、仿真环境里的域随机化探索、甚至让机械臂自己跑一段随机策略。成本低到什么程度仿真里一晚上能生成几十万条轨迹真机上用遥操作一整天也能攒几千条。但要注意这一层的数据几乎不能直接用来训练策略它的作用是作为预训练语料或者作为对比学习的负样本来源。2.2 中层带任务标签的示范数据往上一层数据开始有了“意义”。这一层的典型形态是带任务描述的示范轨迹——比如“把红色方块放进蓝色盒子里”“推开抽屉取出里面的物体”。每条轨迹不仅有状态和动作还有一段自然语言指令以及一个隐含的成功信号因为示范通常是成功的。这一层的数据获取成本明显上升。真机遥操作采集一条高质量示范熟练操作员大概需要几十秒到几分钟加上场景重置、物体摆放实际效率可能是一小时采几十条。仿真里可以用脚本化策略或者运动规划生成速度快很多但仿真到现实的差距在这一层就开始显现了——仿真里完美的抓取轨迹到真机上可能因为摩擦系数不对、相机标定偏差而完全失效。这一层是当前大多数操作策略训练的主力数据。像行为克隆这类方法本质上就是在拟合这一层的状态到动作映射。但这里有个容易被忽略的问题示范数据的分布非常窄。操作员总是倾向于用自己习惯的方式完成任务导致数据里充斥着相似的轨迹模式。策略学到的其实是“模仿操作员的偏好”而不是“学会任务本身”。我见过一个抓取策略在训练集上成功率95%但换了个物体摆放角度就掉到40%——因为示范数据里所有物体都是正对着机械臂放的。2.3 上层多模态融合的富信息数据再往上数据变得“厚重”起来。这一层的每条样本不再只是关节角度和动作而是融合了视觉、触觉、力觉、语言等多模态信息的富数据。比如一条装配任务的数据可能同时包含多视角RGB视频、腕部力传感器读数、夹爪触觉阵列信号、以及操作员的口头解说“现在要轻轻转一下感觉到阻力就停”。这一层的采集成本极高。多传感器的时间同步、标定、数据对齐每一项都是工程噩梦。我参与过一个带触觉的插拔任务光是让视觉帧和触觉帧的时间戳对齐就花了两周——因为两个传感器的采样率不同硬件触发还有延迟。但这一层的价值也无可替代它让策略有可能学到“力反馈”这种在纯视觉数据里根本不存在的信息。很多精细操作——比如插USB、拧螺丝、折衣服——没有力觉和触觉光靠视觉根本做不了。这一层的数据量通常不大几千到几万条就算多了。但它的信息密度极高往往被用作微调数据或者关键任务的专项训练数据。一个常见的做法是先用底层和中层数据预训练一个通用策略再用这一层的富数据做微调让策略学会处理需要精细反馈的场景。2.4 顶层人类第一视角的操作视频金字塔尖上还有一层严格说它不算“机器人数据”但价值巨大——人类第一视角的操作视频。你戴个智能眼镜或者用手机拍自己做饭、修东西、整理桌面这些视频里包含了极其丰富的操作先验手怎么接近物体、怎么调整抓握、遇到阻力怎么反应。数据量在互联网上几乎是无限的获取成本几乎为零。但这一层的问题也最棘手具身差距。人手和机械臂的形态完全不同人类视频里的动作无法直接映射到机器人关节上。而且人类视频没有动作标签只有视觉观测要从中提取可用的操作知识需要解决视频理解、动作分割、跨具身映射等一系列难题。目前这一层主要被用于预训练视觉编码器或者提取操作常识直接用来训练策略的还很少。但我觉得这是未来最有想象空间的一层——毕竟人类操作数据的规模是任何机器人采集方式都无法比拟的。3. 层与层之间的流动数据金字塔不是静态的3.1 自下而上预训练与课程学习数据金字塔最自然的用法是自下而上的预训练。先用底层海量无标注数据训练一个通用的视觉-运动编码器让模型学会理解场景的几何结构和物理规律然后用中层带标签数据训练任务策略最后用上层富数据做精细微调。这个流程在近两年的很多工作中都能看到影子。但这里有个关键细节容易被忽略预训练的目标函数设计。如果只是用底层数据做重构或者对比学习模型学到的表征可能和下游操作任务关系不大。我试过直接用底层数据训一个视觉编码器然后在抓取任务上微调结果发现效果还不如从零开始训——因为预训练学到的特征太偏向于“场景识别”而不是“操作相关”。后来改成用动作预测作为预训练目标让模型在底层数据上学习“看到这个状态下一步可能发生什么动作”效果才起来。这个经验说明自下而上的流动不是简单的“喂数据”而是要让每一层的训练目标对齐下游任务的需求。课程学习是另一种自下而上的流动方式。先在简单场景、底层数据上训练逐步增加任务复杂度和数据精度。但课程的设计非常讲究——步子迈大了策略在底层学到的能力无法迁移步子迈小了训练效率极低。我自己的经验是课程难度的提升应该和策略在当前难度下的成功率挂钩成功率稳定在70%以上再升难度否则容易崩。3.2 自上而下从富数据中蒸馏通用能力反过来顶层和中层的富数据也可以“向下蒸馏”。一个典型的做法是用少量高质量的多模态示范数据训练一个“教师策略”然后让这个教师策略在大量底层无标注数据上生成伪标签再用这些伪标签训练一个更轻量的“学生策略”。这样学生策略就能在没见过富数据的情况下间接学到精细操作的能力。这个思路在理论上很漂亮但实操中有个坑教师策略的偏差会被放大。教师策略在底层数据上生成的伪标签如果本身就有系统性错误学生策略会把这些错误学得更牢。我见过一个案例教师策略在抓取透明物体时总是失败导致学生策略直接学会了“避开透明物体”——但任务要求恰恰是要抓透明物体。解决办法通常是混合训练伪标签数据里掺一部分真实标注数据让真实信号把偏差拉回来。3.3 跨层对齐让不同层级的数据说同一种语言数据金字塔最大的工程挑战其实是跨层对齐。底层数据只有关节角度中层数据有语言标签上层数据有多模态信号——它们的状态空间、动作空间、甚至时间尺度都可能不一样。怎么让一个模型同时吃下这些数据目前主流的做法是统一到状态-动作序列的框架下用Transformer这类序列模型来处理变长、变模态的输入。视觉、语言、触觉各自编码成token拼在一起送进模型。但这里有个隐藏问题不同模态的token数量差异巨大。一张图片可能编码成几百个token而一段语言指令只有十几个token力觉信号可能就几个数值。如果不做平衡模型会过度关注视觉token忽略掉力觉这种稀疏但关键的信息。我试过用模态dropout来缓解——训练时随机丢掉某个模态的token强迫模型学会从剩余模态中提取信息。这个技巧在触觉和力觉上特别有效。另一个对齐问题是时间尺度。底层随机探索的轨迹可能持续几分钟而中层示范往往只有几秒。如果直接混在一起训练模型会困惑于“到底该关注哪个时间尺度”。常见的处理是分层建模底层数据训练一个低频率的“技能先验”中层数据训练一个高频率的“任务策略”两者通过一个中间接口耦合。这个接口的设计——是隐变量、是技能向量、还是语言指令——直接决定了整个系统的灵活性。4. 当前主流方法各自站在金字塔的哪个位置4.1 行为克隆死磕中层数据行为克隆是操作领域最经典的方法它的数据策略非常明确只用中层带标签的示范数据。输入状态输出动作监督信号就是示范动作。简单直接在任务单一、场景固定的情况下效果很好。但行为克隆的局限也恰恰来自它对中层数据的依赖。示范数据的分布窄策略的泛化能力就弱示范数据量不够策略就容易过拟合。我见过太多“训练集95%测试集40%”的案例。改进方向通常是数据增强——在仿真里对示范轨迹做扰动、换光照、换纹理或者用扩散模型生成新的示范轨迹。但增强出来的数据终究是“假”的和真实示范的分布还是有差距。4.2 强化学习在底层数据里淘金强化学习走的是另一条路主要依赖底层数据通过大量试错来学习策略。仿真环境里可以无限试错所以强化学习在仿真里往往能训出超越人类示范的策略。但一到真机试错成本就变得不可接受——你不能让机械臂在真实世界里摔几万次。所以强化学习在具身操作里的实际用法通常是仿真预训练真机微调。仿真里用底层数据训一个还不错的策略然后到真机上用少量中层数据做微调。这个流程的关键是仿真到现实的迁移域随机化、系统辨识、对抗训练都是常用手段。但说实话迁移效果至今仍然不稳定同一个策略换个桌面颜色可能就崩了。4.3 多模态大模型试图通吃整个金字塔近两年最热的方向是把多模态大模型引入具身操作。这类方法的数据策略是通吃——底层数据做预训练中层数据做指令微调上层数据做多模态对齐。模型规模大、参数量多理论上能吸收整个金字塔的信息。但“通吃”的代价是训练成本极高而且不同层级数据的混合比例非常难调。底层数据太多模型学到的都是低级运动模式中层数据太多又容易过拟合到特定任务。我了解到的一些实践是用分层Transformer——底层用大模型处理视觉和语言顶层用小模型处理动作生成中间通过一个可学习的接口连接。这样既能利用大模型的泛化能力又能保持动作生成的效率。4.4 世界模型从底层数据中学习物理规律世界模型这条路比较特别它主要吃底层数据但目标不是直接学策略而是学一个环境的预测模型——给定当前状态和动作预测下一时刻的状态。有了这个预测模型就可以在“想象”中训练策略而不需要真实交互。这个思路在理论上很优雅因为底层数据量足够大足以训练一个不错的世界模型。但实操中世界模型的预测误差会随着时间步累积想象出来的轨迹很快就偏离现实。我试过用世界模型做规划前5步还行到第10步预测的画面已经完全糊掉了。改进方向通常是短时预测模型预测控制只在短时间窗口内信任世界模型然后重新用真实观测校正。5. 如果你要动手数据策略的规划清单5.1 先明确任务需要金字塔的哪几层不是所有任务都需要完整的金字塔。一个简单的拾取-放置任务中层示范数据可能就够了但一个需要力反馈的精密装配任务没有上层富数据基本做不了。我的建议是先做任务分析任务的成功关键是什么是视觉识别、是运动规划、还是力觉反馈关键能力对应哪一层数据然后只采集那几层不要盲目追求“全金字塔”。5.2 底层数据的采集要“广”不要“精”底层数据的价值在于覆盖度所以采集策略应该是尽可能多样化不同的物体、不同的摆放、不同的光照、不同的干扰。不要花时间在“把某一条轨迹采得特别漂亮”上底层数据不需要漂亮。仿真里可以用域随机化批量生成真机上可以用遥操作随机采样。我自己的经验是底层数据的多样性比数量更重要——一万条相似的轨迹不如一千条各不相同的轨迹。5.3 中层数据的采集要“精”不要“广”中层示范数据的价值在于质量。一条干净、流畅、任务描述清晰的示范胜过十条乱七八糟的。采集时要注意任务描述要具体“把红色方块放进蓝色盒子”而不是“操作物体”轨迹要完整从初始状态到任务完成场景要标准避免引入不必要的干扰。另外示范的多样性也很重要——同一个任务让不同操作员用不同方式完成策略学到的泛化能力会更强。5.4 上层数据的采集要“准”不要“多”上层富数据的采集成本最高所以每一帧都要用在刀刃上。多传感器的时间同步是重中之重宁可少采几条也要保证每条的数据对齐是准确的。我见过太多因为时间戳错位导致整个数据集报废的案例。另外上层数据通常用于微调所以任务要聚焦——不要试图用一套富数据覆盖所有任务一个任务一套数据微调时分开用。5.5 跨层混合训练的比例需要反复试不同层级数据的混合比例是训练时最需要调的参数。底层数据太多模型学不到任务中层数据太多泛化能力差上层数据太多容易过拟合。我的经验是从1:1:1开始试然后根据验证集表现调整。如果策略在训练集上表现好但测试集差说明中层数据太多增加底层数据比例如果策略连训练集都学不会说明底层数据太多增加中层数据比例。这个调参过程很磨人但没办法目前没有理论指导只能靠实验。6. 几个容易踩的坑和我的应对经验6.1 数据量不等于数据价值刚入门时最容易犯的错是觉得“数据越多越好”。我早期做过一个项目攒了五十万条底层轨迹结果训练时发现模型根本学不动——因为大部分轨迹都是重复的、无信息的。后来砍到五万条精心挑选了多样性高的样本效果反而更好。数据的价值在于信息量不在于数量。底层数据尤其如此随机探索产生的轨迹里90%以上都是“机械臂在空转”真正有信息量的状态转移很少。6.2 仿真数据的“虚假繁荣”仿真里跑出来的成功率和真机成功率之间往往隔着一条鸿沟。我见过仿真里99%成功率的策略到真机上直接掉到20%。原因通常是仿真里的物理参数太理想——摩擦系数是常数、物体是刚体、光照是均匀的。改进方向是域随机化在仿真里随机化摩擦系数、物体质量、相机位置、光照条件让策略学会适应变化。但域随机化的范围很难把握——范围太小迁移效果差范围太大策略在仿真里都学不会。我的经验是从窄范围开始逐步扩大每次扩大后重新训练观察成功率变化。6.3 多模态数据的“模态竞争”上层富数据里不同模态的信息量差异很大。视觉信息丰富但冗余力觉信息稀疏但关键。训练时如果不做处理模型会倾向于依赖视觉忽略力觉。我试过几种缓解方法模态dropout训练时随机丢掉某个模态、模态加权损失给稀疏模态更高的损失权重、模态注意力让模型自己学习关注哪个模态。效果最好的是模态dropout简单粗暴但有效。具体做法是每个batch随机选一个模态置零强迫模型学会从剩余模态中提取信息。6.4 跨层对齐的“时间戳陷阱”跨层数据混合训练时时间戳对齐是个隐蔽的坑。底层数据的采样率可能和中层数据不同上层多模态数据更是各有各的时钟。如果直接按时间戳拼接很容易出现“视觉帧对应的是上一时刻的力觉信号”这种错位。我的做法是统一重采样到固定频率然后用插值对齐。但插值会引入误差所以对于力觉这种高频信号宁可降采样也不要插值。另外硬件触发同步是最可靠的方案如果条件允许尽量用硬件信号来对齐多传感器数据。6.5 策略评估的“场景过拟合”最后说一个评估上的坑。很多工作报告的成功率是在固定场景、固定物体、固定光照下测的。这种评估结果参考价值有限——换个场景可能就崩了。我自己的评估流程是至少三个场景训练场景、相似场景、差异场景。相似场景换物体颜色或位置差异场景换光照或背景。只有在差异场景下还能保持一定成功率的策略才值得进一步部署。这个评估流程很耗时但能避免很多“实验室里很美出门就废”的尴尬。7. 关于数据金字塔我目前的一些判断数据金字塔这个框架我觉得最大的价值不是它提出了什么新方法而是它给了一个思考数据策略的坐标系。以前大家做具身操作往往是“有什么数据用什么数据”缺乏系统性的规划。有了金字塔这个视角就能清楚地看到自己的方法站在哪一层缺哪一层的数据层与层之间的流动是否顺畅。从趋势上看我觉得未来会有两个方向。一个是底层数据的利用率会越来越高——随着世界模型和自监督学习的发展海量无标注数据的价值会被进一步挖掘。另一个是顶层数据的获取成本会逐渐降低——随着遥操作设备和多模态传感器的普及采集富数据不再是大实验室的专利。这两个方向交汇的地方可能就是具身操作真正走向实用的拐点。但话说回来这个领域现在还是“方法满天飞落地没几个”。我自己的体会是不要被新方法的名字唬住回到数据本身你的任务需要什么信息这些信息在哪一层数据里怎么把那一层的数据用好把这三个问题想清楚比追任何新方法都管用。数据金字塔不是让你去堆数据而是让你去理解数据——理解每一层数据的价值、局限和流动方式。这个理解才是做具身操作最核心的能力。