048|CALVIN:语言条件长任务的组合泛化
原论文:CALVIN: A Benchmark for Language-Conditioned Policy Learning for Long-Horizon Robot Manipulation Tasks,Oier Mees 等,2021。论文。
先接住前作的问题
RLBench统一任务与示范接口,但单次技能成功仍可能掩盖技能之间的状态衔接失败。CALVIN把自由玩耍、少量语言和连续指令链放进同一评测,追问前一步完成后留下的状态是否适合下一步;它是不同协议的基准。
五个前置概念
五个前置概念是:行为克隆用动作标签训练策略;目标重标注把实际到达状态当作目标;CVAE用潜变量表达多种可能行为;分布偏移指执行时遇到的状态不同于训练;前缀成功率衡量从第一步起连续完成至少若干任务的比例。
一、问题设定:单技能成功怎样衔接成连续指令链
机器人能分别打开抽屉、拿起积木,为什么连续听从五条指令时却几乎总会失败?CALVIN 把这个落差变成了可重复的研究问题。它的贡献主要是环境、数据和评测协议,而不是一种战胜其他方法的新策略网络。
研究设定是单机器人、视觉与语言条件下的连续控制。论文基线采用离线模仿学习;环境也允许强化学习,不能因此把 CALVIN 本身归类为一种 RL 算法。机器人是模拟 Franka Panda,桌面包含抽屉、滑门、灯、按钮及彩色积木。
观测可组合固定相机、腕部相机、深度、本体感知和模拟视觉触觉。动作接口支持绝对笛卡尔位姿、相对位姿与关节命令;基线使用世界坐标系中的绝对笛卡尔动作。末端位置、姿态和夹爪构成七维输出,30 Hz 闭环发出动作。七维任务空间动作与七个机械臂关节的物理自由度是不同概念。
环境使用状态变化判定任务完成。例如,抽屉需要移动达到阈值,而不只是手接触到了把手。训练策略不读取物体真值状态,但数据标注器和评测器会使用模拟器状态。这里存在明确的信息边界:策略看传感器,裁判看状态。
四个环境改变纹理和桌面部件位置,但保持机器人、桌子及固定相机的整体位置相同。因而 ABC→D 测试的是特定视觉与布局变化下的迁移,并非跨机器人、跨房间任意结构或开放世界泛化。
长序列由评测器逐条给出语言指令,当前任务成功才切换下一条。策略不必自己把一句复杂目标拆成五个子目标,也不必自己判断何时完成。称其为长时域控制很合理,称其已经完整评估自主任务规划则过强。
二、连接玩耍重标注与多上下文模仿
它在四个结构相近的模拟桌面上组织 34 种操作,提供自由玩耍的数据,并测试连续执行语言指令。基线沿用多上下文模仿学习,把大量没有语言标注的片段和少量带语言的片段共同用于训练。原论文图8中,同场景、静态相机基线的单任务成功率为53.9%,但连续完成五条指令的比例只有0.08%。两者初始化与任务分布不同,不能直接用前者的五次方解释后者。
1. 把自由玩耍变成训练样本
一段人类操作可能先拿起积木再放到抽屉边。即使没有预先标注“搬运积木”,也可以取窗口末帧作为视觉目标,把窗口前面的动作当成到达该目标的示范。这种事后重标注扩大了可用监督,但不会把低效绕路自动变成最优行为。
令窗口为 ,目标图像为 。教学写法中的行为克隆损失是:
负号表示最小化负对数似然;原文式1用正对数似然表述最大化目标。这里没有 TD 目标,也没有奖励回传。
自然语言无法像末帧一样自动从任意状态直接取得。CALVIN 利用状态变化检测有意义的技能片段,再配对语言表达。论文描述只给约1%的交互数据附语言标注,但这不意味着语言来源完全无需人工:语言表达本身来自众包,程序负责片段识别与匹配。
2. 为什么引入潜在计划
同一个目标可能有多种到达方式。直接回归动作容易把不同路线平均在一起。MCIL 使用条件变分自编码器:训练时从完整示范推断潜在计划,执行时根据当前状态与目标预测计划,再由共享动作解码器闭环执行。
为了说明组件,可把训练目标写成下面的教学概括:
是目标上下文,可以来自图像编码器,也可以来自语言编码器; 在训练时看完整片段, 在执行时只能看当前可用信息。KL 项让执行时的计划分布接近训练时的推断分布。这是解释基线的统一符号,不是 CALVIN 提出的一条新公式。
图像目标与语言目标共享控制知识,目的在于用少量语言标签调用大量无语言动作经验。它并不保证学到了颜色、空间关系或否定词的正确语义。
这段程序特意保留“评测器检查”,避免误把外部成功判定写成策略自己的能力。数学上优化的是动作似然与潜变量一致性,机制上改变的是训练上下文和测评组织,最终观察的是语言任务完成率。
令 为连续完成的任务前缀长度,则 。这给CALVIN平均链长一个清楚解释:它是五条累计成功曲线下的离散面积,而非五任务全部成功率。教学近似若每个阶段独立成功率0.8,则整链成功0.32768,平均链长约2.689;真实阶段共享场景,独立假设通常不成立。
如果前一步把物体挡到手臂后面,下一技能会从训练里少见的状态开始,这正是长链额外难点。单任务重置测试与连续执行不能互相替代;外部评测器判完成也不能记为策略学会了停止。原文使用可行五任务序列而非任意语言拼接。原文长时域协议
建立理解的例子与前置概念
自构例子,未运行。 假设一条链要求开抽屉、抓积木、放入抽屉。策略第一步虽然成功,却把手停在了抽屉内部;训练中的抓取示范通常从桌面中央开始。第二步失败可能来自状态分布偏移,而不是忘记“积木”这个词。给策略换更大的语言模型未必解决问题;加入这种衔接状态的示范,可能是更直接的干预。
值得进一步实验的问题,可以落实到:保持示范总量不变改变跨域比例;只改变绝对与相对动作接口;加入衔接状态示范并分别检查单任务和长链收益。这三者比只换一个更大网络更能定位瓶颈。
三、从玩耍片段学习上下文,再连续执行指令
无语言片段教控制解码器,少量语言把指令接到上下文;评估时前一步留下的状态直接成为下一步起点。外部裁判提供子目标切换,策略不承担任意任务分解。
输入:自由玩耍轨迹、少量语言标注窗口、训练环境划分
训练:
采样一段轨迹,取末帧作为视觉目标
编码观测与目标,从完整片段推断潜在计划
计算动作负对数似然与计划 KL 损失
另采样语言标注窗口,使用语言目标编码器
更新共享策略与上下文、计划网络
评测一条五任务链:
重置到协议指定场景状态和机器人中立姿态
对每条指令依次执行:
根据当前传感器和这条指令产生动作
环境推进,重新读取传感器
由评测器检查该子任务是否完成
完成则进入下一指令;超出允许预算则结束该链
记录连续完成的前缀长度
输出:每个前缀长度的完成比例及单任务指标
四、分开单任务、前缀成功与跨场景划分
原图怎么读: 图8,原论文图注与图像。先确认训练/测试环境组合和传感器套件,再比较连续完成指令的指标。不同组合下的百分比不是同一初始分布上的单技能成功率。

