500M 激活逼近 3.3B:VLA 的容量到底该加在哪一层

0 阅读28分钟

#把 VLA 从论文搬到机器人上,第一件要算的不是分数,是账单:主干多大、动作专家多大、显存够不够、单帧推理多少毫秒。SmolVLA 这条路线之所以被部署侧关注,正是因为它把这张账单压到了“500M 冻结主干 + 一小段动作专家”这个量级。可账单一小,新的问题就冒出来了:动作专家里那同一个稠密 FFN,要用一套参数同时应付空间推理、物体识别、目标达成和多步组合这四类动作模式。

这篇论文的答案不是把模型做大,而是把“容量”和“计算”拆开。它只动动作专家里的 FFN 层:每个 FFN 换成 4 个路由专家加 1 个共享专家,每个 token 只走 1 个,注意力层保持共享。代价是存储参数从约 500M 涨到约 800M,换来的是四套件平均成功率从 82.75% 提到 84.25%,而推理时的激活量仍是约 500M(含冻结主干)。

我的读法是:这是一次“用存储换容量、让算力原地不动”的最小可用证明。它的价值不在那 1.5 个百分点,而在它把收益的分布讲清楚了——涨在 Goal 和 LIBERO-10,Spatial 与 Object 一分没涨。对做部署的人,这句话比平均分有用得多:它告诉你什么样的任务集值得为 MoE 多付那份显存。

一分钟速览

  • 它改的不是整个 VLA,只是动作专家里的 FFN 层:4 个路由专家加 1 个共享专家,注意力层在全任务间共享。
  • 每个 token 只激活 1 个专家(top-1),存储参数从约 500M 涨到约 800M,而推理时的激活量仍是约 500M。
  • 四套件平均成功率 84.25%,稠密基线 SmolVLA 是 82.75%,相差 1.5 个百分点。
  • 收益集中在两个套件:Goal 从 88% 升到 93%,LIBERO-10 从 63% 升到 65%;Spatial 与 Object 一分没涨。
  • 消融结论反直觉但实用:只有 4 个专家时 top-1 好于 top-2;共享专家权重 α 从 0.2 提到 0.3,四个套件全线上涨。
  • 论文对效率只有“与稠密基线可比”的定性说法,延迟、吞吐、显存三个数字论文未给出。

论文要解决的那一层:动作专家的 FFN

先对齐结构。SmolVLA 由两块积木组成。一块是冻结的 VLM 主干,也就是 SmolVLM2-500M,内含 SigLIP 视觉编码器与语言模型,负责把多相机图像和语言指令编码成上下文表示;另一块是可训练的动作专家,一个很小的 Transformer,每层包含一个 cross-attention(注意力落在主干的 KV cache 上)和一个 SwiGLU 前馈网络。

动作由 Flow Matching 生成。训练时把真值动作与噪声做线性插值,让网络回归“从噪声指向动作”的速度场;推理时从纯噪声出发,用 Euler 积分迭代 10 步,得到一整段动作块。这是一个比扩散少步的生成方式,也是它能谈部署的前提之一。

张力落在哪

论文的观察是:主干能干什么,在预训练阶段就定下来了,训练时又被冻结,所以多任务能力的天花板实际压在动作专家上——而它只有一个稠密 FFN。空间关系、物体属性、目标状态、多步顺序,这四类任务需要的动作生成模式并不相同,把差异全塞进同一组 FFN 权重,就出现了论文所说的张力:容量不够,而算力预算固定。

顺带把代价也说清楚:按比例放大动作专家,推理成本就按比例涨,轻量化的意义随即消失。MoE 在这篇论文里的位置不是压缩,而是“扩容但只激活一部分”。我认为这个论证在部署语境下是成立的,因为主干冻结意味着你能动的只有那一百多兆参数。

换个说法会更清楚:这篇论文问的不是“怎么把 VLA 做小”,而是“做小之后,怎么把多任务需要的容量补回来,同时不动推理预算”。这两件事经常被混为一谈,前者是压缩问题,后者是分配问题,而稀疏 MoE 只在后者上有位置。

图 1 图 1|SmolVLA-MoE 的整体结构:冻结的 VLM 主干把视觉观测与语言指令编码成上下文,动作专家把每一层的前馈网络换成 MoE-FFN,其中包含一个始终激活的共享专家、N 个路由专家、一个 token 级路由器和缩放适配器。

