

LIBERO 论文精读:终身机器人学习知识迁移基准
精读 LIBERO:用可程序化生成的 130 个语言条件机器人任务,系统评估终身学习中的知识迁移、策略架构、任务顺序与预训练。
LIBERO 把机器人终身学习拆成可控的空间、物体、目标和混合分布迁移,并用统一的视觉语言策略与 FWT/NBT/AUC 指标测量“学得快”和“忘得少”。
1. 论文概述#
【Paper】 LIBERO(LIfelong learning BEchmark on RObot manipulation)是一个面向机器人操作的 lifelong learning benchmark。论文不是提出一套新的 policy,而是提供任务生成器、130 个任务、示教数据、三类策略架构、三类终身学习算法和一套评测协议,让研究者可以回答“机器人究竟迁移了什么知识”。

一句话总结#
【Analysis】 LIBERO 的关键价值在于把“终身学习”从一句口号变成可拆解的实验变量:保持物体不变只改变目标,保持目标不变只改变空间关系,再逐步加入混合分布,从而区分 declarative knowledge(对象、位置)与 procedural knowledge(动作、行为)的迁移和遗忘。
核心贡献#
【Paper】
- 提出基于 Robosuite、PDDL 和 Ego4D 行为模板的程序化任务生成流程,原则上可以持续生成新任务。
- 发布四个任务套件:LIBERO-Spatial、LIBERO-Object、LIBERO-Goal 各 10 个任务,LIBERO-100 含 100 个任务;后者再划分为 LIBERO-90 预训练和 LIBERO-10(论文中称 LIBERO-LONG)终身学习评测。
- 为每个任务提供 50 条高质量人类遥操作示教(Thread Velcro 为 100 条),降低研究者收集数据的门槛。
- 统一比较 ResNet-RNN、ResNet-T、ViT-T 三类 visuomotor policy,以及 ER、EWC、PackNet、Sequential Fine-tuning 和 Multitask Learning。
- 报告多个反直觉发现:顺序微调的 forward transfer 反而最好;没有一种视觉编码器在所有知识迁移类型上都占优;朴素监督预训练可能损害下游终身学习。
2. 背景与相关工作#
【Paper】 传统 lifelong learning 多在图像或文本分类中研究 declarative knowledge,例如类别和实体。机器人决策还必须迁移 procedural knowledge:如何抓取、移动、开关或组合多个动作。比如“从冰箱取果汁”失败,可能是忘了果汁的位置,也可能是忘了开冰箱门的动作。
单纯的 multitask learning 可以同时访问所有任务数据,但计算和存储成本高,也不符合机器人持续接收任务的设定。经典 lifelong learning 则要求任务按序到达,学习第 个任务时不能完整访问前 个任务数据,因此必须在 forward transfer(新任务学得更快)和 backward transfer / forgetting(旧任务性能保持)之间折中。
【Analysis】 LIBERO 的实验设计比“在一张总表上比较算法”更有诊断性:Spatial 主要考察空间关系,Object 主要考察对象概念,Goal 主要考察动作目标,LIBERO-100 则把这些因素纠缠在一起。这种 controlled distribution shift 是理解失败原因的前提。
3. 问题定义#
【Paper】 每个机器人任务 由初始状态分布 和目标谓词 定义;所有任务共享状态空间 、动作空间 、动力学 和 horizon 。机器人按顺序学习 个任务,并使用同一个 task-conditioned policy 。
在实际 benchmark 中,论文采用 lifelong imitation learning:每个任务提供示教集合 ,轨迹包含图像、机器人关节/夹爪状态和连续末端执行器动作。由于图像观测通常不是 Markov 的,策略使用历史观测 近似状态。
目标是累计优化已经见过的任务:
行为克隆阶段则最小化:
4. 方法#
4.1 Overall Architecture#
LIBERO 的系统由三层组成:任务生成器负责把自然语言行为模板变成场景和目标;benchmark 层固定任务套件、示教和任务顺序;policy 层接收图像、语言和机器人状态并输出连续动作。