| 项目 | 原论文设置与含义 |
|---|---|
| 环境 | PyBullet 中四个桌面场景,34种操作 |
| 交互数据 | 约24小时、约240万交互步;每个环境约6小时;三位未接受专项任务训练的操作者 |
| 重标注窗口 | 约4000万个短时域窗口,不是4000万条独立人工示范 |
| 语言 | 超过400种众包表达,约2万条语言指令标注;标注覆盖约1%的交互数据 |
| 对比方式 | 同一 MCIL 基线改变训练场景与传感器组合 |
| 优化 | Adam、学习率 、KL权重0.001;训练窗口16–32步并补齐 |
| 感知处理 | 不使用图像增强;深度与RGB按通道早期融合;触觉编码器使用预训练ResNet-18 |
| 单任务评测 | 每种任务10次、不同有效起始状态;测试语言表述与训练不同 |
| 连续评测 | 1000条可行的五任务指令链,排除循环、冗余与特定相似序列 |
| 未完全核实 | 总梯度更新量、算力预算、随机种子及图8比例的汇总方式 |
“所有划分使用相同超参数”减少了一项人为差异,却不能保证多环境训练已经得到足够优化。ABCD拥有更多数据与域变化,D只有单域数据;其结果同时受到数据量、异质性和优化难度影响。
此外,触觉组合用到预训练编码器,其他输入组合的结构也不同。该实验不是仅增加一个无成本传感器而其余一切严格相同的理想干预,不能用结果证明触觉无用。
奖励方面,基线不优化奖励;成功检测可以作为其他 RL 方法的稀疏奖励。真正需要审视的是成功判据是否覆盖预期任务语义,以及策略是否依赖起始姿态等捷径。原论文没有用系统性攻击实验证明这些漏洞都已排除。
结果:五处证据应该怎么读
第一处,图2与§III-A:控制接口。 它们说明基准输出连续动作,区别于只从少数预定义操作中选一项。支持的是任务包含低层控制挑战;不能推出底层执行器、碰撞处理和真实接触动力学都已被解决。