专家切在哪一层:只换 FFN,注意力共享

论文在粒度上做了一个明确的选择:不是把整个动作专家复制成几份(expert 级 MoE),而是只替换每一层里面的 FFN。注意力层在所有任务、所有专家之间共享,只有 FFN 拥有多个副本(图 1)。

这个选择对部署很关键。注意力共享意味着 KV cache 只有一份,attention 的算子形状不变,路由不会改变注意力的计算图;每个 token 只在一个 FFN 上做前向,稀疏性只发生在 FFN 这一段。论文还给了一个替换频率参数 f:f 等于 1 时所有 FFN 层都换成 MoE-FFN,f 等于 2 时隔层替换,判据是层号满足 l mod f 等于 0。

为什么不是复制整个动作专家

每个专家 FFN 沿用原来的 SwiGLU 结构,但参数各自独立:同一套 gate、up、down 三个矩阵,被复制成 N 份可训练副本。这里没有引入任何新算子,只是把“一次 FFN 前向”换成“先选一个、再算一个”。如果按 expert 级去复制,注意力权重、归一化、cross-attention 都要跟着复制,参数会成倍膨胀,KV cache 也得各存一份——那对部署是灾难。

需要说明的是,论文给了 f 的定义,却没有给 f 的消融:隔层替换与全替换各是什么效果,论文未给出。

图 2 图 2|单个 MoE-FFN 层的内部连线:输入 token 同时送进共享专家和路由器选出的 Top-K 路由专家,缩放适配器再给每个 token 一个逐专家加性权重,最后按 α 与 1−α 合成。

路由怎么学:路由器管选择,适配器管强度

路由这部分,论文沿用 AdaMoE 的思路,把它拆成两个东西。路由器是一个无偏置线性投影,把每个 token 的隐状态映射成 N 个专家的打分;随后取 top-K,再对被选中专家的打分做 softmax,得到归一化权重。

另一个是缩放适配器,同样是无偏置线性投影,输出一个 N 维向量,取被选中专家对应的那一维,加到 softmax 权重上,即第 k 个专家的权重等于 softmax 权重加上适配器在该维上的输出(图 2)。论文的解释是,这样把“选谁”和“给多重”解耦了:路由器决定集合,适配器决定强度。

一个容易被忽略的实现细节

加性调制意味着这些权重之和不再被约束为 1,也可以为负,而论文没有对它做再归一化。复现时要按原文来,别想当然地补一个 softmax;这一处对结果有影响,因为路由部分的输出不再是被选专家的凸组合。选中的专家输出按这些权重加权求和,就是路由部分的输出。

共享专家与 α

再往上还有共享专家。它对所有 token 都激活,结构与路由专家相同但参数独立,输出按权重 α 与路由部分相加,α 落在 0 到 1 之间。论文把这个旋钮的语义写得很清楚:α 趋近 1 时更偏向继承预训练能力、训练更稳;趋近 0 时更偏向让路由专家去特化。

有一处口径需要留意:图 2 的图注说最终输出是“共享专家按 α 缩放、路由专家按 1 减 α 缩放”,而正文公式里只有 α 乘在共享专家项上。两种写法在实现上并不等价,论文没有解释这个差异,我在复现时会以公式与开源代码为准。

最后把路由的粒度说清楚:它是 token 级的,不是任务级或 episode 级的。同一个演示里的不同 token 完全可能落到不同专家,专家对应的不是“任务标签”,而是“当前这一步该用哪种变换”。这带来两个后果:负载均衡损失是必需的,否则大多数 token 会挤向同一个专家;部署时也无法预先按任务挑专家,只能在 token 粒度上做路由。

从稠密权重长出来:初始化、负载均衡与训练配方

这套结构不是从零训的。论文用稀疏上行(Sparse Upcycling)的思路,从已经训好的稠密动作专家出发:共享专家拿到预训练 FFN 权重的精确副本,每个路由专家拿到同样的权重再叠一层高斯噪声,噪声幅度是权重标准差乘以 σ,σ 取 0.02。

为什么共享专家不加噪声

