🎳 论文原文 · RL-100(arXiv 2025,v4 2026-03;据项目主页已被 Science Robotics 接收)
🌐 项目主页 · lei-kun.github.io/RL-100
💻 代码仓库 · github.com/Lei-Kun/RL-100
真实的机器人操作,有一个绕不开的坎:强化学习要在真机上做。模拟器可以廉价地重来一万次,真机不行——一个回合几秒到几分钟,一次失败可能撞坏夹爪、碰翻杯子,reset 还要人来动手。所以过去几年社区的主流选择是绕开它:要么在仿真里把 RL 练好再 sim-to-real,要么干脆放弃 RL,用海量遥操作数据把模仿学习堆到极致(VLA 路线)。
RL-100 (Lei 等 2025年) 是少数正面刚这条路的作品。作者来自上海期智研究院、清华、上交、港大等机构,通讯作者是徐华泽——团队此前的 Uni-O4、H3DP 都集中在扩散策略与离线 RL 这条线上,这篇算是把两条线在真机上合流了。他们以扩散视觉运动策略为底座,用一套统一的 PPO 式目标跑完”模仿预训练 → 迭代离线 RL → 在线 RL 微调”三段式,最后用一致性蒸馏压出单步控制器。结果是一个很硬核的数字:八个真实机器人任务,1000/1000 次成功,其中单任务最高 250 连中;换表面、换干扰物、被人伸手打断,平均还能保持 90%–96% 的成功率;榨汁机器人在商场零故障连续服务了约七小时。
100% 听起来像是精心挑选的任务。但真正值得读的不是结果数字,而是它怎么把 RL 安全地放进真机——尤其是那个”保守到近乎单调改进”的离线阶段。
三个舞台,一套损失
RL-100 的训练是一条三阶段流水线,分工非常明确。
第一层:模仿学习(IL)打底。先用人类遥操作数据把扩散策略训出来。扩散策略的好处是能表达人类演示里的多模态行为,而且探索被约束在物理上合理的动作流形里——不会一上来就乱撞。但 IL 只拟合演示分布,不直接优化部署指标(成功率、耗时、抗扰),稀有的失败模式消除不掉。纯 IL 基线 DP3(点云)均值 67.8%,RGB 版 DP-2D 只有 45.3%。
第二层:迭代离线 RL 收割主要增益。对固定演示集只做一次离线 RL 是不够的,RL-100 把”保守改进”和”数据扩张”交替循环:在数据集上训 IQL critic 与转移模型 → 用离线 RL 更新策略 → 把新策略 rollout 的数据并入数据集 → 在扩张后的数据上重训 IL。这是一个数据飞轮:更好的策略产出更高质量的数据,更高质量的数据又支撑出更好的策略。均值从 IL 的 67.8% 一路抬到 91.8%。
第三层:在线 RL 收官。离线结束后的策略已经很强,但还残留少量稀有失败。在线阶段用少量 on-policy 数据把这些残余失败消掉,把 90%+ 推到 100%。
关键之处在于:三个阶段共用同一个优化目标。这不是工程上的偷懒,而是方法上的核心。过去从离线切到在线时,目标函数一变,策略就容易掉坑(论文引用了 BPPO 和团队前作 Uni-O4 的思路)。RL-100 把 PPO 式的 clipped surrogate 目标从离线一直用到在线,切换的只是数据来源和优势估计方式,优化原语不变。
| 设计 | 针对的问题 |
|---|---|
| 三个舞台(IL / 迭代离线 RL / 在线 RL) | 真机 RL 样本昂贵,从头学不现实 |
| 统一 clipped PPO 目标贯穿离线与在线 | 目标切换导致策略掉坑、性能崩塌 |
| IQL 优势 + OPE 门(AM-Q) | 离线更新被过乐观估计带偏,性能断崖 |
| 数据飞轮(rollout 并入 → 重训 IL) | 固定演示集上离线 RL 增益有限 |
| 一致性蒸馏单步策略 | 多步去噪延迟约 100ms,达不到高频控制 |
给扩散策略做 RL:两级 MDP
把 PPO 搬到扩散策略上,真正的技术难点在这里。扩散策略生成一个动作要跑 K 步去噪;如果只在最终动作上做 RL,credit assignment 太弱——哪一步去噪该为最后的成败负责?
RL-100 的做法是把去噪过程建模成两级 MDP。环境层是标准的 MDP:观测 → 动作 → 奖励 → 下一观测;但每个”动作”内部,K 步去噪本身是一个去噪子 MDP——每一步去噪都是一个子策略,从纯噪声出发,逐步往干净动作走。两级之间通过共享优势连接:把环境层的优势 A_t 平均地分给生成这个动作的 K 个去噪步。这样每一步去噪都能拿到学习信号,同时与环境奖励保持一致。
在这个两级 MDP 上,PPO 的 clipped surrogate 目标逐去噪步应用:
\mathcal{L}_{\mathrm{RL}}=-\mathbb{E}\left[\min\left(\frac{\pi(a^{\tau_{k+1}}\mid s^{\tau_k})}{\pi_{\mathrm{beh}}(a^{\tau_{k+1}}\mid s^{\tau_k})}\,A_t,\ \operatorname{clip}\!\left(\frac{\pi(\cdot)}{\pi_{\mathrm{beh}}(\cdot)},\,1\pm\epsilon\right)A_t\right)\right]
分子是候选策略,分母是当前行为策略。关键区别在优势怎么算——离线阶段和在线阶段用的是两种完全不同的优势估计。
离线:保守到近乎单调
离线阶段的优势是 IQL 风格的:
A_t^{\mathrm{off}}=Q_\psi(s_t,a_t)-V_\psi(s_t)
critic 在离线数据集上按 IQL 训练,这种优势估计以保守著称。但论文最有趣的设计不是这个,而是 OPE 门(offline policy evaluation gate)。
离线 RL 有个臭名昭著的陷阱:值函数在数据覆盖不足的地方会过乐观,照着这些不可靠的优势一路梯度上升,策略会突然崩掉。RL-100 的做法是给每次策略更新加一道闸门——每次内层更新产生一个候选策略 \pi 后不直接采用,而是先用 AM-Q(团队前作 Uni-O4 里提出的近似 model-Q 函数)在离线数据上评估它,只有当
\hat J_{\mathrm{AM\text{-}Q}}(\pi)-\hat J_{\mathrm{AM\text{-}Q}}(\pi_{\mathrm{beh}}) \ge \delta,\qquad \delta=0.05\,\big|\hat J_{\mathrm{AM\text{-}Q}}(\pi_{\mathrm{beh}})\big|
才接受这次更新并推进行为策略;否则拒绝,保持原样。这等于给离线 RL 装了一个”先验证再上车”的保险丝,让行为策略在内外循环之间近乎单调地改进——对真机来说这很关键,因为一旦策略崩坏,损失的不仅是性能,还有机器。
另一个容易忽略的细节:数据扩张之后,RL-100 会用 IL 重新训练扩散策略,而不是只做离线 RL。论文给出四个理由:适应分布漂移、用监督学习当正则器防灾难性遗忘、保住扩散策略的多模态表达能力、以及把人类演示和 RL 改进后的行为压缩进同一个可部署策略。离线阶段还冻结了 IL 训好的视觉编码器,只更新各模块的任务相关头。
在线:同一目标,换优势估计
在线阶段换用 GAE 优势:
A_t^{\mathrm{on}}=\mathrm{GAE}(\lambda,\gamma;R_t,V_\psi)
value 函数从离线 critic 热启动,在 on-policy buffer 上更新。同样地,A_t^{\mathrm{on}} 被共享到生成该动作的全部 K 个去噪步。整个三段式流程汇总成一个算法。
值得留意 RL-100 为稳定探索做的两个小设计。一是随机 DDIM 采样方差裁剪:把每一步去噪的标准差裁到 \sigma_k^{\mathrm{clip}}=\mathrm{clip}(\sigma_k,\sigma_{\min},\sigma_{\max}),限制行为策略的随机性——太紧(0.1)欠探索,完全不裁则震荡。二是预测参数化选 \epsilon-prediction 而非 x_0-prediction:RL 后训练时,噪声预测的方差放大效应反而变成”结构化探索”的资产,消融里这一项带来约 40 个百分点的差距。
高频:把 K 步去噪压成一步
训练再漂亮,部署延迟不达标也是白搭。多步扩散策略每次动作要跑 K 步去噪,延迟约 100ms;对动态任务(保龄球、推方块、倒水)来说,这个延迟就是反应速度的瓶颈。
RL-100 在离线与在线 RL 训练的同时,联合训练一个一致性模型(CM),把 K 步去噪蒸馏成单步映射:噪声 → 动作,一步到位。论文报告推理延迟从约 100ms 降到约 10ms,K\times 提速,而性能与 K 步 DDIM 基本持平(消融里两条学习曲线几乎重合)。于是系统频率瓶颈从”决策模型”变成了”相机帧率”(30Hz)。附录里给出一个更极端的对比:CM + Skip-Net 架构 378Hz / 3.9M 参数,而同口径的 DPPO 只有 30Hz、DSRL 35Hz / 52.3M 参数;即使是大 U-Net(39.2M)经 CM 也能到 133Hz。
这里藏着一个很实用的工程智慧:用”蒸馏”而不是”换更快的模型”来买延迟。控制质量不变,只是把推理算力花在更少的前向过程上。
八项任务、三台机器人、不足一百小时
任务套件覆盖了机器人操作的几乎所有模态类别:刚体动力学(动态推方块、敏捷保龄球)、流体/颗粒(倒水)、柔性物体(双臂毛巾折叠、盒折叠)、精密装配(灵巧手拧螺丝)、多阶段空间操作(橙子榨汁的放置与残渣取出)。
| 任务 | 载体 | 控制模式 | 难点 |
|---|---|---|---|
| Dynamic Push-T | UR5 + 3D 打印末端 | 单步 | 高速闭环反应、在线扰动 |
| Agile Bowling | UR5 + 3D 打印末端 | 单步 | 高速释放时机、姿态精度 |
| Pouring | Franka + LeapHand | 单步 | 防洒、流速控制 |
| Dynamic Unscrewing | Franka + LeapHand | action chunk | 时变对准、扭矩调控 |
| Soft-towel Folding | xArm + Franka 双臂 | action chunk | 双臂协调、失败恢复 |
| Orange Juicing ×2 | 榨汁臂 + 橡胶夹爪 | action chunk | 力敏感柔性操作、空间泛化 |
| Box Folding | 双臂 | action chunk | 长程误差累积、折痕对齐 |
硬件是 UR5 / xArm / Franka 三套载体,配 LeapHand 灵巧手、Robotiq 夹爪与自制末端;感知用 RealSense L515 点云(DP3 式 3D 编码器,FPS 降采样到 512–1024 点)。遥操作采集也值得一提:三维灵巧任务用 Apple Vision Pro 手部追踪 + PyBullet IK,平面任务用游戏手柄。
数据预算是全篇最克制的地方。平均每个任务只需要约 115 条人类演示(约 1.8 小时),之后迭代离线 RL 补充约 566 次 rollout(6.5 小时)、在线 RL 补充约 434 次(5.6 小时)。八个任务合计,人类演示只有 804 条 / 12.5 小时——占不到 100 小时总预算的 13%,其余时间全是策略自采的 rollout(离线 3965 条 / 45.3 小时,在线 3037 条 / 39.5 小时)。这也顺便给了”RL-100”这个名字最合理的解读方向:要么是”100% 成功率”,要么是”不到 100 小时数据”——论文没有明说,两个都说得通。
结果:1000/1000 与它的构成
主表格沿着流水线展开,能看到每个阶段各自贡献了多少(数字为成功率 %,括号内为成功次数/总次数):
| 任务 | DP-2D | DP3 | 迭代离线 RL | 在线 RL (DDIM) | 在线 RL (CM) |
|---|---|---|---|---|---|
| Dynamic Push-T | 40 | 64 | 90 | 100 | 100 |
| Agile Bowling | 14 | 80 | 88 | 100 | 100 |
| Pouring | 42 | 48 | 92 | 100 | 100 |
| Soft-towel Folding | 46 | 68 | 94 | 100 | 100 (250/250) |
| Dynamic Unscrewing | 82 | 70 | 94 | 100 | 100 |
| Juicing – Placing | 78 | 88 | 94 | 100 (100/100) | 100 |
| Juicing – Removal | 48 | 76 | 86 | 100 | —* |
| Box Folding | 12 | 48 | 96 | 100 | 100 |
| 平均 | 45.3 | 67.8 | 91.8 | 100.0 | 100.0† |
* Juicing–Removal 因 IK 引起的位姿不连续 + 单步 CM 对噪声敏感,出于安全未用 CM 评估;† CM 均值按 7 个任务计算。
三个信息值得细看。
第一,离线 RL 才是真正的英雄。迭代离线阶段把均值从 67.8% 抬到 91.8%,是最大的一块增益;在线 RL 只负责把最后几个百分点补齐。论文专门指出最难的任务上离线 RL 的绝对增益最大:Box Folding +48 个点(48→96)、Pouring +44 个点(48→92)、Unscrewing +24 个点(70→94)。这印证了一个反直觉的结论——保守的、模型指导的策略改进,恰恰对长程、接触密集、错误会累积的任务最有效,因为这类任务里 naive 在线更新最容易崩。
第二,Box Folding 是最有说服力的案例。这是 v4 新增的长程双臂任务:折半刚性的盒子,小位姿误差会滚雪球成不可逆的错折。纯 IL 只有 12%(DP-2D)/ 48%(DP3),RL-100 一路做到 100%。对比之下,另一个极端是 Agile Bowling,DP3 已经有 80%,离线只涨到 88%——任务相对简单时,离线 RL 的边际增益反而小。
第三,“完美”只在名义条件上成立,泛化靠另一组实验撑住。零样本换表面/干扰物/容器平均 90%(Push-T 换表面 100%、Box Folding 未见形状与姿态 90%、倒水 90%、未见形状折叠 80%);少样本(1–3 小时微调)平均 86.7%;被人为扰动(拖拽、反向扭矩、推盒)平均 96%。也就是说,这 100% 不是过拟合一个固定台面,而是带一定分布外余量的。
效率也值得单独说,因为部署指标的优先级里它排第二。成功轨迹的步数:毛巾折叠 390→312(1.25×)、拧螺丝 361→280(1.29×)、Box Folding 1266→832(1.52×)。墙钟时间上,点云比 RGB 快 1.02–1.31×,CM 单步又比 DDIM 快 1.05–1.16×。对动态 Push-T 的吞吐量对比更直观:RL-100(DDIM)单位时间完成 20 次,采集演示的专家遥操作是 17 次(1.18×),新手 13 次(1.54×)。把失败回合也算进去,平均回合长度从 DP-2D 的 822 步压到 322 步(2.55×)——RL 不仅让策略更可靠,也让它在看不到希望时更快止损。人机对比上,桌上保龄球机器人 25/25 对人类的 14/25;商场榨汁七小时零故障是最有故事性的一条。
消融:每个旋钮都在起作用
附录的消融(Adroit door 任务)把每个设计决策都单独验证了一遍:
- 3D 点云 > 2D 图像:干净、接触密集的场景里,3D 能通过 ROI 裁剪干净地隔离任务相关结构(把手、接触面),信噪比高、credit assignment 容易。
- 噪声方差裁剪:\sigma_{\max}=0.8 是最优的稳定–性能折中;0.1 欠探索收敛更低,不裁剪则明显震荡。
- CM ≈ DDIM:单步一致性模型与 K 步 DDIM 学习曲线几乎重合,验证蒸馏没牺牲性能。
- Recon + VIB 联合更新编码器:去掉这两个正则化损失,稳定性和最终性能都下降;冻结编码器更差。联合做策略–表征适配能抑制表征漂移、提升样本效率。
- \epsilon-prediction 显著优于 x_0-prediction:约 40 个百分点的差距(~1.0 vs ~0.6)。这是对 DP3 等常见默认做法(x_0-prediction)一个很有意思的修正:RL 后训练时,噪声预测的方差放大反而成了优势。
仿真基准(MuJoCo locomotion、Adroit、Meta-World)里 RL-100 对比 DPPO、ReinFlow、DSRL,在 halfcheetah-medium-v2 上报了约 10,000 的回报(DPPO ~4,500、DSRL ~3,000),且 1–2M 步内收敛、方差更小。
它和前面读的几篇是什么关系
把 RL-100 放进这个博客已经读过的脉络里看,特别有意思。上一篇读的 Harness VLA 的核心主张是:别微调 VLA,冻结它,把可靠性交给外面的编排。再上一篇的 Embodied-R1 则是:用 RL 把 VLM 逼成能输出可验证”指点”的接口。RL-100 给的是第三条路:不绕开模型,直接在真机上用 RL 把模型本身练到可靠。
三条路其实是同一个问题(策略在分布外/长程任务上不可靠)的三种处方:改系统、改接口、改参数。RL-100 站在”改参数”这一端,但它和另外两条路并不冲突——论文自己在展望里就说了,要把 RL-100 的统一目标扩展到更大的多任务 VLA 模型上,用 RL 后训练对齐大 VLA 先验、同时保住零样本语义泛化。换句话说,VLA 负责”见过世面”,RL-100 负责”在自家任务上靠谱”——它们瞄准的是不同的性能维度。
另一个值得对照的是第一篇读的 Data Pyramid:数据金字塔讲的是”高质量数据 vs 海量数据”的分层复用。RL-100 用行动验证了其中一个侧面:13% 的人类演示 + 87% 的自采 rollout,足以在真机上逼近满分。人不是瓶颈,RL 自举才是。
但 RL-100 的代价也要说清楚。每个任务都有一整套任务特定工程:专门的遥操作协议(Vision Pro / 手柄)、逐任务的奖励定义(稀疏 +1、步数惩罚、动作抖动惩罚)、人工按键盘标奖励、人工 reset/recovery。论文自己承认 reset 与恢复仍然是实际瓶颈,计划研究学习式 reset、脚本化恢复、任务感知夹具。这在当下其实是真机 RL 的通病:RL-100 证明的是”算法层能扛住”,而”工程层有人伺候”这件事它还没能解决。
还有一处要留个心眼:所有”完美”数字都建立在人工监督的成功信号上。每个回合由操作员判定成功与否、按键盘给出 +1 或 0。这既是 RL-100 能跨任务复用的原因,也是它规模化时的天花板——当任务数量从八个涨到几百个,“每任务一个操作员盯着”的模式就很难维持了。这一点上,它和需要引导阶段人工检查的 Harness VLA 倒是有共同的隐形成本。
最后,名称本身。RL-100 的”100”论文没给定义,最合理的两种解释都成立:100% 成功率,或不到 100 小时的数据预算。不管哪个是正解,这个命名都透着真机 RL 特有的务实——不吹”通用”,只报”满了”。
局限与下一步
RL-100 的边界在论文里写得很诚实:目前的评估还没有覆盖杂乱多物体、遮挡、反光/透明材质、光照变化、非固定布局这些真正的”家/厂”场景;展望里提到的三件事——数据与模型规模的标度律、跨具身/跨任务迁移、把大 VLA 先验与统一目标对齐——都指向”从八个任务到通用”的下一步。
对机器人社区来说,RL-100 最大的价值或许不是那串 100,而是它示范了一个“可信的迭代流程”:模仿打底保证下限,OPE 门保证离线改进近乎单调,在线微调只做最后一公里,一致性蒸馏把 K 步的准确度折算成单步的速度。每一步都在回答同一个问题——怎么让 RL 在真机上既有效、又安全、还能部署。在一个 VLA 热词满天飞的时代,这篇论文提醒我们:模型之外,训练流程本身的工程可靠性,可能才是从 90% 到 100% 的那段最难的路。