【Paper】 数据流可以概括为:Ego4D 语言模板 → 采样任务指令 → 选择 Robosuite 场景并生成 PDDL 初始状态 → 用谓词描述目标 → 视觉语言策略通过 GMM action head 输出末端执行器动作。
4.2 核心模块#
程序化任务生成器#
- 输入:Ego4D 的人类活动语言描述和模拟器已有物体/场景。
- 中间结果:行为模板、自然语言 instruction、PDDL 文件。
- 输出:可执行的初始状态分布 、目标谓词 和对应模拟任务。
【Paper】 生成器先从 Ego4D 抽取“Open …”“Put …”等行为模板,再填入模拟器物体;随后根据 instruction 选择厨房等场景,PDDL 同时描述对象类别、摆放关系和初始开关状态。目标由 unary predicates(如 Open(X))和 binary predicates(如 On(A,B)、In(A,B))的合取组成,全部谓词满足时 episode 结束。
三种视觉语言策略#

【Paper】
| Policy | Vision encoder | Temporal backbone | Language fusion | 适合观察 |
|---|---|---|---|---|
| ResNet-RNN | ResNet | LSTM | FiLM + LSTM input | 低成本、较短时序 |
| ResNet-T | ResNet | Transformer decoder | language token + visual tokens | 时序与空间关系 |
| ViT-T | ViT | Transformer decoder | language token 参与视觉和时序融合 | 物体种类丰富的场景 |
三者都把多模态特征送入 Gaussian Mixture Model(GMM)输出头,再采样连续末端执行器动作。【Code】 官方仓库当前配置将 bc_transformer_policy 的时序 Transformer 设为 4 层、6 个 heads、最大序列长度 10,并默认使用 ResNet image encoder、MLP language encoder 与 GMM head;可通过 Hydra 配置切换 bc_rnn_policy、bc_vilt_policy 和不同 lifelong algorithm。
Lifelong learning algorithms#
- Sequential Fine-tuning(SeqL):只用当前任务数据更新共享策略,作为低成本基线。
- Experience Replay(ER):保存旧任务少量样本,与新任务混合训练,属于 memory-based 方法。
- Elastic Weight Consolidation(EWC):用 Fisher 信息估计参数重要性,对旧任务重要参数施加正则,属于 regularization-based 方法。
- PackNet:为已学任务冻结/分配参数子网络,属于 dynamic-architecture 方法。
- Multitask Learning(MTL):同时访问所有任务数据,作为理想化上界。
4.3 关键公式#
Forward transfer、negative backward transfer 与 AUC#
设 是已经学习前 个任务、在任务 上训练 个 epoch 后评估任务 的 success rate。当前任务 的最佳成功率为 ,达到该值的最早 epoch 为 。
【Paper】 FWT 越高表示新任务学得快,NBT 越低表示旧任务保留得好,AUC 同时考虑两者。【Analysis】 这三个指标避免只看最后一个 success rate:一个算法即使不遗忘,但每个新任务都要从头学,也不算好的 lifelong learner。
4.4 Training#
【Paper】 每个任务使用 50 条人类 teleoperation trajectories;训练采用 behavioral cloning,策略根据当前图像历史、语言指令和机器人状态预测 GMM 动作分布。论文实验使用单张 A100 或 A40,训练和评估在仿真中进行;LIBERO-90 的短任务可用于预训练,LIBERO-LONG 的 10 个长任务用于下游终身学习。
【Code】 官方 README 的复现实验入口是 python libero/lifelong/main.py seed=SEED benchmark_name=BENCHMARK policy=POLICY lifelong=ALGO;配置中可选 base、er、ewc、packnet、multitask,数据下载脚本支持四个任务套件和 Hugging Face 镜像。
- 初始化或加载 policy ,读取第 个任务的语言、图像、机器人状态和示教动作。
- 按 behavioral cloning loss 训练当前任务;ER 采样回放缓存,EWC 加入参数重要性正则,PackNet 分配可训练参数掩码。
- 在 epoch 保存 checkpoint,并在当前任务及已见任务上测量 success rate。
- 选择当前任务最佳 checkpoint,冻结/更新算法状态,转入下一个任务并累计 FWT、NBT、AUC。
4.5 Inference#
【Paper】 推理时机器人只访问当前 observation 和 task instruction,不再访问旧任务数据;策略输出 GMM 的连续末端执行器动作并与模拟器交互。任务在所有 PDDL goal predicates 满足时成功。
- 将多视角 RGB、proprioception 与语言 instruction 编码为视觉、时序和任务 token。
- 通过 LSTM 或 Transformer 融合历史 token,GMM head 产生末端执行器动作分布。
- 从分布采样动作并执行一步,更新 observation history。
- 检查 PDDL goal predicates;全部满足则返回成功,否则循环直到 episode 结束。
4.6 代码实现对照#
【Code】 官方实现把 benchmark、policy、lifelong method 和 optimizer 拆成 Hydra 配置树。benchmark_scripts/download_libero_datasets.py 负责下载示教;libero/configs/policy/ 定义三种 BC policy、ResNet/patch image encoder、语言 encoder、位置编码和 GMM head;libero/configs/lifelong/ 提供 er.yaml、ewc.yaml、packnet.yaml、multitask.yaml 等算法配置。
【Analysis】 论文中的方法贡献是“可控 benchmark + 初始研究协议”,而不是仓库中的某个单一模型。代码最重要的可复现接口是把五种算法和三种 policy 组合成实验矩阵;因此阅读结果时应同时记录 benchmark_name、policy、lifelong 和 seed,否则不同表格之间并不可直接比较。
5. 实验#
5.1 Experimental Setup#
四个套件的分布变化如下:
| Suite | 任务数 | 主要变化 | 需要迁移的知识 |
|---|---|---|---|
| LIBERO-Spatial | 10 | 物体相同,空间关系变化 | declarative spatial knowledge |
| LIBERO-Object | 10 | 布局相近,物体类型变化 | declarative object knowledge |
| LIBERO-Goal | 10 | 物体和布局固定,目标变化 | procedural goal/behavior knowledge |
| LIBERO-100 | 100 | 物体、布局、目标混合变化 | entangled knowledge |