共享专家不加噪声这件事是被明确设计过的:它要在一开始就是一个可靠的基线,让路由专家只学“增量”,而不是从零开始学全部能力。这个非对称初始化,是我认为整篇论文里最省事也最有效的一个工程决定——它把“重训一个新结构”变成了“在已有 checkpoint 上加几条分支”。

负载均衡与训练配方

负载均衡沿用 Switch Transformer 的做法:统计每个专家分到的 token 比例与平均路由概率,把两者的乘积按专家求和再乘专家数作为惩罚项,权重 λ 取 0.01,加在 Flow Matching 损失之外。这一项存在的意义就是防止专家坍缩。

还有一处实现细节值得记下:负载均衡损失是在所有 MoE-FFN 层上取平均的,也就是每一层都有自己的路由统计与惩罚项。这意味着专家是逐层独立的,第 3 层的专家 2 与第 5 层的专家 2 之间没有任何参数共享,复现时不能把“专家编号”当成一个跨层的概念来用。

训练配置很朴素:单张 RTX 4090(24GB),学习率 1e-4、AdamW、batch size 48、120,000 步、4,000 步 warmup,Flow Matching 去噪 10 步;所有配置都用同一个随机种子,以保证对比公平,并且每个配置都训满 120,000 步。我认为“能在 4090 上训完”本身值得强调:它把复现门槛压到了单卡水平,同时也意味着 4 个路由专家加 1 个共享专家这个规模,是被单卡显存约束过的选择,而不是一次大规模验证。

图 3 图 3|LIBERO 仿真里的两条完整执行轨迹:上排是打开灶台并把摩卡壶放上去,下排是把黄白马克杯放进微波炉并关门,每排从左到右是起始、中间与完成时的关键帧。

实验怎么设的:LIBERO 四套件与 10 次 rollout

评测全部在 LIBERO 上做,四个套件各 10 个任务:Spatial 考空间关系理解,比如“拿起碗左边的物体”;Object 考物体识别,比如“拿起红色的杯子”;Goal 考目标状态的达成;LIBERO-10 是十步左右的多步组合任务,也是最难的一档。每个任务评测 10 次 rollout,指标是成功率(图 3)。

这个设置有一个直接后果,读数字时必须用上:每个套件是 10 个任务乘 10 次 rollout,等于 100 次,所以成功率的最小刻度就是 1 个百分点。论文表格里的数字全是整数百分比,不是巧合,而是这个评测规模决定的。

对照的基线也给得比较全:Diffusion Policy(321M)、Octo(93M)、OpenVLA(7B,在 Open X-Embodiment 上预训练)、π0 的两个配置(PaliGemma 3B 与 3.3B),以及直接在四个套件上按同一协议微调的 SmolVLA(500M)。这个组合覆盖了三种尺度——百兆级的专用策略、七兆级的大 VLA、三兆级的强 VLA,因此“五亿激活能打到哪一档”这个问题是被正面回答的。

这些任务长什么样

论文给的两条完整轨迹很能校准难度:一条是“打开灶台并把摩卡壶放上去”,一条是“把黄白马克杯放进微波炉并关门”,每排从左到右是起始、中间与完成时的关键帧。对我来说这张图的作用是划边界:这些都是桌面上单臂的短程操作,和真机上带干扰、带遮挡、带力控的场景还有相当距离。

图 4 图 4|七个方法在四个 LIBERO 套件上的逐套件成功率柱状图,SmolVLA-MoE 用黑色边框标出:它在 Object 与 Spatial 上与稠密基线持平,在 Goal 上从 88% 升到 93%。

主结果:1.5 个点涨在哪两个套件

主表里,SmolVLA-MoE 的逐套件成功率是 Spatial 87%、Object 93%、Goal 93%、LIBERO-10 65%,四套件平均 84.25%;稠密基线 SmolVLA 是 87%、93%、88%、63%,平均 82.75%。我把论文 Table 1 里与本方法对比最相关的四列重排如下,π0(3.3B)作为唯一更强的参照一并列出。

套件SmolVLASmolVLA-MoEπ0(3.3B)
Spatial878790
Object939386
Goal889395
LIBERO-10636573
四套件平均82.7584.2586.0

逐套件拆开看

