【机器人 / 强化学习】LWD(Learning while Deploying)机器人持续进化的强化学习框架
目录
- [【机器人 / 强化学习】LWD(Learning while Deploying)机器人持续进化的强化学习框架](#【机器人 / 强化学习】LWD(Learning while Deploying)机器人持续进化的强化学习框架)
- [0x00 概要](#0x00 概要)
- [0x01 背景:为什么需要 LWD?](#0x01 背景:为什么需要 LWD?)
- [1.1 真实世界不是一个固定测试集](#1.1 真实世界不是一个固定测试集)
- [1.2 核心矛盾:通用策略如何从异质部署经验中学习](#1.2 核心矛盾:通用策略如何从异质部署经验中学习)
- [0x02 系统架构:四大支柱](#0x02 系统架构:四大支柱)
- [2.1 四大支柱总览](#2.1 四大支柱总览)
- [2.2 支柱一:SOP 类系统底座(工程基础)](#2.2 支柱一:SOP 类系统底座(工程基础))
- [2.3 支柱二:DIVL(价值裁判)](#2.3 支柱二:DIVL(价值裁判))
- [2.4 支柱三:QAM(策略提升引擎)](#2.4 支柱三:QAM(策略提升引擎))
- [2.5 支柱四:HIL 机制(反馈来源)](#2.5 支柱四:HIL 机制(反馈来源))
- [2.6 简化闭环](#2.6 简化闭环)
- [0x03 核心 & 发展脉络](#0x03 核心 & 发展脉络)
- [3.1 LWD 的基因图谱](#3.1 LWD 的基因图谱)
- [3.2 技术演进三部曲:SERL → HIL-SERL → LWD](#3.2 技术演进三部曲:SERL → HIL-SERL → LWD)
- [3.3 核心算法通俗解析](#3.3 核心算法通俗解析)
- [3.3.1 IQL:从录像里找高手动作](#3.3.1 IQL:从录像里找高手动作)
- [3.3.2 DIVL:画出带风险的活地图](#3.3.2 DIVL:画出带风险的活地图)
- [3.3.3 QAM:把地图变成身体能感受到的引力](#3.3.3 QAM:把地图变成身体能感受到的引力)
- [3.3.4 小结](#3.3.4 小结)
- [0x04 两阶段训练流水线](#0x04 两阶段训练流水线)
- [4.1 传统范式 vs LWD 范式](#4.1 传统范式 vs LWD 范式)
- [4.2 核心设计哲学:统一目标、差异适配](#4.2 核心设计哲学:统一目标、差异适配)
- [4.3 离线预训练](#4.3 离线预训练)
- [4.4 持续在线后训练](#4.4 持续在线后训练)
- [4.5 统一目标的意义](#4.5 统一目标的意义)
- [0x05 分布式 Actor-Learner 架构](#0x05 分布式 Actor-Learner 架构)
- [5.1 三层架构](#5.1 三层架构)
- [5.2 数据飞轮](#5.2 数据飞轮)
- [0x06 论文算法解读](#0x06 论文算法解读)
- [6.1 Algorithm 1:Offline-to-Online 训练流水线](#6.1 Algorithm 1:Offline-to-Online 训练流水线)
- [6.2 Algorithm 2:DIVL & QAM](#6.2 Algorithm 2:DIVL & QAM)
- [0x07 LWD vs RECAP:两种技术路线的对比](#0x07 LWD vs RECAP:两种技术路线的对比)
- [7.1 学习哲学](#7.1 学习哲学)
- [7.2 信号类型](#7.2 信号类型)
- [7.3 Online 形态](#7.3 Online 形态)
- [0x08 为什么 LWD 能胜任长程任务](#0x08 为什么 LWD 能胜任长程任务)
- [8.1 多步 TD:将远端奖励"倒流"回历史](#8.1 多步 TD:将远端奖励"倒流"回历史)
- [8.2 DIVL:隐式代价过滤与抗漂移](#8.2 DIVL:隐式代价过滤与抗漂移)
- [8.3 QAM:连贯动作中的持续修正力](#8.3 QAM:连贯动作中的持续修正力)
- [8.4 干预-学习闭环:将长尾障碍转化为学习机会](#8.4 干预-学习闭环:将长尾障碍转化为学习机会)
- [0x09 总结:范式转移](#0x09 总结:范式转移)
- [0xFF 参考](#0xFF 参考)
0x00 概要
具身智能正处于从"实验室演示"向"大规模工业部署"跨越的关键节点。LWD(Learning while Deploying)的核心主张是:机器人在真实世界中干活的同时,后台云端在持续更新其大脑------传统"训练→部署→冻结"的范式被彻底打破,取而代之的是一个"部署→学习→再部署"的持续进化闭环。
本文重点梳理 / 推导 LWD 的问题背景、技术脉络、系统架构、核心算法 DIVL 与 QAM、人类在环机制,以及它与 RECAP 等路线的差异。
0x01 背景:为什么需要 LWD?
1.1 真实世界不是一个固定测试集
如果我们只看近几年的 VLA 模型,很容易形成一种直觉:只要把足够多的机器人数据喂给一个足够大的多模态模型,机器人就能获得广泛的通用能力。大规模离线数据确实让模型学会了看图像、理解指令、输出动作,也让机器人具备了初始的"开箱即用"能力。
但问题在于,真实世界部署并不是一个固定的测试分布。机器人一旦进入家庭、商店、工厂或仓库,就会不断遇到预训练数据没有覆盖的新物体、新布局、新用户偏好,以及大量偶发的失败模式。光线会变,物体会磨损,用户指令会不标准,地面摩擦力也可能和训练环境完全不同。离线数据再大,也很难穷尽这些长尾变化。
所以我们需要思考一个更本质的问题:机器人部署以后,能不能继续学习?
1.2 核心矛盾:通用策略如何从异质部署经验中学习
传统做法是"收集一批现场数据→回实验室重新训练→再部署新模型"。这条流程稳定但慢,它把真实世界经验当成下一轮离线训练的数据来源,而不是一个持续发生的学习过程。
LWD 要面对的数据场景远比传统 RL 复杂:
- 数据来源混杂:既有人类专家演示,也有机器人自主尝试,还有失败轨迹和人类干预轨迹
- 奖励非常稀疏:很多任务只有最终成功或失败的二元信号
- 数据质量参差不齐:同一个状态附近可能既有高质量动作,也有大量笨拙动作
- 策略模型是生成式的:VLA 策略常用 Flow Matching 或 Diffusion 生成动作,表达能力极强但 RL 优化极难
要解决这个挑战,本质上需要两类核心能力:会评价 和会改动作。前者从异质数据中学出可靠的 value/critic,后者把评价的改进方向稳定注入生成式动作模型。LWD 的设计正是把这两类能力分层解决:
- IQL 提供了第一类能力的基础------"只在数据支持集内学习"的离线 RL 稳定性保证
- DIVL 在 IQL 基础上引入分布式价值建模,适配真实部署中的多峰回报结构
- QAM 负责第二类能力------把价值函数的"高分方向"转化为生成式动作模型可学习的局部回归目标
0x02 系统架构:四大支柱
LWD 由四大支柱构成:SOP 类系统底座(工程)、DIVL(评价)、QAM(改进)、HIL(反馈)。四者构成了一个完整的闭环。
2.1 四大支柱总览
四大支柱的核心演进逻辑如下图所示。
- 肉体 (SOP): 借鉴 SERL 的分布式, 升级为支持 10-100 台机器人的云端工厂。
- 灵魂 (DIVL): 借鉴 IQL 的稳健, 加入分布式 (Distributional) 捕捉物理风险。
- 执行 (QAM): 借鉴控制理论的 Adjoint Method, 驯服不稳定的 Flow Matching 大模型。
- 养料 (HIL): 借鉴 HIL-SERL 的 SpaceMouse 干预, 转化为全自动的 Reward 信号。
2.2 支柱一:SOP 类系统底座(工程基础)
解决"工程落地"问题------如何支持成百上千台机器人的实时数据流转与模型秒级同步。
借鉴了 IMPALA 和 SeedRL 的 Actor-Learner 解耦思想,以及 SERL 的真机异步通信逻辑。LWD 在这基础上做了针对机器人场景的深度定制:
- Edge Actor 层(机器人端):每台机器人运行轻量级 Edge Client,加载最新策略执行自主 Rollout,在 Episode 边界上原子上传完整数据。完全异步,各机器人互不等待。
- Coordinator 层(编排中枢):唯一的有状态单点,但不传输模型权重或原始数据,仅管理"数据版本指针",降低成为系统瓶颈的风险。
- Cloud Learner 层(训练端):多主机 SPMD JAX 程序,每个进程实例化分布式 Replay Buffer Reader,通过跨主机屏障同步到同一快照版本。
2.3 支柱二:DIVL(价值裁判)
解决"分值评估"问题------从杂乱部署数据中学习稳健的 distributional value model。
DIVL 的核心机制会在专门文章中详述,这里聚焦它在 LWD 中的定位:DIVL 是 LWD 数据飞轮的"价值底座"。它通过保留价值分布结构,让 Critic 在异质 off-policy 数据中仍能给出稳健的 bootstrap target,避免了平均值掩盖罕见成功或掩盖灾难性风险的问题。
python
Step 1: 拟合价值分布
p_ψ(v|s) = P(v = Q_φ(s,a) | a~D) ← 交叉熵损失训练
201 categorical atoms [-0.1, 1.1]
Step 2: 提取 τ-分位数作为 bootstrap target
y_Q = r_t + γ^H · Quant_τ(V_ψ(s'))
自适应 τ:
H(s) = 归一化熵 of p_ψ(·|s) ∈ [0,1]
τ(s) = clip(τ_base - α·H(s), τ_min, τ_max)
分布集中(低熵) → 高 τ → 乐观 bootstrap
分布弥散(高熵) → 低 τ → 保守 bootstrap
Critic 训练: L_Q(φ) = E[(Q_φ(s,a) - y_Q)²] (clipped double-Q)
2.4 支柱三:QAM(策略提升引擎)
解决"策略提升"问题------把价值函数的改进方向稳定注入 flow-based VLA 策略。
QAM 的核心同样会在专门文章中详述。在 LWD 中,QAM 扮演的角色是:将 DIVL 训练好的 Critic 信号转化为 flow policy 每一步的局部回归目标。
python
QAM 核心流程:
◎ 固定参考流 f_β (BC 初始化后冻结)
◎ 用 f_β 生成参考流轨迹: a_0 ~ N(0,I) → a_w → a_1
◎ 在终点 a_1 计算 Critic 梯度: g̃_1 = -∇_a [Q_φ(s, a_1) / λ]
◎ 解伴随动力学 g̃_w (沿流路径向回传播)
◎ 回归目标: 让 f_θ 逼近 f_β + 局部修正量
L_QAM(θ) = E[∫₀¹ || 2f_δ/σ_w + σ_w·g̃_w ||² dw]
其中 f_δ = f_θ − f_β, σ_w = 2(1-w)w
2.5 支柱四:HIL 机制(反馈来源)
解决"真机 Reward 自动化"问题------把人类接管和纠偏纳入在线 replay。
借鉴了 HG-DAgger("人只在出错时接管"的交互范式)和 HIL-SERL("干预即负反馈"的 SpaceMouse 实现)。在 LWD 中,人类的每一次物理接管都被自动定义为强化学习的 on-policy correction 信号:
- 干预瞬间:被接管时自动标记负奖励(如 -1.0),告诉 DIVL "刚才那段自主策略是死路一条"
- 接管过程:人类带走的轨迹被标记为正样本(专家的补救)
- 数据飞轮效应:部署规模越大,错误覆盖越广,模型进化越快
2.6 简化闭环
python
机器人部署执行任务
↓
产生成功、失败、恢复、人类干预等真实经验
↓
SOP 类系统将数据上传到在线 replay buffer
↓
离线 buffer 与在线 buffer 混合采样
↓
DIVL 学习 replay 动作价值分布,提供稳健的 bootstrap target
↓
QAM 将 critic gradient 转换为 flow policy 的局部回归目标
↓
云端更新 VLA 策略,并异步下发给机器人车队
↓
机器人用新策略继续部署,产生更有信息量的数据
0x03 核心 & 发展脉络
3.1 LWD 的基因图谱
python
基因 1: 大规模预训练通用策略
GPT/LLM 预训练 → RT-2/Octo/OpenVLA → LWD 的 Generalist Policy
范式迁移:语言模型 "预训练→微调" → 机器人策略 "预训练→在线微调"
基因 2: Offline-to-Online RL
CQL/IQL/AWAC (离线RL) → SERL (离线→在线) → LWD 的在线微调引擎 (大规模舰队版离线→在线)
基因 3: 分布式/舰队级机器人学习
Cloud Robotics(分布式计算) → RT-X(多机器人数据/跨机构数据共享) → LWD 的 Fleet-Scale 架构(持续在线数据收集+训练)
基因 4: 持续学习 / 终身学习
EWC/PackNet(持续学习基础) → Multi-Task RL(多任务RL) → LWD 的遗忘防护机制(大规模在线持续学习)
基因 5: 安全部署
Safe RL(约束优化) → A/B Testing(软件工程) → LWD 的渐进式安全部署流水线(仿真>影子>灰度>全量)
基因 6: 数据工程
Active Learning(主动采样) → Data Filtering(数据清洗) → LWD 的数据质量管理(大规模在线数据过滤与优先级采样)
3.2 技术演进三部曲:SERL → HIL-SERL → LWD
LWD 不是凭空出现的。把它放在 SERL → HIL-SERL → LWD 这条线路上看,逻辑非常清晰:
| 维度 | SERL | HIL-SERL | LWD |
|---|---|---|---|
| 核心定位 | 基础版真机 RL | 人类在环真机 RL | 车队级通用策略 RL |
| 解决的问题 | 真机 RL 采样慢、奖励函数难写 | 纯自主探索效率低 | 部署后无法持续进化 |
| 机器人数量 | 1 台 | 1 台 | N 台(舰队) |
| 任务数量 | 单任务 | 单任务 | 多任务(通用) |
| 人类参与 | 仅数据采集 | 实时纠正 | 仅数据采集(干预) |
| 学习持续性 | 一次性训练 | 一次性训练 | 持续迭代 |
| 策略类型 | 任务特定 MLP | 任务特定 MLP | 通用 VLA 模型 |
| 奖励判定 | 图像分类器(成功 / 失败) | 图像分类器 + 人类干预信号 | DIVL(分布式价值学习) |
| 主要数据源 | 专家演示 + 机器人自主碰撞 | 专家演示 + 人类实时纠偏 | 部署过程中的海量用户干预 |
| 数据规模 | ~25条演示 | ~25条+纠正 | 海量在线数据 |
| 模型能力 | 专才(一个模型学一件事) | 精英专才(一个模型学一件难事) | 通用通才(一个模型学万件事) |
| 训练环境 | 固定实验室环境 | 固定实验室 / 工作站 | 非结构化的真实物理世界 |
| 核心贡献 | 样本效率 | 精度提升 | 规模化+通用 |
备注:其实,此处应该有SOP,但因为没有其源码,所以SOP的功能被融合到LWD中。
演进路径
这三个框架构成了从 "实验室研究" 到 "工业化通用智能" 的完整演进路径。
python
━━━━━━━━━━━━━━━━━━━━━━━━ SERL ━━━━━━━━━━━━━━━━━━━━━━━━
单机 + 少量专家数据 + 在线微调
重点:样本效率 (25条演示 → 数百次在线交互收敛)
范围:单任务、单机器人
| + 人类辅助
v
━━━━━━━━━━━━━━━━━━━━━━━━ HIL-SERL ━━━━━━━━━━━━━━━━━━━━━━━━
SERL + 人类实时纠正( Human-in-the-Loop)
重点:高精度任务 (人类纠正解决策略自主探索中的失败)
范围:单任务、单机器人 + 人类辅助
| + 扩展规模 + 通用性
v
━━━━━━━━━━━━━━━━━━━━━━━━ LWD ━━━━━━━━━━━━━━━━━━━━━━━━
舰队规模 + 通用策略 + 持续在线学习
重点:规模化(Fleet-Scale) + 通用性(Generalist) + 持续性(Continuous)
范围:多任务、多机器人、持续部署与学习
━━━━━━━━━━━━━━━━━━━━━━━━ 关键差异 ━━━━━━━━━━━━━━━━━━━━━━━━
• SERL: "如何用最少的数据让一台机器人学会一个任务"
• HIL-SERL: "如何让人类帮助机器人学会高精度任务"
• LWD: "如何让一个机器人舰队在部署中持续变强,同时保持通用性"
演化定位
通俗讲解
我们可以用一个通俗的类比理解这个演进:
SERL(打地基)------给小狗配了一个"超强大脑"(云端服务器)。小狗在院子里跑(Actor),大脑在屋里拼命学习(Learner)。小狗跑一秒钟,大脑能复习 20 遍。小狗学会基本功的速度变快了。
HIL-SERL(找教练)------给每只小狗配了一个"人类师傅"。师傅拿着手柄(SpaceMouse),只要小狗要撞墙就轻轻拉一下。这种"拉拽"信号让小狗瞬间明白"刚才我干错了,师傅带我走的那段才是对的",能学翻煎蛋这种精细活儿了。
LWD(大变身)------把一万只小狗派往世界各地。无论小狗在上海还是纽约,只要它被师傅拉了一下,这个经验会瞬间传到云端。云端更新了知识,天下所有小狗都学会了避开那个坑。
从这个角度看,LWD 的本质升级有三点:
- 从单任务到通用策略。 它不是为每个任务训练一个专用策略,而是在同一个 VLA 策略上做后训练。
- 从实验室交互到真实部署。 数据来自部署过程中的真实机器人,而不是受控实验室里的单一任务。
- 从人工标注到干预驱动。 人类干预不只是演示数据,而是强化学习信号的一部分。
3.3 核心算法通俗解析
LWD 的难点不是单纯"多训练一点数据",而是如何让通用 VLA 策略在真实部署中持续吸收杂乱经验。为此,它需要两类能力:会评价 & 会改动作。
LWD 的算法核心,是把"会评价"和"会改动作"分开解决。IQL & DIVL 负责"会评价",这就是 LWD 背后算法组合的核心逻辑,是 LWD 能够从"看录像学动作"走向"在部署中持续进化"的算法关键。
我们用一个完整比喻把IQL、DIVL 和 QAM串起来。
想象机器人正在通过录像来学习滑冰。滑冰动作必须连续、平滑,不能一顿一顿。场地上有很多障碍,也有很多通向高分的路线。
3.3.1 IQL:从录像里找高手动作
IQL 像一个教练,手里有一堆录像。有些人滑得很好,有些人总摔倒。
IQL 不会让学徒去尝试录像里没有出现过的危险动作。它只在录像中寻找:在这个位置,曾经有人滑得最好是什么样?然后让学徒更像这些高分动作。
3.3.2 DIVL:画出带风险的活地图
DIVL 不只是看"哪里得分高",还会看"哪里风险大"。
它会发现:
- 有些路线平均分高,但有概率撞墙;
- 有些路线很少出现,但一旦出现就稳定高分;
- 有些成功只是偶然,不值得过度相信。
所以 DIVL 画出的不是一张普通地图,而是一张带概率分布和风险提示的活地图。
3.3.3 QAM:把地图变成身体能感受到的引力
有了地图还不够。机器人还要知道身体怎么动。需要让机器人的动作流丝滑地 "滑" 进那些 "高分区域"。
QAM 做的事,就是把 DIVL / critic 给出的价值坡度,转化成动作生成过程中每一步的"引力"。机器人不是机械地选择"左还是右",而是在生成动作的连续流中,逐步被拉向高价值方向。
3.3.4 小结
机器人就像一个 "带着财富地图的滑冰冠军", 它在训练时,大脑里实时更新着发财 (成功) 的机会,身体则顺着这些机会,划出一道道丝滑无比的动作路径。这就叫 LWD (部署即学习) !
这种 "裁判划重点、学徒改动作" 的完美分工,正是 LWD 能够在真机环境下实现分钟级长程任务且动作不抖动,每一秒都保持最优的动作输出的数学奥秘。
0x04 两阶段训练流水线
LWD 的流水线设计解决了离线 RL 中一个经典困境:离线数据丰富但不够好,在线交互好但成本高。
4.1 传统范式 vs LWD 范式
对于LWD来说,部署不是学习的终点, 而是学习的持续数据来源
python
传统范式 (Train → Deploy → Freeze):
[离线训练] → [部署上线] → [策略冻结(固定不变)]
部署后策略不再改进
新数据被浪费
环境变化时性能退化
LWD 范式 (Deploy ↔ Learn, Continuously):
[预训练(通用策略)] → [部署 ↔学习 ↔部署 ↔学习 ↔...(持续循环)]
每次部署都在收集数据
每次学习都改进下一次部署
舰队规模并行加速
我们给出LWD的总体架构如下:
4.2 核心设计哲学:统一目标、差异适配
传统 Offline-to-Online RL 方案通常离线和在线使用不同的损失函数(离线用 BC/IQL,在线用 SAC/PPO)。这导致切换时价值尺度不匹配、策略震荡,严重时让预训练成果被完全破坏。
LWD 的创新在于:让两个阶段共享完全相同的 DIVL + QAM 优化目标,仅在数据来源、TD 备份长度和策略同步上做针对性适配:
| 维度 | 离线预训练 | 持续在线后训练 |
|---|---|---|
| 数据来源 | 混合静态数据集 | 50% 离线 + 50% 在线 |
| TD 备份长度 | n-step chunk-level(n=10) | 1-step |
| 策略同步 | ------ | 每 50 步同步一次 |
| τ_base | 0.6(保守) | 0.9(乐观) |
具体而言,离线阶段用 DIVL Loss + QAM Loss,在线阶段仍然用 DIVL Loss + QAM Loss。不存在"离线用 BC/IQL,在线用 SAC/PPO"的目标切换。这意味着:
- 价值尺度一致:Q 网络和 V 网络的数值范围在切换前后不发生突变,在线阶段不需要重新适应新的损失函数尺度
- 策略行为连续:Actor 的优化信号始终来自 QAM,不会因为损失函数切换而产生策略震荡
- 训练曲线平滑:离线预训练结束时 loss 的收敛状态,就是在线阶段开始的起点,没有跳变
4.3 离线预训练
离线预训练的目标是:从静态数据集中学习一个具备基础行为能力的策略,同时构建可靠的价值函数。
数据集构成 如下,这组数据配比体现了 LWD 的一个核心认知:仅有成功演示是不够的。演示轨迹覆盖的仅仅是"理想情况"下的状态空间,而 RL 策略在部署时会遇到各种偏离理想路径的情况。Rollout 数据告诉 Critic "哪些状态会导致失败",Play 数据则进一步告诉 Critic "如果偏离了路径,哪些修正动作是有价值的"。三者结合,才能构建一个覆盖充分的状态-动作空间。
| 数据类型 | 占比 | 内容描述 | 在 RL 中的作用 |
|---|---|---|---|
| Demonstrations | 51.6% | 人类专家收集的成功轨迹 | 高质量行为先验,初始化 Flow 策略 |
| Rollouts | 19.6% | 历史策略执行的轨迹(含成功与失败) | 提供状态覆盖,让 Critic 学习到失败状态的低价值 |
| Play Data | 28.8% | 人类主动探索边缘情况的轨迹 | 填补分布空白,提供"部分恢复"和"纠错"的关键信号 |
n-step chunk-level TD:对于长视距任务(如 USB 插入需 200 步),单步 TD 的信息传播速度太慢。LWD 将动作序列切割成 chunk(H=10),在 chunk 级别做 n-step TD:
\y_Q = \\sum_{i=0}\^{n-1} \\gamma\^{iH} \\mathbf{r}_{t+iH} + \\gamma\^{nH} \\text{Quant}_\\tau(V_\\psi(s_{t+nH})) \\
n=10 时,单次更新可以"看到"未来 100 步的奖励信号,极大缓解了稀疏奖励难题。
4.4 持续在线后训练
在线阶段有两个关键变化:
数据混合:新采集的自主交互和人类干预数据,与离线数据以 50:50 混合回放。离线数据提供稳定性和先验(防止遗忘),在线数据提供新的覆盖和改进信号。
切换到 1-step TD:原因是人类干预带来数据偏差。一个典型的场景是:策略到第 30 步走偏,人类在第 35 步介入纠正,最终在第 50 步成功。n-step TD 会跨越干预边界,将人类干预后的高奖励归因于干预前的策略动作。1-step TD 天然避免这个问题------每次更新只看相邻两步转移,不关心"行为切换点"。
4.5 统一目标的意义
两个阶段共用 DIVL + QAM,保证:
- 价值尺度一致:Q 和 V 的数值范围在切换前后不突变
- 策略行为连续:Actor 的优化信号始终来自 QAM
- 训练曲线平滑:离线收敛点就是在线起点,没有跳变
这种设计的最终效果是:离线预训练提供了一个"够用"的起点,在线后训练则在此基础上持续打磨------而整个过程没有传统 Offline-to-Online RL 中常见的"断裂感",更像是一个无缝的连续学习过程。
python
--------------------- Stage 1: 通用策略预训练 (Generalist Policy Pre-training) ---------------
大规模离线数据 (多任务、多机器人、多场景)
|
v
VLA 模型预训练
|
v
通用初始策略 π_θ (Vision-Language-Action) (能执行多种任务)
|
v
------------------------------------------------ Stage 2:LWD 核心循环: 部署 ↔ 学习 (持续进行) ------------------------------
机器人舰队 (Robot Fleet)
Robot 1 执行 π_θ 收集数据
Robot 2 执行 π_θ 收集数据
Robot 3 ... Robot N 执行 π_θ 收集数据
|
v
数据中心 (Central Data Infrastructure)
· D_pretrain (预训练数据)
· D_online (在线新数据)
· 数据质量过滤/筛选
· 数据版本管理/追踪
|
v
在线 RL 训练引擎 (Online RL Training Engine)
策略更新: π_θ ← Update(π_θ, D_pretrain ∪ D_online, Reward)
· 在线RL算法 (SAC/PPO + 通用策略微调)
· 离线-在线混合训练
· 持续学习约束 (防止灾难性遗忘)
· 安全约束 (策略更新幅度限制)
| 更新后的策略 π_θ
v
重新部署到舰队 --------→ 回到舰队执行 (循环)
0x05 分布式 Actor-Learner 架构
LWD 的 Actor-Learner 分离式系统架构使"边部署边学习"在工程上成为可能。
5.1 三层架构
整个系统由三层组成,各层独立扩展:
- Edge Actor 层(机器人端)
- 每台机器人运行一个轻量级 Edge Client。
- 职责:加载最新策略 → 执行自主 Rollout → 累积帧级观测 → 在 Episode 边界原子上传完整数据 → 发布事件通知。
- 特点:完全异步。各机器人互不等待,快慢不一,故障不影响其他节点。
- Coordinator 层(编排中枢)
- 唯一的有状态单点,但设计为轻量级元数据管理器。
- 职责:消费消息队列中的事件通知 → 拉取 Episode 元数据 → 提交单调递增的版本化快照。
- 关键设计:Coordinator 不传输模型权重或原始数据,仅管理"数据版本指针"。这使其成为系统瓶颈的风险降至最低。
- Cloud Learner 层(训练端)
- 多主机 SPMD JAX 程序,每个节点驱动本地加速器集群。
- 每个进程实例化一个 Distributed Replay Buffer Reader,通过跨主机屏障同步到同一快照版本。
- 每个节点启动独立的 Prefetcher 子进程,并行从对象存储下载 Payload,饱和利用网络带宽。
python
Robot 1, Robot 2, ..., Robot 16
|
v
Edge Client (上传完整 episode)
|
v
Object Storage (原子写入)
| 事件通知
v
Message Queue (持久化)
|
v
Coordinator (版本化快照管理)
| 版本化快照
v
┌─────────────────────────────────────────┐
│ Cloud Learner (多主机 SPMD JAX) │
│ DRB Reader 1 + Prefetcher │
│ DRB Reader 2 + Prefetcher │
│ ... │
│ | cross-host barrier (全局一致快照) │
│ v │
│ 训练: DIVL + QAM │
│ 每 50 步广播新策略 │
└─────────────────────────────────────────┘
| 新模型权重
v
Pub-Sub Channel → Fan-out 到所有 Robot Actor
核心优势:Actor 和 Learner 完全解耦。增加机器人数量只需扩展 Edge 层;提升训练算力只需扩展 Cloud 层。Coordinator 负载仅与 Episode 频率相关,与数据量无关。
5.2 数据飞轮
LWD 的本质是构建一个"部署时持续改进"的闭环系统:
- DIVL 稳住价值学习:面对混合质量数据,通过保留价值分布结构,不被平均值和 OOD 过估计误导
- QAM 稳住策略更新:通过伴随匹配,让 flow-based VLA 策略稳定吸收价值梯度
- 两者目标统一:离线和在线训练通过 replay + TD + policy extraction 的统一逻辑进行
这个飞轮一旦启动就会自我加速------机器人越部署,数据越多;数据越多,价值函数越准;价值函数越准,QAM 策略改进方向越可靠;新策略再部署后,又产生更有信息量的数据。
0x06 论文算法解读
论文的两个算法各有侧重:Algorithm 1 是"数据飞轮的钢架子", 它保证了数据能跑起来, 飞轮能转起来。Algorithm 2 是"飞轮中心的超级马达", 它保证了每一次转动, 都能产生真正的智慧。
6.1 Algorithm 1:Offline-to-Online 训练流水线
Algorithm 1解决"系统工程"问题------如何管理一个机器人车队,在现实部署中通过人类干预收集数据并同步更新云端大脑。
算法的逐行解读如下:
| 行号 | 技术行 (逻辑描述) | 深度技术拆解 | 通俗解释 |
|---|---|---|---|
| 准备阶段 | 定义了所需的离线缓冲区、在线缓冲区、机器人执行端集群,以及各项训练周期和同步频率的参数 | ||
| 1-3 | Input & Init | 用专家演示数据对策略网络进行纯粹的模仿学习预训练;将预训练模型锁定为一个不可变的参考策略,并初始化价值网络Critic和目标网络 | 准备好最初的录像资料, 在云端建一个超级大的录像厅。 |
| 离线预训练 | |||
| 4-7 | Robot Init | 循环调用核心学习引擎 LEARNER(Algorithm 2),让策略网络和价值网络初步掌握"什么动作是高价值的" | 给全世界的小狗 (机器人) 都穿上统一的滑板鞋。 |
| 持续在线训练 | 异步执行Robot actor process | ||
| 8 | Launch Processes | 启动若干个机器人执行进程 (Actor)。(同时启动云端学习进程 (Learner)) | 比赛开始! 后台电脑和前线小狗同步行动, 互不耽误。 |
| 10-11 | Actor Loop Start | 机器人开始单次任务的执行循环 | 前线士兵: 小狗看一眼路况, 听一下主人的命令。 |
| 12 | Action & Env | 根据当前大脑输出动作来执行, 观察环境反馈。 | 按照现在的本事跑一步, 看看有没有拿到奖励。 |
| 13-15 | Intervention Check | 核心逻辑: 实时检测是否有来自人类的干预信号。 | 关键时刻: 看看主人有没有伸手拉你一下。 |
| 16-20 | Update Obs | 执行动作后更新观测状态,直到任务超时、失败或成功 | 挨骂学习: 只要主人拉了你, 就说明刚才走错了, 主人带你走的那段才是对的。 |
| 21-22 | Update Reward | 打包成Chunked级别的奖励 。将这段新经历塞入在线缓冲区 | 日常积累: 没出乱子就正常记录下这段干预。 |
| 23 | Weight Pull | 每一轮任务结束后, 机器人从云端拉取最新的"大脑"权重。 | 回店升级: 跑完一圈, 从小狗网络里下载最新的"聪明补丁"。 |
| 持续在线训练 | 异步执行Learner process | ||
| 25 | Learner Loop Start | 云端 Learner 进入无限循环, 负责消化海量回传数据。 | 后方将军: 云端电脑一直在翻看全天下小狗传回来的录像。 |
| 26-27 | Update Step | 从混合了离线和在线数据的池子中采用,调用 Algorithm 2 进行一次 DIVL 和 QAM 的联合更新。 | 大脑升级: 拿出一段录像, 调用"升级指令"(算法2) 把大脑变聪明。 |
| 28-32 | Broadcast | 达到同步周期(每隔一定的训练步数)后, 将最新的策略权重发布回云端供 Actor 下载。 | 全军同步: 让全天下的小狗瞬间都能同步这个新本事。 |
6.2 Algorithm 2:DIVL & QAM
算法2 解决"算法执行"问题------在后台分析录像,把大脑变聪明。具体机制将在 DIVL 和 QAM 的专门文章中详细展开,这里仅做通俗串联:
- DIVL(超级分析师):哪怕录像中小狗摔倒了,在摔倒前那半秒钟的扭动是非常天才的------DIVL能从烂录像里提纯。
- QAM(动作调音师):发现天才动作后,立刻给小狗的肌肉记忆(向量场)加一股引力,让每一步都感受到通往成功的"劲儿"。
两者的配合就像接力赛:Actor 在工厂搬零件→手滑了→人类拉了一把(HIL)→数据传输到云端→DIVL 算出这一瞬间正确的价值分布→QAM 生成新的引力方向→推送"防手滑补丁"到全球所有机器人。
0x07 LWD vs RECAP:两种技术路线的对比
RECAP(来自 π*0.6)是理解 LWD 时一个重要的对照组。
7.1 学习哲学
RECAP:用 advantage / improvement indicator 把经验分为"好"和"坏",让 VLA 在 positive 条件下模仿好的经验。强化学习是用来从现有经验中提取最好的动作。
LWD:直接学习价值函数,把 critic 的动作梯度通过 QAM 转化为 flow policy 的局部回归目标。强化学习是一个持续的过程------部署本身就是训练。
所以,RECAP 更像"用 RL 选数据,再做条件模仿学习";LWD 更像"用 RL 的 value gradient 直接推动策略改进"。
7.2 信号类型
| 维度 | RECAP | LWD |
|---|---|---|
| 改进信号 | 二值 improvement indicator / advantage 条件 | 连续 critic action gradient |
| 策略更新 | Advantage-conditioned imitation / MLE | Adjoint Matching 回归目标 |
| 优势 | 稳定、易训练 | 能利用连续方向信息,适合 flow policy |
| 信号更像 | 分类标签 | 局部方向场 |
RECAP 像老师拿出一张卷子说:"这张是优秀答案,请按这种风格写。"LWD 像老师握着学生的笔说:"这一笔往左偏一点,分数会更高。"
7.3 Online 形态
RECAP 更接近 iterative offline RL:收集一批数据→训练 value→计算 advantage→训练 actor→再部署。算法上仍然有明显的"打标---再训练"阶段。
LWD 的 online 形态更直接:在线 buffer 持续增长→mixed replay 持续训练 value/critic/policy→checkpoint 周期性下发。整个过程是流式衔接的------新数据实时改变 Value 函数的梯度,并通过 QAM 实时影响 Actor。
不过这里要避免过度表述。LWD 不是毫秒级实时学习,而是 episode 级数据回流、云端持续训练、checkpoint 异步再部署。它的"在线"是在线后训练意义上的 online,而非控制闭环里每个 timestep 都更新模型。
0x08 为什么 LWD 能胜任长程任务
论文中的长程任务不是泛泛而谈,而是具体包括 Brew Gongfu Tea、Make Fruit Juice 等 3--5 分钟级任务。这类任务容易受到 compensating errors 的影响------前面一个小偏差在后续步骤中不断放大。LWD 之所以能在分钟级任务上保持高性能,靠的是四个关键机制:
8.1 多步 TD:将远端奖励"倒流"回历史
传统模仿学习(BC)本质上是"近视"的------它只学习当前状态下动作的相似度,无法理解当前动作对遥远未来的贡献。LWD 通过 Multi-step TD,即使奖励在几分钟后的终点才出现,也能通过 Bellman 方程将这个"远在天边"的奖励信号倒流回溯到几分钟前的每一个动作上。机器人不再是机械地模仿手势,而是在每一刻计算:"我现在这个姿势,对 3 分钟后任务的成功有多大贡献?"
8.2 DIVL:隐式代价过滤与抗漂移
DIVL 学习的是分布而非单一标量,它能区分出"轻微偏差但仍在成功路径上"和"致命偏离"两种情况。即使前 2 分钟有细微偏差,DIVL 也能判断出当前是否依然处在"通往成功"的概率区间内,而不是像普通模型那样因为一点偏差就彻底"懵掉"。
8.3 QAM:连贯动作中的持续修正力
QAM 在保持 Flow Policy 极高流畅性的同时,给动作注入了"修正引力"。由于模型在每一帧都在向着"价值更高"的方向(Q-gradient)微调,这种连续不断的微调形成了一种强大的闭环纠偏能力,防止误差随时间发散。
8.4 干预-学习闭环:将长尾障碍转化为学习机会
长程任务存在大量长尾障碍(突然有人走过、突然没拿稳)。在 LWD 架构下,人类每一次干预都被自动标记为"低价值路径"的终点和"高价值修正"的起点。模型不需要从头学习 5 分钟的任务,只需要针对那几秒钟的"失败关键点"进行强化学习。通过全车队的数据聚合,模型迅速覆盖了所有潜在失败点。
0x09 总结:范式转移
LWD 的重要性不在于它提出了某一个孤立技巧,而在于它把几个关键认知放进了同一个闭环:
- 真实世界经验是持续产生的,而不是一次性采完的
- 机器人部署数据是异质的,必须用强化学习而不仅是模仿学习来吸收
- 人类干预不是低效成本,而是高信息量的在线部署经验
- 车队规模不是简单堆机器,而是让经验共享形成数据飞轮
这代表了一种范式转移:过去机器人更像出厂即定型的设备,而 LWD 描绘的机器人更像一个会在现实中犯错、纠偏、共享经验并持续变强的具身智能系统。
一句话概括 LWD:部署本身就是最好的训练。机器人不应该在学会所有本领后才出门,而应该带着初始的通用能力进入现场,在实际干活的过程中,利用现场的反馈(包括人类的干预)进行实时微调。
0xFF 参考
论文解读:Learning while Deploying (LWD)------ 面向通用机器人策略的集群级强化学习框架