第二处,图6与附录A:完成判据。 判据比较片段首尾状态,为数据标注与评测提供可执行定义。它支持可重复检测,但也意味着结果取决于阈值设计。例如达到抽屉位移阈值,不等于机器人学会了检查内部空间或安全放置任意物品。

第三处,图8同场景静态RGB行。 单任务53.9%,长链第一条48.9%,前两条12.9%,前三条2.6%,五条0.08%。落差显示接续执行脆弱。单任务与长链的起始状态分布不同,因此不能把所有下降归因于“记忆不够长”。
第四处,图8跨环境行。 同一静态RGB配置下,ABCD→D的单任务35.6%,ABC→D为38.6%,都低于D→D。零样本行反而略高于包含D的多环境行,说明这些数值不支持“看到测试域数据就必然更好”的简单叙事;也不能据此宣布训练数据有害,尚需误差条和控制变量分析。
第五处,图8传感器对照与§V。 D→D增加触觉时单任务54.2%,增加腕部RGB时51.8%;但连续表现没有相应跃升。作者提出绝对动作接口、融合方式、颜色语义混淆和初始状态捷径等解释。这些是诊断性假设,不是逐一经消融确认的因果结论。
0.08%这样的比例若直接乘1000,并非整数成功次数。这提示图8可能涉及跨运行汇总或其他平均口径;所读正文中未完整确认,不能擅自写成“1000次中成功一次”。报告该比例即可。
五、外部裁判和结构化桌面限定长程含义
代价是基准的方便来自强结构。所有任务共享桌面机械臂,物体简单,场景数有限;语言虽有多种表达,任务语义仍围绕既定技能。外部裁判负责子目标切换,缺少真实硬件损伤、触觉漂移与长期无人监督恢复的成本。
作者承认基线表现差并提出改进方向。本文进一步的判断是:不要把一个更高的平均链长度直接翻译成“更像通用机器人”。如果提升来自更强预训练、更多示范或不同动作频率,就需要把这些因素写入比较条件。
追问:新增衔接状态示范后,怎样判断收益来自衔接而非单纯更多数据?
参考答案:保持示范总量固定,用等量普通技能片段作对照,再分别报告单任务与链的各级前缀成功。若链收益集中在特定转接处,而单任务变化小,才更支持状态衔接解释。还要控制语言标签与场景分布,避免把额外语言覆盖误当作恢复状态的贡献。
六、沿机制关系继续读
与RLBench是平行基准;CALVIN把自由玩耍、稀疏语言和连续技能链放到重点,后续GR-1等策略在其上评测属于基准使用,成绩仍依赖相同划分和控制预算。
七、自测三题与参考答案
问题1:一条指令成功率80%,能否断言五条连续成功率是 ?
不能。乘法需要每一步的条件成功概率都为80%,而单任务测试的初始化不同;第一步还会改变后续状态。真实链成功率是五个“在此前全部成功条件下”的概率相乘。任务难度与失败相关性也不能忽略。
问题2:为什么只有少量语言标签,也能训练语言控制策略?
因为大量无语言片段已经教会共享解码器怎样移动,语言标签主要把文字目标映射到这套控制知识的上下文中。但这种共享只提供学习机会;若语言编码无法区分红蓝、数据缺少相应对照,策略仍可能依赖视觉或姿态猜测。
问题3:ABC→D成功是否说明机器人理解了任意新任务?
不说明。该协议保留了技能类型和场景元素,主要改变布局与外观。它证明的是规定变化范围内的执行迁移;新工具、新物理机制、新机器人以及自主分解长目标,都需要不同评测。