拆开就清楚了:Spatial 和 Object 一分没涨,Goal 涨 5 个点,LIBERO-10 涨 2 个点。论文的解释与消融方向一致——前两个套件考的是空间理解和物体识别,稠密基线本来就做得不错,一个 FFN 够用;真正需要“不同动作生成策略”的是目标达成的推理与多步组合,那里专家的分工才有价值(图 4)。

和更大的模型比

论文强调它在 Object 上拿到 93%,是所有方法里最高的,甚至高过 π0(3.3B)的 86%,这一点站得住。但同一节的另一句话我要打折看:论文在贡献里写“在四个套件上都达到 state-of-the-art”,而表里 π0(3.3B)在 Spatial 是 90、Goal 是 95、LIBERO-10 是 73,三项都比它高,只有 Object 一项它领先。按表里的读法,更准确的说法是“在 5 亿激活参数这一档里最好,在 Object 上全场最好”。

把四个套件放在一起看,还有一个模式值得记下来:它的分数分布比基线更“平”。稠密 SmolVLA 在 LIBERO-10 上是 63%,比它在 Object 上的 93% 低了整整 30 个百分点;MoE 版本最弱的一项仍是 65%,与最强的 93% 相差 28 个点。差距只收窄了 2 个点,所以这不是“补短板”,而是“在长板上加高、在短板上小幅补”。对部署的含义很直接:如果你的任务集里最难的那一档占比很高,MoE 并不能把它救回来。

和其余基线比,它的位置很清楚:Diffusion Policy(321M)72.4%、Octo(93M)75.1%、π0 的 PaliGemma 版(3B)71.8%、OpenVLA(7B)76.5%,全在它之下;只有 π0(3.3B)以 86.0% 在它之上,而那个模型的激活参数是它的约 6.6 倍。这是整篇论文最有说服力的一处:用五亿激活参数逼近三十三亿的水平,差的 1.75 个百分点,换掉的是六倍多的算力。

参数量与激活计算量:那 300M 划算吗

部署的人最关心这张表:到底多存了多少、每次推理多算了多少。论文给出的四个数如下。

口径数量含义
存储参数800M4 个路由专家 + 1 个共享专家
动作专家激活100Mtop-1 路由,每 token 只算 1 个 FFN
总激活量500M含冻结 VLM 主干,与稠密基线相同
额外存储300M只存储、不参与每次推理

论文的说法是这 300M 是“免费”的容量。这句话在 FLOPs 层面成立:top-1 路由下每个 token 只算一个 SwiGLU FFN,前向主项与稠密基线一致。但在这个层面成立,不等于在墙钟时间上成立。

三个不能忽略的成本

第一,权重都要占显存。多出来的约 300M 参数在 fp16 下大致是零点几 GB 的量级,而论文没有给实测显存占用,这个数字得自己算、自己量。对边缘设备而言,带宽通常比 FLOPs 更早成为瓶颈。

第二,批处理会稀释稀疏性。一次推理一批 token 时,不同 token 可能选中不同专家,4 个路由专家在批内都可能被命中,于是实际要跑的 FFN 数接近批内被选中的专家数,而不是 1。要吃到稀疏收益,需要 expert-grouped 的矩阵乘或者 gather、scatter 的实现,而论文没有讨论 batch 推理下的 kernel 效率,也没有给延迟与吞吐数字——论文对效率的表述只有“与稠密基线可比”。

第三,路由本身有开销:每个 token 要多做一次隐状态到 N 个专家的线性投影,路由器一次、缩放适配器一次。N 等于 4 时它很小,但不是零。

把这两个数换成部署时真正要看的量:按 fp16 存,约 800M 参数大致对应 1.6GB 权重,稠密基线的约 500M 对应 1.0GB 左右,差额约 0.6GB。这是我自己按参数规模换算的,论文没有给实测显存,所以只能当量级参考;但对一块 8GB 或 12GB 的板子来说,0.6GB 往往就是“能不能同时留出图像缓冲与 KV cache”的差别。

还有一处与生成方式有关的放大效应:动作由 Flow Matching 迭代 10 步生成,每一步都是一次完整前向,也就意味着路由要在每一步重新做一次。稀疏性本身不会因此变差,每步仍然是每个 token 走一个专家;但路由器与缩放适配器那两次线性投影的开销是乘 10 的。论文没有单独报告这一项,我把它列在这里,是因为它决定了你在多大程度上可以忽略路由成本。