【Paper】 所有结果平均三个 random seeds,并报告标准误;success rate 被选作底层指标,因为操作任务中的训练 loss 与真实完成率并不总是同步。
5.2 Main Results#
【Paper】 论文的主要结论可以压缩成三点:
- Transformer temporal backbone 普遍优于 RNN:ResNet-T 和 ViT-T 在多数套件上的 AUC 明显高于 ResNet-RNN,说明长期依赖的抽象方式本身就是关键变量。
- 视觉架构具有任务专长:在 ER 下,ResNet-T 往往在 Spatial/Goal 上更强;ViT-T 在 Object 上受益于更强的视觉容量。没有单一 encoder 在所有分布变化上胜出。
- 算法与架构存在交互:PackNet 在 LIBERO-X 上的 NBT 很低,但在 LIBERO-LONG 上 forward transfer 较差;ER 的整体表现更稳健。
以 LIBERO-LONG 为例,ResNet-T + ER 的 FWT/NBT/AUC 为 0.48/0.32/0.32,ViT-T + PackNet 为 0.36/0.14/0.34;后者更不容易忘记,但前者学新任务更快。【Analysis】 这正是 AUC 比单一“最终成功率”更有解释力的地方。
5.3 Ablation Study#
语言 embedding。 BERT、CLIP、GPT-2 与 Task-ID embedding 在 LIBERO-LONG 上没有统计显著差异。论文推测,当前 sentence embedding 更像 bag-of-words,只负责区分任务,而没有真正利用 instruction 的语义结构。
终身算法。 SeqL 在所有套件上 FWT 最好,说明 ER/EWC/PackNet 的抗遗忘机制同时牺牲了新任务适应速度;PackNet 在短任务上保护旧知识有效,但参数分割会减少单个长任务可用容量;EWC 的正则化甚至可能阻碍当前任务优化。
任务顺序。 同一算法和架构仅改变 task ordering,性能就会显著变化,尤其是 PackNet。任务顺序不是实验噪声,而是 benchmark 应显式报告的条件。

5.4 Generalization#
【Paper】 作者用 LIBERO-90 的 90 个短任务做 supervised pretraining,再在 LIBERO-LONG 上进行 lifelong learning。结果显示,朴素预训练不一定改善下游性能,部分架构/算法组合反而下降。

