VLA 微调完之后,到底能遗忘到什么程度?这个问题如果只看新任务指标,你大概率看不出任何异常。最近在具身智能相关的工作流里,我反复看到同一个现象:大家把一个开源 VLA 基座拉到自己的机器人场景里做监督微调,新任务的执行成功率确实漂亮,但原本能听懂的多轮指令、能指认的开放词表物体,突然就变得不灵光了。这不是某个团队的手气问题,而是多模态大模型的老毛病——灾难性遗忘,只是发生在 VLA 身上时,它换了一张更难被发现的面孔。最近某高校团队做的研究把这件事量化得相当彻底,这篇工作已经被 2026 年档期的计算机视觉方向顶级会议录用。我读完的整体感受是:很多团队在做 VLA 微调之前,真该先把这套评测方法跑一遍。
1. 先把底料拆清楚:VLA 里面装的是几类寿命完全不同的知识
要讨论遗忘,第一步不是看权重,而是明确 VLA 这个模型内部到底存了哪几类知识。VLA 的基本结构通常可以拆成三块:视觉编码器负责把图像变成视觉特征,语言模型负责理解和推理指令,动作头负责把语义决策映射成机器人可执行的动作序列。这三部分的训练来源和知识形态完全不同,所以在微调时,它们面对新数据的“抵抗力”也完全不同。
1.1 视觉语义知识:开放词表感知靠的是跨模态对齐
视觉编码器在大规模图文数据上学到的东西,本质上是一种跨模态对齐能力:图像里的某个区域,可以和文本里的某个词在特征空间里靠得很近。这种对齐让 VLA 在零样本情况下也能识别训练时没见过的物体类别,也就是我们常说的“开放词表感知”。
关键是,这种能力不是靠背下几千个物体名字得来的,而是靠分布层面的统计规律——模型见到大量“物体外形 + 文本描述 + 场景上下文”的对应关系后,学到了一个非常宽广的高维语义空间。微调时如果新任务数据里只有固定的几个目标物体,梯度更新会持续挤压编码器对不相关视觉维度的响应,开放词表能力就会慢慢缩水。这个速度比你想象的要快,因为微调数据往往模式非常单一,几个 Epoch 就能把分布推向一个很窄的局部区域。
1.2 语言推理与指令跟随知识:最安静,但也最吃数据分布
VLA 的语言能力继承了预训练语言模型的底子。它能理解“把红色杯子放到抽屉里,如果抽屉关着就先拉开”这种复合指令,靠的是海量文本语料里学到的语法结构、语义关系和多步推理能力。
这类知识在微调时会遭受一种“沉默的破坏”。机器人任务数据里出现的语言往往只有几十个固定句式,比如“抓起 A”“放到 B”“按顺序执行 C”,这些句式在 token 层面非常重复。当训练目标集中优化这些序列时,语言模型学到的输出分布会被快速拉偏,原本概率分布中那些“低频但通用”的语言模式就被覆盖掉。你从 loss 曲线上根本看不出问题,因为训练 loss 一直在降,但完成率极高的新任务背后,是语言层面对开放指令的覆盖空间越来越窄。
1.3 动作先验知识:藏在策略头里的“敢动”和“会动”
VLA 的动作头学到的是一类更偏向“状态到动作”的映射。预训练阶段如果混入了大量机器人操作数据,动作头会对常见物体抓取、桌面整理、移动避让这类基础行为形成先验,知道在什么场景下应该出什么动作。
这里有个容易被忽略的点:动作头是整个模型里参数占比最小、输入端最直接的一层。它接收上层特征,输出动作序列,优化目标非常聚焦,所以微调时它的更新通常是最充分的。这也带来了一个有意思的结果:在同等训练强度下,动作层面往往比语言层面表现得“更稳”。动作先验不是不会遗忘,而是遗忘发生的顺序更靠后,除非视觉特征被底层微调彻底带歪,它才会跟着崩。
想说明白 VLA 微调后的遗忘,就必须先把这三类知识分开看。它们共用一个网络,却分布在不同的参数区域,有着完全不同的更新敏感度。后面所有评测结论,都是建立在这个分层认知之上的。
2. 把遗忘量化出来很难:这份研究从五个维度下手
很多团队评估微调效果,只看新任务成功率,这是最大的误区。新任务成功率上升,只能说明模型在新数据集上拟合得好,完全不能反映原来能力还剩多少。这份被顶会录用的工作,核心贡献之一就是搭了一套可复现的评测框架,把“遗忘”从感觉变成数字。
2.1 评测维度:每一项都针对一类独立能力
整个评测体系覆盖了五个方向,我按照研究里的设计思路整理成了一张表:
| 评测维度 | 典型测试内容 | 打分方式 |
|---|---|---|
| 零样本指令跟随 | 给模型下发训练数据里从未出现过的复合指令,比如“先把黄色杯子放进抽屉,再把台灯往左挪十厘米” | 按完整步骤的完成率打分 |
| 开放词表物体识别 | 从保留类别中抽出一批微调阶段从未见过的物体,让模型在候选区域里指认 | Top-1 识别准确率 |
| 语言链路推理 | 混合条件判断与多步逻辑,例如“如果灯不是绿色,就先整理文具盒” | 指令正确执行率 |
| 基础视觉属性 | 判断物体的颜色、形状、大小、材质等基础属性 | 属性识别准确率 |
| 动作策略保持 | 回到预训练阶段已经见过的任务场景中,观察模型能否按原策略完成 | 成功率及轨迹动作分布的 KL 散度 |
这套设计最大的好处是“解耦”。如果只给一个综合分数,你根本分不清掉的是视觉还是语言,也无法定位到底该冻结哪一层。拆开评测之后,每个维度的变化都能对应到具体的模块和具体的梯度流向。
2.2 对照变体设计考虑了数据泄漏和偶然性
评测做得好不好,关键在防泄漏。研究里明确做了几件事:新任务数据集里出现的物体,不会出现在开放词表测试集里;语言评测用到的指令模板,和微调数据的模板刻意做了结构和动词层面的区分;动作保持测试的场景初始状态也和微调数据不一致,避免模型靠记忆场景硬背动作。
对照变体也是同样的逻辑。同一个 VLA 基座,分别用三种方式微调:全参数微调、LoRA 低秩适配、冻结视觉编码器仅更新语言和动作部分。每种子模型用相同的训练数据、相同的步数和相同的学习率预算,并且跑多个随机种子取均值。这样得出的结论不依赖某一次训练的运气,也能横向比较哪种微调方式对旧知识更友好。
我尤其喜欢这套评测里对“动作分布”的量化方式。很多时候只看成功率是不够的,因为模型可能用了一种很怪但凑巧完成的动作。通过 KL 散度对比动作轨迹的分布差距,才能看出模型的动作模式到底是保持了自然语义,还是被微调挤压成了一个机械的条件反射。
3. 核心答案:语言能力最脆,动作能力反而稳得离谱
在这套评测框架下,结果相当清晰,也相当反常识。新任务的微调效果全面上涨,但旧知识的保留情况呈现明显的“阶梯式”分布:语言层的指令跟随掉得最快,开放词表视觉识别次之,基础视觉属性小幅波动,而动作策略的保持度反而最高。
3.1 一张相对退化表看懂全局
我不适合把研究原文的完整数据全部抄过来,但可以用一个示意性的相对退化幅度表,把趋势讲清楚。下面的数值代表相对预训练基座模型的能力变化,负值表示退化,正值表示提升:
| 能力维度 | 全参数微调 | LoRA 适配 | 冻结视觉编码器 |
|---|---|---|---|
| 零样本指令跟随 | 约 -30% | 约 -20% | 约 -12% |
| 开放词表物体识别 | 约 -18% | 约 -10% | 约 -5% |
| 语言链路推理 | 约 -22% | 约 -12% | 约 -8% |
| 基础视觉属性 | 约 -6% | 约 -3% | 约 -1% |
| 预训练动作保持 | 约 -4% | 约 +3% | 约 +1% |
从这张表能读出几层信息。第一,全参数微调的破坏力最大,几乎所有通用能力都被明显削弱;第二,LoRA 能显著缓解退化,但并不能完全阻止语言和语义层面的下降;第三,冻结视觉编码器后,开放词表识别和基础视觉属性几乎保住了,这说明灾难性遗忘有很大一部分来自视觉底层特征的漂移。
3.2 为什么“嘴”先坏掉
语言能力最脆,本质上是指令分布被“窄化”了。预训练时,模型见过的语言指令横跨百科、问答、对话和各类文本,输出空间非常宽广;微调时,训练数据往往只有几百条几千条机器人指令,语法结构和语义范围都极窄。模型被迫在一个很小的输出子空间里反复迭代,非监督层的高频模式开始主导生成概率,低频但通用的指令表达自然被排挤出去。
研究里有一个细节让我印象很深:零样本指令跟随任务中,模型并不是完全听不懂指令,而是会把指令里的关键名词和动作算子混淆。比如微调前能正确区分“茶色马克杯”和“棕色托盘”,微调后模型仿佛只对目标物体和抓取动作敏感,对修饰词和颜色属性变得迟钝。这正是语言层特征被任务数据带偏的典型表现。通用语义维度被压缩,冗杂的属性信息在特征里逐渐失去分辨力。
综合来看,语言能力最脆的第一个原因是数据分布偏移,第二个原因是中间层共享权重被高强度新任务更新污染。语言层的可塑性其实很强,但当训练信号只来自一小撮重复度极高的句式时,这个可塑性就会反过来变成灾难性遗忘的加速器。
3.3 为什么“手”反而稳
动作策略保持度最好,这个结论一开始有点反直觉:明明微调的主要目标就是把动作头训练好,为什么动作能力反而没有大幅退化?
原因在于动作头的参数量小、目标集中。它学习的是从特征到动作序列的映射,输出维度远小于语言模型的词表空间,而且动作策略本身的模式相对固定。在一个基础 VLA 的预训练阶段,模型已经见过大量“拿起”“放下”“推动”“旋转”这类原子动作的组合,这些动作模式在特征空间里分布得很稳定。微调新任务只不过是在这些原子模式里重新排列组合,而不是凭空创造全新的动作模式。
再加上动作保持度评测使用的是“预训练阶段见过的任务场景”,模型在那些场景里的底层视觉特征没有受到新任务太大冲击时,动作头做的是最拿手的模式匹配,自然表现稳定。也就是说,动作能力不是不会遗忘,而是遗忘阈值更高。如果让模型持续学习几百个互不兼容的新任务,或者自由地把视觉特征也全部重训一遍,动作层迟早也会跟着崩,只是时间上远晚于语言层。
4. 从“少忘”到“几乎不忘”:能落地的几种缓解组合
看完这份研究,我最关心的还是怎么把它用到自己的项目里。结合实验结论,下面几类策略是目前看到最可靠、也最容易落地的。
4.1 数据混合比例是第一步,也是最便宜的缓解手段
研究里一个非常明确的结论是:微调数据里如果 100% 都是新任务数据,遗忘几乎不可避免;但只要混入一定比例的通用数据,语言和视觉能力的退化就能明显收窄。实操层面,我建议在每一个训练 step 的 batch 里,至少保留 10% 的通用数据,可以是通用图文描述数据,也可以是通用指令对话数据。
一个可以参考的配置思路:
# 一个训练 step 内的数据采样权重,按经验值设置 data_config = { "robot_finetune": 0.80, # 新任务操作数据 "general_instruct": 0.10, # 通用语言指令/多轮对话 "vision_lang": 0.10, # 开放词表图像描述/视觉问答 }这 20% 的通用数据不是用来提升新任务精度的,而是用来“占住”模型原来已经学会的分布。它相当于在剧烈收缩的语义空间里打了几根柱子,让模型不会完全倒向新任务的窄分布。代价是训练步数可能会多出一些,收敛速度变慢,但对长期部署来说非常值得。
4.2 冻结策略:不是冻得越多越好,而是要冻对地方
从实验结果看,视觉编码器是被遗忘的重灾区。如果新任务和预训练场景在视觉域上差距不大,我强烈建议直接把视觉编码器冻结,只更新语言模型和动作头。这套组合在开放词表识别上的保持度最好,动作品质也不会显著下降。
这里有一个更精细的技巧:语言模型层不要全参微调,尽量用 LoRA。语言模型的参数量大、知识稠密,全参微调几乎必然引发灾难性遗忘;LoRA 把更新限制在一个低秩子空间里,相当于给模型画了一个“可以改,但别改太野”的活动范围。实测下来,视觉编码器冻结 + 语言层 LoRA + 动作头全参微调,是现阶段最能兼顾新任务精度和旧知识保留的组合。
| 微调方案 | 视觉语义保持 | 语言指令保持 | 新任务精度 | 备注 |
|---|---|---|---|---|
| 全参数微调 | 低 | 低 | 高 | 适合数据量极大且场景差异明显的任务 |
| 全层 LoRA | 中 | 中 | 中 | 通用性最好,但需要调 rank |
| 冻结视觉 + 语言 LoRA + 动作全参 | 高 | 高 | 高 | 新任务视觉域与预训练接近时首选 |
| 只微调动作头 | 高 | 高 | 低 | 适合动作模式简单、语言理解要求高的场景 |
需要注意的是,如果新任务场景和预训练场景差异太大,比如从桌面夹取变成水下抓取,冻结视觉编码器会限制模型适应新场景的能力。这个时候不应该强行冻结,而是回退到 LoRA 方案,并额外增加通用视觉数据的混合比例。
4.3 回放、权重合并与持续微调的三条进阶路线
除了数据混合和冻结策略之外,研究里还给了几条进阶思路,我在这几年的实操中也验证过其中一部分:
- 小样本回放:在微调期间从预训练数据里抽取少量代表性样本,混入每个 batch。回放数据不需要多,只占 5% 左右就能有效稳住旧分布,关键是要覆盖视觉属性和语言指令的多样性。
- 权重合并:微调结束后,把新模型的权重和原始基座权重做一个加权平均。比如新权重取 0.7、基座权重取 0.3,合并后再做一轮短暂的适配训练。这个方法在恢复开放词表指令跟随能力上效果立竿见影,成本却极低。
- 持续微调的节奏控制:不要一次性把新任务数据全部灌进去,可以把训练拆成两到三个阶段,每个阶段结束后都在通用回归集上测试。一旦发现零样本指令跟随能力跌破阈值,立刻回滚到上一个检查点,降低学习率,并提高通用数据比例重新训练。
这些方法不是互相排斥的,成熟项目里完全可以叠着用。数据配比解决“分布坍缩”,冻结和 LoRA 解决“参数空间被过度改写”,回放和权重合并解决“旧知识被挤占”。当三层措施同时起作用时,VLA 可以在保留大部分通用能力的前提下,把新任务精度做上去。
5. 这份研究给工程落地最大的提醒:评测协议比调参更重要
最后说点我自己的真实感受。这份研究带给我最大的冲击,不是具体数字,而是把“评测协议”这个基建问题重新摆到台面上。很多人会以为微调效果不好是学习率没调好、LoRA 的 rank 没设对、数据增强不够多,但实际上,你可能连“模型到底忘了什么”都没真正测过。
一个值得推广的做法是:在为任何 VLA 做微调之前,先建立一套属于自己项目的“通用能力回归集”。这个回归集不需要很大,但必须稳定覆盖三个维度——开放词表物体识别、复合指令的零样本执行、基础动作策略保持。用基座模型先跑一遍,把这些数字存档,当作“记忆坐标”。之后每次微调、每次更换数据配比、每次调低学习率,都拿同一套回归集重新测一遍。如果记忆坐标的下降幅度超过了自己制定的红线,不管新任务指标多漂亮,都要慎重考虑是否发版上线。
我也注意到,这套评测框架对未来工作有一个更强的启发:VLA 的遗忘并不均匀,所以缓解手段也不能一刀切。如果项目更看重语言交互能力,那就主攻数据混合和语言层 LoRA;如果项目更看重的是跨场景的视觉泛化,那就要把视觉编码器冻结和权重合并放在优先位;如果项目本来就是固定场景、固定物体,那么全参微调带来的副作用完全可以通过后期评测发现并规避。
回到文章开头那个问题:VLA 在微调之后,能遗忘到什么程度?答案不是一个笼统的“会遗忘”,而是“视觉和语言层面的通用能力会先被牺牲,动作策略层面反而最后被动摇”。以前我们对微调后的模型总有一种迷之自信,觉得 loss 降了、成功率涨了,模型就是变强了。现在这份研究提供了一个更冷静的视角:每一次微调都意味着一次知识的重新分配,你要做的不是在“新能力”和“旧记忆”之间二选一,而是用数据配比、冻结策略和持续评测,把两者都留在盘子里。我自己的规矩是:任何模型要上线,先跑通用回归,再谈新任务精度,这条顺序到目前为止,一次都没有坑过我。