所以我的判断是:这套设计在“理论算力不变、容量变大”这个意义上是干净的,但把它当成“延迟不变”来用是越界的。上线前必须自己测三件事:显存峰值、单帧端到端延迟、以及批内专家命中分布。

图 5 图 5|消融热力图左半(Spatial 与 Object,原文 Figure 5):Top-1 路由在 Spatial 上以 87% 对 78% 明显优于 Top-2,Object 上却是 Top-2 加 α=0.3 拿到最高的 95%。

消融之 Top-K:为什么 top-1 反而更好

论文把 top-K 与共享专家权重 α 做成一个 2 乘 2 的网格,四套件全跑。我把 Spatial 与 Object 两列重排如下,Goal 与 LIBERO-10 的数字在正文里讲。

Top-KαSpatialObject
10.28691
10.38793
20.27789
20.37895

结论是 top-1 在多数套件上更好(图 5)。最明显的差距在 Spatial:α 等于 0.3 时 top-1 是 87%,top-2 只有 78%,差 9 个点;Goal 上也是 93% 对 90%。论文的解释是,只有 4 个专家时,加上第二个专家带进来的是冗余或冲突的信号,而不是互补信息。

两个例外

Object 上最高分是 top-2 加 α 等于 0.3 的 95%,比 top-1 的 93% 高 2 个点;LIBERO-10 上 top-2(α 等于 0.2)的 64% 也略高于 top-1 的 62%。论文对 LIBERO-10 的解释是多步组合任务能从多个专家的组合里受益,这个解释和它前面关于任务异质性的论证是自洽的。

不过这两个例外都落在 2 个百分点的量级,等于每个套件 100 次 rollout 里的 2 次。方向上可以接受,但不足以支撑强结论;真正稳定的是 Spatial 上那 9 个点的差距。

从部署角度看,top-1 恰好也是最省的一档:每个 token 只算一个专家,批内实现最简单,缓存最友好。论文的实验结论和工程偏好在这里正好同向,这是我觉得比较难得的一点。

图 6 图 6|消融热力图右半(Goal 与 LIBERO-10,原文 Figure 5):Goal 上 Top-1 加 α=0.3 得到 93%,去掉共享专家就掉回 88%;LIBERO-10 上 Top-2 在 α=0.2 时以 64% 略高于 Top-1 的 62%。

消融之 α 与两个辅助项:各值几个点

α 的趋势很单调:在 top-1 下从 0.2 提到 0.3,四个套件全线上涨(图 6)——Spatial 从 86 到 87、Object 从 91 到 93、Goal 从 89 到 93、LIBERO-10 从 62 到 65。论文的解读是,在当前训练规模下,把更多预训练稠密 FFN 的能力保留在共享专家里,能给路由专家的特化提供更稳的地基。

两个辅助项的必要性各有一组对照,都只报了 Goal 一列(论文 Table 3 与 Table 4)。

配置Goal 成功率
去掉共享专家(α = 0)88
带共享专家(α = 0.3)93
去掉负载均衡(λ = 0)90
带负载均衡(λ = 0.01)93

也就是说,共享专家值 5 个点,负载均衡值 3 个点。论文对后者的解释是:没有这个正则,路由器会收敛到一个局部最优的分配,一部分专家长期闲置,也就是专家坍缩,容量便用不上了。

读数限制要标出来

α 只扫了 0.2 和 0.3 两个点,外加去掉共享专家那一档,趋势单调,但最优点在哪里、α 更大时会不会回落,论文未给出。同理,共享专家与负载均衡这两组消融只报了 Goal 一个套件,其余三个套件上的数字论文未给出。做复现时这两处都是空白。

我认为最有价值的发现

如果只带走一条,我会带走这条:稀疏 MoE 在小 VLA 上的收益不是平均分布的,它精准地落在“任务之间动作模式不同”的那一档上。

具体说,Spatial 和 Object 一分没涨。这两个套件的共同点是任务同质:看清位置、认出物体、抓过去。这种情况下多给容量,模型没有可用的新东西可学,换来的只有显存账单。反过来,Goal 涨 5 个点、LIBERO-10 涨 2 个点,都是需要“按目标状态反推动作序列”的任务,这时不同专家可以分摊不同的策略,容量才变了现。

