
你有没有想过这样一个问题:如果给一个机器人装上一个"通用遥控器",让它既能跳舞、又能走路、还能按你的指令去优化某种奖励,这个遥控器的旋钮该怎么设计?
更麻烦的是,如果你换了一个机器人,这个遥控器还能用吗?
答案通常是不能。这正是本文要讲的核心矛盾。
先说说背景。这两年人形机器人的全身控制进步很快,跳舞、跑酷、搬东西都能做。但驱动这些动作的策略,大多数情况下需要给机器人一段一段的关节角度指令,就像你在教一个人跳舞时,把每一个瞬间该抬哪条腿、弯多少度都写成剧本。这套"关节剧本"必须为每个机器人量身定制,因为不同机器人的关节数量、连接方式都不一样。
前沿的做法是跳出这种逐帧指挥,换成一种叫做行为基础模型的东西。
行为基础模型(BFM,Behavior Foundation Model):一种可以用一个向量(称为"潜变量")来代表某种行为的模型,这个向量既可以表示"模仿这段动作",也可以表示"走到这个姿势",还可以表示"最大化这个奖励函数"。
这套框架背后的技术叫Forward-Backward表征(前向-后向表征)。简单说,它训练出两个映射:一个前向映射负责把状态、动作和潜变量转换成"未来会发生什么"的预测,一个后向映射负责把状态转换成潜变量坐标。这两个映射搭配起来,能让机器人在没有见过某个具体奖励函数的情况下,直接算出一个潜变量,驱动策略去优化这个奖励,不需要重新训练。
这本该是个好消息,但这里出现了一个几乎没人愿意面对的现实:训练这样一个行为空间,一台机器人就要烧掉上百个GPU小时。BFM-Zero这项工作把这个想法从虚拟角色搬到了真实机器人上,后续的UFO框架把训练时间压缩到了一百小时左右,但仍然是个不小的数字。
真正让人头疼的不是训练时间,而是训练结果的不可复用性。你给G1机器人训练出一套潜在行为空间,这套空间里某个坐标点对应"抬手"这个动作。现在你想给另一台机器人(比如身材完全不同的T1)也装上这套能力,传统做法是重新跑一遍训练。问题是,重新训练出来的第二套空间,跟第一套空间毫无关系。哪怕两套空间在几何形状上看起来很像(都是一个球面),同一个坐标点在两套空间里对应的却是完全不同的动作。
这就好比两家出版社各自独立设计了一套盲文系统,两套系统都用凸起的点表示字母,看起来结构相似,但同一个点在A系统里是"苹果"的"苹",在B系统里可能是"香蕉"的"香"。如果不统一编码规则,两个系统之间没法直接互译,你得把整本书重新盲文化一遍。这正是行为空间不能跨机器人复用的代价:每添加一台新机器人,就要把训练成本再交一遍,而且交完之后,两套系统之间没有任何桥梁。
这篇论文提出的CROSSBFM,就是想在两个系统之间架一座桥,而且不用把整本书重新盲文化。
核心问题:为什么潜在空间不能直接迁移
要理解这个问题的难度,得先弄清楚这套潜在空间到底是怎么来的。
论文里提到的Forward-Backward表征,核心思想来自一个叫"后继测度"(successor measure)的概念。简单说,它记录的是"一个策略在无穷多步之后,大概率会跑到状态空间的哪些区域"。这个测度可以被分解成一个前向映射乘以一个后向映射,前向映射管"策略往哪里走",后向映射管"这个状态在潜在空间里对应哪个坐标"。
关键的地方在于,一旦训练出后向映射,任何一个奖励函数都可以通过一个简单的加权平均公式,直接转换成对应的潜变量,闭式解出来,不需要额外的强化学习微调。这就是为什么BFM能同时支持"追踪一段参考动作"、"到达某个目标姿势"、"优化某种奖励"这三种截然不同的指令模式,因为它们本质上都是把某种"期望行为"塞进后向映射,输出一个坐标。
但这个后向映射是针对训练时那台特定机器人的关节结构、身体比例训练出来的。当你换成一台关节数目不同、身体长宽比不同的机器人,原来的后向映射根本没法直接套用,因为它压根没见过这台新机器人的感知输入长什么样子。
于是过去解决跨机器人问题的思路大致分成几派。一派做法是用图神经网络或者带注意力机制的架构,把机器人的身体部位当作输入的"词元",训练一个策略同时适应多种机器人构型,这样确实能泛化到没见过的机器人,但通常只能解决单一任务,比如走路或者手内旋转物体,共享的是"身体结构编码"而不是"任务行为编码"。另一派做法直接对齐两个策略的状态空间,用最优传输或者图匹配的方法找对应关系,但计算开销通常很大。还有一派试图从头学一个跨机器人的统一潜在空间,但这些空间是描述性的,不带有闭式的奖励转换能力。
这篇论文选择了一条完全不同的路:不是重新学一个潜在空间,而是把已经训练好的、针对一台机器人的坐标系统,原封不动地"冻结"住,然后想办法让新机器人的动作也能落进这个坐标系统里。
统一编码器:一套输入维度打天下
要把新机器人的动作塞进已有的坐标系统,第一步得知道"对应关系"是什么。也就是说,新机器人做出的某个姿势,到底对应源机器人坐标系统里的哪个点?
论文给出的答案很巧妙:借助动作重定向(retargeting)。
动作重定向:把人类动作捕捉数据映射到机器人骨骼结构上的技术,考虑关节限制、身体比例等因素,让机器人尽量模仿人类的动作。
如果同一段人类舞蹈动作,被分别重定向到G1机器人和M3机器人身上,并且用的是同一条时间轴、同一帧频,那么G1在第100帧做出的姿势,和M3在第100帧做出的姿势,本质上代表的是同一个"意图",尽管两具身体的关节角度完全不同。这就给了一个天然的、免费的对应关系:不需要额外标注,重定向算法已经把这个对应关系算出来了。
于是问题从"如何对齐两个完全无关的空间"退化成了一个监督学习问题:给定新机器人某一帧的感知输入,去回归预测源机器人在同一帧产生的潜变量。这比原来那种需要在线强化学习、需要判别器、需要大量领域随机化的训练过程,简单太多了。
但这里还有一道坎:不同机器人的关节数目不一样,M3有27个自由度,T1只有23个,N1也是23个但身体节点数不同。如果给每个机器人单独训练一个编码器,等于又要维护好几套模型,谈不上"统一"。
论文的解法是设计一个固定宽度的输入格式,不管来的是哪台机器人,都往这个统一的163维输入模板里塞数据。具体来说,模板里预留了8个关键身体部位的位置和速度(膝盖、脚、肘、手臂末端,左右各一组),预留了33个标准关节位置(12个腿部关节、3个腰部关节、16个手臂关节、2个头部关节),外加根节点(骨盆)的高度、朝向和线速度信息。
有意思的是,这个模板里故意包含了一些没有任何一台训练机器人真正拥有的关节,比如腰部的滚转和俯仰、头部关节。这么设计的目的是让这套架构对未来加入的、可能拥有这些关节的新机器人保持开放性。如果某台机器人没有某个关节,对应位置就打一个二进制标记,标注"这个位置不存在",而不是简单地填零,因为填零会让网络分不清"这个关节角度恰好是零"和"这个关节根本不存在"这两种完全不同的情况。
这个设计像什么呢?想象你在整理一个跨国团队的通讯录模板,有的国家的电话号码有区号,有的没有,有的国家的地址要写省份,有的国家压根没有省份这个行政层级。如果你为每个国家单独设计一张表格,维护起来是灾难,新增一个国家就要重新设计一次。但如果你设计一张所有字段都齐全的通用表格,没有的字段就标注"不适用"而不是留空或填零,那么无论加入多少个新国家,通讯录系统的核心逻辑完全不用变。CROSSBFM的统一编码器正是这个思路:牺牲一点点输入维度上的冗余,换来架构的普适性和一次性训练的可能。如果不这样设计,而是为每台机器人单独训练编码器,论文的对照实验显示,三台机器人各自独立训练出来的编码器之间,潜变量的一致性只有0.867到0.913,而统一编码器能把这个一致性提升到0.938到0.965,意味着不同机器人在被给予同一个潜变量指令时,行为更加趋同。
编码器架构本身是一个带有位置编码的Transformer,用预层归一化(pre-LayerNorm)的结构堆叠了四层,最后把每一帧的输出投影到一个半径为根号256的球面上,这个球面正是源模型训练时潜变量所在的空间。这里有个细节值得一提:论文尝试过用post-LayerNorm的版本,结果模型直接崩溃成只输出一个固定的潜变量,怎么都学不出有意义的表征。换成pre-LayerNorm之后问题才解决。这提醒我们,看似很小的架构选择,有时候决定了模型能不能学出东西。
另外编码器还分成双向注意力和因果注意力两个版本。双向版本能看到未来大约一秒的参考帧,这在离线处理动作数据时没问题,但真实的远程操控场景里,你不可能提前看到未来一秒会发生什么。实验显示,把注意力换成因果掩码(只能看当前帧之前的信息)之后,闭环追踪误差从0.2068弧度降到了0.2043弧度,反而更好了,同时彻底解决了"看到未来"这个部署上的硬伤。
训练这套统一编码器的成本有多低?论文给出的数字是一个GPU小时以内,在单张消费级显卡上就能完成,而原本训练那套源头行为空间需要上百个GPU小时。
从潜变量到真实动作:策略训练的第二阶段
编码器解决的是"把姿势变成坐标"这一步,但机器人真正要动起来,还需要一个策略网络,根据给定的潜变量坐标,计算出每个关节该输出多大力矩。
这一步论文用了强化学习里常见的PPO算法(近端策略优化)训练一个"潜变量条件化"的追踪策略。这个策略的输入很干净,只有当前的潜变量和机器人自身的本体感知(角速度、姿态、关节位置速度等),没有任何显式的逐帧参考轨迹。
这里论文做了一个对照实验,把这套潜变量驱动的策略,和传统的"关节角度驱动"策略放在一起比较。后者在每一步都被明确告知目标关节角度是多少,理论上应该表现更好,因为它掌握的信息更精确。
结果确实如此,但差距小得惊人。三台机器人上,潜变量策略比关节策略的追踪误差,只多了0.0247、0.0057、0.0029弧度,最大的差距也就1.4度出头。换句话说,只给策略一个抽象的"意图向量",几乎不损失多少精度,却换来了传统方法根本做不到的东西:平滑的姿势切换。
关节角度驱动的策略有个致命缺陷。如果你突然让它从一个姿势跳到另一个完全不相关的姿势,关节目标发生跳变,会产生巨大的瞬时力矩,轻则动作僵硬,重则直接摔倒。而潜变量驱动的策略,因为潜变量所在的空间是连续的、有几何结构的,你可以在两个潜变量之间做插值,机器人会自然地、平滑地从一个姿势过渡到另一个姿势,不会有任何摔倒记录。
这就好比开车换挡。老式手动挡换挡如果操作生硬,会有明显的顿挫感,甚至熄火。而现在很多车用的是无级变速,动力输出是连续调节的,你几乎感觉不到换挡的存在。潜变量空间提供的正是这种"无级"的过渡能力,而关节角度指令天生就是"离散挡位"式的,中间没有平滑地带。
奖励优化怎么跨机器人实现
三种指令模式里,动作追踪和目标到达都比较直观,编码器直接把参考姿势转换成潜变量就行。真正麻烦的是第三种模式,奖励优化。
回顾一下前面提到的公式,奖励转潜变量需要对状态分布做加权平均,这个状态分布是训练源机器人时,强化学习过程中收集到的那些访问过的状态。可新机器人根本没有跑过强化学习,它没有自己的状态分布可用。
论文的解法是用重定向数据集里缓存的状态来近似这个分布。这样至少保证了被选中的高奖励状态,是新机器人真的能达到的姿势,而不是继承源机器人那些新机器人身体结构根本模仿不了的极限姿势。
但还有一个更隐蔽的问题:源机器人的奖励函数里经常写死一些绝对数值,比如"手抬到1米高就算达标"。如果新机器人个头比源机器人矮很多,1米对它来说可能永远够不着;如果新机器人个头更高,1米又太容易达到,起不到激励作用。
论文用了一个分位数映射的办法来解决这个问题。先算出源机器人在整个重定向数据集里,手臂高度这个特征的分布,找到1米对应的是这个分布里的第几个百分位(论文举的例子是93.8百分位)。然后在目标机器人自己的手臂高度分布里,找到同一个百分位对应的具体数值,把这个数值作为新的阈值。
这个逻辑其实很像成绩换算。假设某个班级期末考试满分150分,及格线是90分,对应年级排名前60%。换到另一个满分100分的班级,你不会直接说"90分及格",而是去找"年级前60%"对应的具体分数是多少,可能是72分。同一个百分位排名,在不同的评分体系下对应不同的绝对分数,但代表的相对位置是一致的。这套换算逻辑让不同身材的机器人,都能拿到一个"跟自己身体成比例"的合理挑战目标,而不是照搬一个可能永远够不着或者毫无难度的绝对数字。
实验结果显示,用这套目标侧近似方法计算出的潜变量,在M3和N1机器人上,比直接套用源机器人真实后向映射算出的潜变量,归一化回报分别高出3.50倍和2.95倍。这说明照搬源机器人的状态分布,选出来的"值得关注的状态",对新机器人来说根本达不到,白白浪费了奖励信号。
跨机器人的泛化能力测试
论文还做了两个很扎实的消融实验,回答两个问题:数据量要多大才够,以及能不能泛化到训练时完全没见过的机器人。
第一个实验把训练数据从100%一路砍到只剩5%,甚至换成纯噪声,看看编码器还能不能正常工作。结果显示,关节追踪误差在数据量从100%降到25%时,只从0.2132涨到0.2241,性能损失大概5%。真正开始明显崩溃是在数据量降到10%的时候,误差跳到0.2706,逼近纯随机潜变量控制下的0.4411这个下限。
这说明什么?说明这套潜在空间本身的几何结构已经相当规整,规整到只需要四分之一的数据就能把它的骨架描摹出来。用t-SNE降维可视化能清楚看到,25%数据训练出的编码器,依然能让不同行为类别(站立、走路、跳舞、跑步、跳跃)在潜在空间里保持清晰的分簇,验证集里没见过的动作片段,也准确落进了对应行为的簇里,而不是散落在簇与簇之间的空白地带。但降到10%,这些簇就开始纠缠不清了。
第二个实验更有意思:拿两台机器人的数据训练编码器,然后测试它在第三台完全没见过的机器人上表现如何。
结果分化非常明显。对M3来说,这台机器人身材和关节结构跟训练集里的N1比较接近,编码器能恢复89.3%的追踪性能,几乎媲美见过它的编码器。但对T1来说,这台机器人个头明显更小,身体比例也不同,恢复的性能只有12.8%。
这个结果背后传达的信号是,跨机器人泛化能力,本质上取决于训练集里有没有一个"形态相近的邻居"。如果有,新机器人的表现更接近插值,编码器能靠"举一反三"猜出大概;如果没有,那就是彻底的外推,编码器基本抓瞎。
这就像学一门新语言。如果你已经会法语,再去学西班牙语,会发现很多单词长得像,语法结构也接近,学起来事半功倍,这是插值式的泛化。但如果你直接从法语跳去学芬兰语,语系完全不同,过去积累的经验帮不上什么忙,得从头啃。CROSSBFM在T1上的表现差,不是编码器设计得不好,而是训练集里压根没有芬兰语这种语系的"邻居",泛化能力有它天然的边界。
论文提到这个发现和另一项工作的结论是吻合的,那项工作用几千种随机化的机器人形态训练运动策略,证明了当训练集里的形态覆盖足够广时,对未见过的机器人也能做到零样本迁移。这暗示了一条未来的路:如果把训练阵容从3台机器人扩展到几十台、上百台,形态足够密集地铺开,任何新机器人大概率都能找到"邻居",外推问题也许就转化成了插值问题。
三种指令模式的完整验证与真机部署
论文最后在M3和T1两台真实机器人上完整跑通了动作追踪、目标到达、奖励优化外加流匹配生成潜变量这四种模式。仿真里表现最好的追踪误差,搬到真实世界后有小幅上升(比如M3从0.2024涨到0.2206弧度),这属于典型的仿真到现实的迁移损耗,但整体趋势和仿真结果保持一致,证明这套流程不是纸上谈兵。
流匹配生成潜变量这部分,论文额外训练了一个整流模型(Rectified Flow)。
流匹配生成模型:一种通过学习从随机噪声逐步演化到目标数据分布的生成模型技术,可以根据文字或类别提示生成对应的数据,这里用来根据"走路""跑步""跳舞"这样的行为标签生成对应的潜变量序列。
这意味着操作者未来甚至可以不提供任何参考动作,直接说"让它跳个舞",生成器就能在潜在空间里合成一段对应的潜变量轨迹,驱动策略执行。这为后续接入自然语言指令,处理更复杂的长时程操作任务打开了一扇门。
Q&A
Q1:CROSSBFM解决的核心问题是什么?
A:解决人形机器人行为基础模型无法跨机器人复用的问题。传统方法给每台机器人单独训练行为空间需要上百GPU小时,而且不同机器人训练出的空间互不相关,CROSSBFM通过冻结源机器人的行为空间,用统一编码器把新机器人的动作映射进同一坐标系统,一次训练不到一个GPU小时就能覆盖多台机器人。
Q2:CROSSBFM的统一编码器是怎么处理不同机器人关节数目不一样的问题的?
A:设计了一个163维的固定输入模板,涵盖8个关键身体部位和33个标准关节位置,不管机器人实际有多少关节,都往这个模板里填,缺失的部位用二进制标记标注"不存在"而不是简单填零,这样一套架构就能兼容多种机器人形态,不需要为每台机器人单独设计输入格式。
Q3:CROSSBFM训练出的潜变量策略和传统关节角度驱动策略比,效果差多少?
A:差距很小,三台机器人上追踪误差只多了0.0029到0.0247弧度,但潜变量策略能实现姿势间的平滑过渡而不会摔倒,这是关节角度驱动策略做不到的,同时还支持奖励优化和目标到达等更多指令模式。
好文章,需要你的鼓励
本文介绍LT-OPD训练框架,通过让极限压缩的多模态大模型在自己生成的内容上接受满血版模型指导,并配合渐进式课程学习,在仅保留5%视觉token时把性能保留率从68.6%提升到82.3%,且不增加推理成本。
本文解读ALIGNOPSD方法,该方法针对AI智能体训练中"决策与时间戳错配"问题,通过先对齐功能相同的决策场景再打分,并按可变长度决策段分配信用,在ALFWorld、WebShop、Search-QA三大任务上相比GRPO提升5.5%至8.7%。
本文介绍自适应一致性图(ACG)方法,通过持久化执行记忆图与预算感知的上下文构建,帮助AI智能体在长任务中减少信息失联,在多项基准测试中相比ReAct等基线方法提升了任务成功率。
多智能体AI协作时重复计算KV缓存浪费严重。PReCache提出预计算低秩缓存和中性基础缓存重构两项设计,免训练实现最高3.1倍加速、2.3倍吞吐提升,且准确率仅比不共享方案低1.1个百分点。