VLA(Vision-Language-Action)模型已经可以“通用操作”,但最后一毫米(last millimeter)不行,比如动作变慢、需要反复试探、精细任务容易失败。
RL擅长优化关键细节,很容易得出用强化学习(RL)微调的解决方案。但是RL训练有个缺点: - RL训练大模型 → 很慢、很贵 - 小模型RL → 学得快但不聪明 怎么具备又能利用 VLA 的泛化能力,又具备 RL 的高效学习?
(1)从VLA中“抽取一个压缩表示”,也就是 RL token
(2)用小网络做RL 冻结VLA 训练:小 actor,小 critic 输入:RL token 和动作 输出:修正动作
模块 作用 VLA 提供理解 + 初始动作 RL token 提供状态表示 Actor-Critic 做局部优化
RLT的核心创新
创新1:RL Token(最关键) 👉 专门为RL设计的“压缩状态表示” 作用: 保留VLA知识 降低维度 提高sample efficiency
创新2:Action Chunk RL 👉 在“动作段”上做RL,而不是单步 好处: 缩短horizon 更容易学习
创新3:直接优化动作(不是残差) 👉 actor直接输出动作 而不是: residual noise
创新4:用VLA作为“参考策略” 两个关键点: (1)输入参考动作 RL不是盲猜 (2)加正则约束 不偏离VLA太远
本质改变 从: ❌ RL从头探索 变成: ✅ RL在“好策略附近微调”
RLT = 给RL一个“聪明的大脑接口”
Chunk级别RL让RL更“灵活”(更频繁调整)缩短时间尺度(horizon)
如果不用chunk: 50Hz × 10秒 = 500步 reward很难传回来 用chunk: 每次决策10步 horizon缩短10倍
为什么用 off-policy? 因为: 数据昂贵 必须重复利用
用一个“瓶颈结构”压缩VLA信息
Because the representation for the RL token must retain enough information to enable the decoder to reconstruct the inputs, it acts as a bottleneck.
RL token必须保留重要信息 否则: 重建不了 loss大 ✔ 同时又是低维的 👉 适合RL
在RL token基础上: 学一个小策略来“修正VLA动作”
拿起螺丝刀可能很容易,但快速且精准地对准小螺丝就难得多。想提高这个上限的话就得上RL了。
Reinforcement learning (RL) is a natural way to improve such tasks: by trying, observing outcomes, and adjusting, a robot can refine behaviors that are difficult to learn from demonstrations alone.
RLT 旨在提升那些需要细致操作的精细任务,通过几分钟或几小时的真实经验学习。
RLT adds a special output token that provides a compact interface between the VLA and a lightweight RL policy, allowing the robot to adapt its behavior in just a few hours without fine-tuning the full model.
实现方式:
We train the VLA to produce an "RL token" that can then provide a concise summary of the VLA's internal representations. This RL token is then used as the input into a much smaller model that can be trained with RL in real time.
The RL token is used by an actor and critic, which are trained with a sample-efficient off-policy RL method.
RL Token
- a concise summary of the VLA's internal representations
- 提供 VLA 内部表示的简明总结
RLT 首先通过添加一个编码器-解码器 Transformer 来改造 VLA。 这个模块通过一个瓶颈结构(bottleneck)来训练,使其能够预测模型的内部嵌入表示(internal embeddings),从而得到一种压缩表示,我们称之为 RL token。 这个 RL token 总结了强化学习中的 actor(策略) 和 critic(价值函数) 在当前观测下所需要的信息。 因此,即使使用非常小的 actor 和 critic 网络,也可以基于模型自身丰富的内部表示来进行学习和改进。
本质上是用大模型做感知,用小模型做决策。RLT = 用一个 bottleneck Transformer,把大模型的内部表示压缩成 RL token,让小型 RL 网络也能利用大模型的能力进行学习。
首先,RL 策略预测的是动作片段(action chunks),而不是每一步的低层控制动作。这与 VLA 的动作结构保持一致,使得策略能够学习到时间上连续的动作(temporal motions)。 其次,RL 策略不是从零开始决策: actor 会接收 VLA 预测的动作作为输入,因此它学的是“修改 VLA 的动作”,而不是完全替代它。 我们还在策略更新时加入一个正则项(regularization),让策略倾向于接近这个参考动作(VLA 的输出)。 这样一来: 当 VLA 已经表现不错时,策略不会偏离太远 只有当 critic 判断有更优解时,才会偏离 为了防止训练初期策略直接抄 VLA,我们引入了 reference-action dropout: 👉 随机丢掉参考动作输入,强制 actor 学会独立生成动作 最后,我们还可以把人类干预(human interventions)直接加入 RL 更新中: 当机器人卡住或犯错时,人类的修正可以被纳入训练,进一步提升策略。 这些设计使得在线 RL 成为一种通用方法(recipe),可以直接接在任何预训练 VLA 上,而不需要针对具体任务做复杂工程。
RL 怎么用 VLA? VLA → 给出初始动作 RL actor → 在此基础上“微调”
为什么用 action chunk? 低层控制:每一步都学(难、数据多) chunk:一段动作一起学(高效)
exploration 怎么控制 - 参考动作输入(VLA action) - 正则约束(stay close) - critic 决定何时偏离
默认相信 VLA 只有更优时才改
reference-action dropout 的意义 防止 actor = copy(VLA) 强制 actor = 能独立决策
human intervention 的作用 👉 相当于: 在线纠错 人类反馈 → 直接进 RL 类似: imitation learning + RL 混合
让 RL 不从零学,而是在 VLA 的基础上“安全地微调”,用最少数据完成适应。
👉 真正输出动作的是:RL actor(在推理阶段) 👉 VLA 提供“先验动作 + 表示能力” 👉 RL token 只是给 actor/critic 用的“状态压缩表示”
观测(image / state)
↓
VLA → 生成:
1️⃣ 内部 embedding
2️⃣ 一个初始动作(reference action)
↓
RL token(压缩 embedding)
↓
RL actor(输入:RL token + VLA action)
↓
最终动作(执行)
下载数据集
1 | modelscope download \ |
分卷压缩包(pick_block_color_g1.tar.gz.*):
| 分卷 | 大小 |
|---|---|
pick_block_color_g1.tar.gz.000 |
37.58 GB |
pick_block_color_g1.tar.gz.001 |
37.58 GB |
pick_block_color_g1.tar.gz.002 |
37.58 GB |
pick_block_color_g1.tar.gz.003 |
36.98 GB |
| 合计 | ≈149.72 GB |
git clone https://github.com/huggingface/lerobot.git git switch -c feat/RL-token --track origin/feat/RL-token