这条对选型很实用。如果你的部署任务集是清一色的抓取放置,换 MoE 的期望收益接近零;如果里面混着空间推理、目标达成、多步组合,那这份额外存储可能值。

第二件我认可的是设计上的克制:FFN 粒度、top-1、共享专家加 α,这三件事叠起来之后,推理图几乎和稠密模型长得一样——注意力共享、每个 token 一个 FFN。正是这种“结构上不激进”,才让它在 4090 上训得完、在边缘设备上谈得上部署。很多 MoE 工作让人看不出省在哪,这篇至少把省在哪儿说清楚了。

第三件是 α 这个旋钮本身。它把一个本来要靠调训练超参解决的问题(要不要保留预训练能力)变成了一个可解释、可单调观察的标量,而且论文给出的方向是单调的。对复现的人来说,这是一个成本很低的起点。

第四条我想单独提出来:这篇论文真正验证的是“容量可以存在存储里”这件事,而不是“MoE 一定更好”。它的证据是同一个激活预算下的对照——84.25% 对 82.75%,同一张卡、同一个种子、同样的步数。这种把变量压到只剩“容量从哪来”的实验设计,比堆一长串基线更能说明问题,也是我愿意把它当成部署参考的原因。

适用边界

第一,评测面很窄。全部在 LIBERO 仿真里完成:四个套件、每个 10 个任务、每个任务 10 次 rollout;没有真机,也没有 MetaWorld、RLBench,这两项被作者自己列进了未来工作。表里的成功率不应外推到真实机械臂。

第二,统计强度有限。所有配置用同一个随机种子训满 120,000 步,没有多种子重复,也没有置信区间。每个套件 100 次 rollout 意味着 1 个百分点等于 1 次 rollout:Goal 的加 5 是 5 次,LIBERO-10 的加 2 是 2 次,平均分的加 1.5 约是 6 次。这个量级下方向可以信,具体数值不宜当硬指标用。

第三,效率只有定性结论。摘要说“保持可比的推理效率”,效率分析说额外参数“只存不算”,但延迟、吞吐、显存三个数字论文都没有给。这是读这篇论文时最大的空白,也是我上一节展开的原因。

第四,消融覆盖面不全。层替换频率 f 没有消融;专家数除了 4 没有别的取值;α 只有两个点;共享专家与负载均衡只报了 Goal 一列。论文列出的逐层自适应专家配置、与量化蒸馏结合,都还是未来工作。

第五,论文内部有几处口径不一致,读的时候要留意。

一处是范围说法:贡献段写“四个套件都达到 state-of-the-art”,而表里 π0(3.3B)在 Spatial、Goal、LIBERO-10 三个套件上都更高,本方法只在 Object 上第一。

另一处是参数口径:正文说总激活约 500M(含冻结主干)而动作专家激活约 100M,这两个数与“主干 500M”的字面相加并不吻合,论文没有解释差额。

还有公式交叉引用的错位——正文说路由输出见第 14 式、实际在第 10 式,总损失引用第 17 式、实际是第 13 式——以及主表里它自己那一行的参数量写成 500M 带一个剑标、脚注没有定义。这些都不影响主结论的方向,但复现时以开源代码为准更省事。

第六,论文没有给逐任务的方差。四个套件各 10 个任务,套件级平均掩盖了任务之间的波动:可能某几个任务涨了很多、其余持平,也可能普遍小幅上涨。论文只报套件级平均,因此“MoE 在哪类任务上更强”只能靠套件名称去推断,而不是靠逐任务数据。

我读完之后的几点提炼

第一,先算容量账,再算算力账。800M 存储、500M 激活的模型,在边缘端的瓶颈通常不是浮点算力而是显存与带宽。多出来的那 300M 是实实在在要搬进显存的,不管它有没有被激活。

第二,top-1 优先,α 从 0.3 起调。在 4 个专家的规模下,论文的结果是 top-1 在多数套件上最好,实现也最省;共享专家权重从 0.3 往下试的依据是两条——α 从 0.2 提到 0.3 时四个套件全线上涨,去掉共享专家后 Goal 从 93 掉到 88。