【Analysis】 这不是“预训练无效”的普遍结论,而是说明行为克隆预训练可能把模型塑造成过于具体的动作/视觉表示,降低后续任务中的可塑性;预训练目标、数据顺序和冻结策略需要与 lifelong objective 一起设计。
6. 方法分析#
6.1 为什么有效?#
【Analysis】 LIBERO 有效的根本原因是把变量拆开了。Spatial/Object/Goal 三套任务共享大量因素,只改变一个知识轴,因而可以把性能差异归因到空间、对象或程序行为,而不是笼统地归因于“泛化能力”。同时,FWT 与 NBT 把适应速度和记忆保持分离,避免算法通过完全冻结模型获得虚假的抗遗忘成绩。
6.2 核心创新#
- Benchmark as a microscope:任务套件不是简单增加数量,而是提供知识类型的受控实验。
- Procedural generation:自然语言模板、场景、PDDL 状态和目标形成可扩展的任务生产线。
- Policy–algorithm matrix:同一 benchmark 同时比较视觉/时序架构和终身算法,揭示二者的交互效应。
- Lifecycle metrics:FWT、NBT、AUC 让“学得快、忘得少、总体好”成为可复现实验对象。
6.3 与已有方法的本质区别#
LIBERO 不把 lifelong robot learning 简化为“多任务 BC 的最后一个 checkpoint”。它保留任务到达顺序、旧数据不可完全访问和持续评估旧任务三个约束;MTL 只是上界,SeqL 则是 forward-transfer 参照。【Analysis】 因此 LIBERO 更接近真实部署中的数据生命周期,而非离线数据集上的静态 benchmark。
6.4 关键假设#
- 【Paper】 所有任务共享状态/动作空间和动力学,主要变化来自初始分布与目标谓词。
- 【Paper】 机器人主要通过少量示教进行 imitation learning,当前版本不是稀疏奖励 RL 的完整解决方案。
- 【Analysis】 仿真中的视觉和动力学差异仍然有限,benchmark 分数不能直接等价为真实机器人上的终身能力。
- 【Analysis】 任务文本被当作 task condition,但现有 embedding 实验表明策略可能只使用任务 ID 的区分信息。
7. 局限性#
7.1 作者明确提出的局限#
【Paper】 LIBERO 的初始研究集中在四个模拟任务套件、三种 policy 和三种 lifelong algorithm;作者将更丰富的语言编码、对任务顺序更鲁棒的算法、以及更有效的预训练列为开放方向。当前 benchmark 主要采用 imitation learning,因为 sparse-reward RL 在这些操作任务上训练困难。
7.2 自己分析得到的局限#
【Analysis】
- 仿真偏差:PDDL goal 成功并不包含接触安全、力控制和硬件磨损,sim-to-real 仍需独立验证。
- 示教分布限制:每任务 50 条轨迹足以做 benchmark,但可能不足以覆盖多种合法行为,影响对多模态 procedural knowledge 的测量。
- 记忆预算未完全统一:ER 的 replay 容量、PackNet 的参数掩码和 EWC 的正则强度有不同资源含义,横向比较需要同时报告内存和可训练参数。
- 语言变量仍较弱:如果自然语言只承担 task identifier,LIBERO 还不能充分检验 compositional language grounding。
- 长程交互有限:LIBERO-LONG 只有 10 个长任务,真实世界中任务数量、对象变化和动力学变化可能更加开放。
8. 启发与研究思考#
【Analysis】 读完 LIBERO 后,最值得带走的不是“ER 还是 PackNet 更好”,而是以下研究方法:
- 先定义要迁移的知识,再设计只改变一个因素的任务套件;否则任何结果都难以解释。
- 评估 lifelong policy 时同时画出 learning curve、FWT、NBT 和 AUC,并报告 task ordering 与 seed。
- 把 policy architecture 当成一等公民:视觉 encoder、temporal module 和 language fusion 可能比算法名字更决定迁移效果。
- 预训练应优化“可塑性 + 稳定性”,而不是只追求短期 BC success rate;可以尝试 representation replay、任务关系建模或 meta-learned consolidation。
- 下一步可把 LIBERO 的 PDDL 目标与真实机器人安全约束连接起来,并增加开放词汇对象、触觉、力反馈和可组合语言 instruction。