第三,自己测批处理效率。论文没有给延迟数字,而稀疏 MoE 在 batch 下的实际开销取决于专家命中分布,这是必须自己量的一件事,不能靠“激活参数相同”推断。

第四,按任务异质性给收益打折。同质任务集不要期待加 5,异质任务集才值得付那份存储。

第五,公式口径以代码为准。加性缩放适配器、共享专家的 α 与 1 减 α、以及那几处编号错位,都在提示同一件事:这套方法已经开源,复现时读代码比读公式快。

第六,别把平均分当唯一目标。这篇论文最有用的信息恰恰在平均分之外的两个数字:Goal 的加 5 与 LIBERO-10 的加 2。如果你的产品指标主要落在某一类任务上,应该按那一类去读它的表,而不是只看最后那一行。

说到底,这篇论文没有提出新范式。它做的是把大模型里已经成熟的稀疏 MoE,精确地搬到了 VLA 最该搬的那一层——动作专家的 FFN——并且给出了“哪个套件受益、哪个不受益”的实测分布。对做部署的人,它的价值在于提供了一条明确的路径:想要更多容量,不一定加算力,可以加存储。剩下的功课是延迟与真机,这两项论文留白了。

术语速查

  • MoE-FFN 层:按原文,把动作专家里每个 SwiGLU 前馈层换成 N 个并行的专家 FFN、一个共享专家、一个 token 级路由器与一个缩放适配器。
  • Top-K 路由:对每个 token 取路由打分最高的 K 个专家,只计算这 K 个;论文的最佳配置是 K 等于 1。
  • 缩放适配器(scaling adapter):无偏置线性投影,输出一个逐专家的加性权重,与 softmax 权重相加,用来把“选谁”和“给多重”解耦。
  • 共享专家权重 α:乘在始终激活的共享专家输出上的系数,α 趋近 1 偏向继承预训练能力,趋近 0 偏向专家特化。
  • 稀疏上行(Sparse Upcycling):从稠密 checkpoint 初始化 MoE 的做法;共享专家拿到精确副本,路由专家在同样权重上叠加 σ 等于 0.02 的高斯噪声。
  • 负载均衡损失:取自 Switch Transformer,把“专家分到的 token 比例”与“平均路由概率”的乘积按专家求和、再乘专家数,论文取 λ 等于 0.01。

工程落地清单

  1. 先按 fp16 估显存:约 800M 参数对应 1.6GB 权重,稠密基线约 1.0GB,多出的约 0.6GB 必须预留,这是按参数规模换算的量级,论文未给实测值。
  2. 默认用 top-1,α 从 0.3 起调:论文里 top-1 在多数套件上最好、实现也最省;α 从 0.2 提到 0.3 时四个套件全线上涨,去掉共享专家后 Goal 从 93 掉到 88。
  3. 上线前自己量三件事:显存峰值、单帧端到端延迟、批内专家命中分布。不要用“激活参数相同”推断延迟相同。
  4. 按任务异质性决定要不要上:同质任务集(清一色抓取放置)收益接近零;任务集里混着空间推理、目标达成、多步组合时才值得付那份存储。
  5. 实现时保留加性缩放适配器、不做再归一化,并且记住动作是 10 步 Flow Matching 迭代生成的,每一步都要重新路由,别假设路由开销是零。
  6. 复现时以开源代码为准:α 与 1−α 的口径、以及几处公式编号的交叉引用,论文里都有不一致。

常见问题(FAQ)

  1. 它相比 OpenVLA 强在哪里?

    四套件平均 84.25% 对 76.5%,而它的激活参数约 500M,OpenVLA 是 7B。论文的说法是在远小于它的计算成本下逼近大模型的性能。

  2. 800M 存储会不会让部署更难?

    会多占显存。多出的约 300M 参数在推理时不被激活,但必须存着;论文只给了参数口径,没有给实测显存。

  3. top-2 是不是总能带来更多容量?

    不是。在 4 个专家的设置下,top-2 只有 Object(95% 对 93%)与 LIBERO-10(64% 对 62%)小幅更好,Spatial 上落后 9 个百分点;作者的解释是第二个专家带进来的是冗余或冲突信号。