CO-RFT: Efficient Fine-Tuning of Vision-Language-Action Models through Chunked Offline Reinforcement Learning

Huang 等 · 2025 · arXiv:2508.02219 · Zotero 5F97K7YX

先给结论

CO-RFT 直接把 VLA 的 action chunk 当 RL 决策单元,扩展 TD 学习去处理块内信用分配,用几十条演示完成离线微调。

§1 Introduction:action chunk 为什么改变了离线 RL 的 Bellman 时间尺度

作者为什么做 CO-RFT

现代 VLA 为平滑与实时性一次输出 $H$ 步 action chunk,但标准离线 RL 的 critic 接收单个 Markov action,并在一步后 bootstrap。把整个 chunk 当一个宏动作会丢失块内奖励与终止位置;把每个原子动作单独训练又与策略实际条件不一致,因为后续动作在同一 chunk 内一次生成。

CO-RFT 先用约几十条 demonstration 全参 imitation finetune,让 VLM backbone 适配机器人;再用 Chunked RL critic 同时读取状态和整段 action,输出 chunk 内每个位置的 Q。shifted/n-step TD 将奖励沿块内时间传播,并在块边界 bootstrap,actor 通过离线 RL 改进同时受 BC/保守项限制。

展开原文 · 核心结构

“extends temporal-difference learning to incorporate action chunking”

— Abstract, PDF p.1
Chunked RL 位于哪里

IQL/CalQL 等处理离线 OOD action 与保守 value,n-step TD 减少长程 bootstrap 次数但提高方差。动作 chunk 在 imitation 中已很常见,部分 RL 工作把它当 temporal abstraction 或 transformer sequence;VLA 后训练却往往仍套单步 critic。

CO-RFT 让 critic 的时间索引与 VLA 输出接口一致,适合稀疏奖励和长程任务。它与 BORA 都关注 chunk credit,但 CO-RFT 是纯离线全参 fine-tuning;没有在线 residual 或人类介入,最终性能上限仍受静态数据 support 和 reward 标注质量约束。

§3 问题设定:SFT 到底漏掉了什么

这一节解决什么

VLA 预训练与 SFT 解决“从观测到动作的模仿”,但部署是闭环过程:动作会改变下一帧,错误会把策略带到演示没有覆盖的状态。普通一步 TD 与 VLA 一次输出多步动作的结构不匹配,导致样本效率和训练稳定性差。

VLA 一次预测长度 k 的 action chunk;critic 为每个块位置生成 Q/V,并用位置编码区分块内时间。

展开原文 · 核心主张

“extend temporal difference learning to incorporate action chunking”

— Abstract, p.1
STATE / INPUT
策略看见什么
VLA 一次预测长度 k 的 action chunk;critic 为每个块位置生成 Q/V,并用位置编码区分块内时间。
FEEDBACK
监督从哪里来
离线数据中的奖励和终止信号形成 shifted bootstrap,让价值从下一个 chunk 倒传到当前 chunk 内各原子动作。

§4 方法总览:反馈信号怎么走

承上启下

上一节明确了状态、动作与反馈,现在沿论文原图追踪训练信号。重点不是背模块名,而是判断:哪部分保持预训练先验,哪部分真的被 RL 改写。

CO-RFT paper method figure
论文原图 · 450 DPI 裁剪CO-RFT 的方法或关键分析图。点击热点,按训练信号顺序阅读。
跟着训练信号走一遍

1. 30–60 条演示先做全参 IL 初始化

先用 30–60 条专家轨迹做全参 imitation learning,使 VLA 能产生基本可执行的 action chunk。这个初始化限定了离线 RL 的搜索范围,避免少数据 critic 从完全随机动作中推导价值。

给第一次接触这个领域的读者

输入是什么:已经采集的专家演示、机器人交互轨迹或评测样本。每条数据通常包含观测、动作,以及可能存在的奖励或下一状态。

这一步究竟做什么:先用 30–60 条专家轨迹做全参 imitation learning,使 VLA 能产生基本可执行的 action chunk。这个初始化限定了离线 RL 的搜索范围,避免少数据 critic 从完全随机动作中推导价值。

输出到哪里:经过本步骤处理、含义更明确的中间结果。这个结果会交给下一步“critic 同时编码图像、语言、本体状态”继续处理。

为什么不能省略:学习算法只能从它见过的经历中改进;这一步决定训练数据是否覆盖成功、失败和恢复状态。

术语先翻译:critic / Q:给‘在这个状态做这个动作’打长期价值分的模型;它负责评价,不直接驱动机器人;action chunk(动作块):模型一次生成连续多步控制,而不是每次只预测一个瞬时动作;VLA(视觉—语言—动作模型):同时读取画面和文字指令,输出机器人动作。

2. critic 同时编码图像、语言、本体状态

critic 联合编码图像、指令和本体状态,输出针对整个动作块的价值。视觉说明物体关系,语言限定任务,本体状态决定当前可执行性;少任一项都可能把相同像素动作错误地视为等价。

给第一次接触这个领域的读者

输入是什么:来自上一步“30–60 条演示先做全参 IL 初始化”的产物:经过本步骤处理、含义更明确的中间结果。本步骤还会按论文设置读取当前条件、时间步或训练信号。

这一步究竟做什么:critic 联合编码图像、指令和本体状态,输出针对整个动作块的价值。视觉说明物体关系,语言限定任务,本体状态决定当前可执行性;少任一项都可能把相同像素动作错误地视为等价。

输出到哪里:一组比原始输入更紧凑的内部特征;它不是最终动作或画面。这个结果会交给下一步“对 action chunk 做块内 TD 传播”继续处理。

为什么不能省略:模型不能高效地直接在所有原始像素和长序列上推理;这一步把信息压成后续模块能处理、比较和复用的形式。

术语先翻译:critic / Q:给‘在这个状态做这个动作’打长期价值分的模型;它负责评价,不直接驱动机器人;action chunk(动作块):模型一次生成连续多步控制,而不是每次只预测一个瞬时动作;encoder(编码器):把原始输入压缩成模型内部可计算的特征。

3. 对 action chunk 做块内 TD 传播

块内 TD 把后续状态回报传播到 chunk 内各时间步,而不是只给整块一个标签。这样能区分同一 chunk 中前半段正确、后半段碰撞的情况,并减少长动作块的粗糙信用分配。

给第一次接触这个领域的读者

输入是什么:来自上一步“critic 同时编码图像、语言、本体状态”的产物:一组比原始输入更紧凑的内部特征;它不是最终动作或画面。本步骤还会按论文设置读取当前条件、时间步或训练信号。

这一步究竟做什么:块内 TD 把后续状态回报传播到 chunk 内各时间步,而不是只给整块一个标签。这样能区分同一 chunk 中前半段正确、后半段碰撞的情况,并减少长动作块的粗糙信用分配。

输出到哪里:经过本步骤处理、含义更明确的中间结果。这个结果会交给下一步“离线策略改进后直接真机评估”继续处理。

为什么不能省略:它承担上下两步之间的接口;缺少它,前一步产生的信息无法以正确格式或正确含义传到下一步。

术语先翻译:action chunk(动作块):模型一次生成连续多步控制,而不是每次只预测一个瞬时动作。

4. 离线策略改进后直接真机评估

策略改进完全在离线数据上完成,随后直接真机闭环评估。复现时必须检查新策略是否仍位于演示支持范围;否则纸面 Q 提升可能只是 critic 对 OOD 动作的过估计。

给第一次接触这个领域的读者

输入是什么:来自上一步“对 action chunk 做块内 TD 传播”的产物:经过本步骤处理、含义更明确的中间结果。本步骤还会按论文设置读取当前条件、时间步或训练信号。

这一步究竟做什么:策略改进完全在离线数据上完成,随后直接真机闭环评估。复现时必须检查新策略是否仍位于演示支持范围;否则纸面 Q 提升可能只是 critic 对 OOD 动作的过估计。

输出到哪里:一组诊断数值、分类结果或评测分数;它告诉后续模块当前结果哪里好、哪里需要修正。这是图中这条链路的最终产物,随后会进入真实执行、模型更新或指标评测。

为什么不能省略:没有统一诊断或评分,后续模块无法知道哪里出错,也无法公平比较两个模型是否真的进步。

术语先翻译:critic / Q:给‘在这个状态做这个动作’打长期价值分的模型;它负责评价,不直接驱动机器人;policy(策略):把相机画面、指令和机器人状态映射成下一步动作的决策规则。

§5 机制细拆:动作、价值与更新边界

从架构图到实现

上图给出了宏观流程,但真正决定训练是否稳定的是三个接口:动作以什么粒度出现、反馈怎样变成可学习信号、哪些参数允许被更新。

ACTION UNIT
动作表示
VLA 一次预测长度 k 的 action chunk;critic 为每个块位置生成 Q/V,并用位置编码区分块内时间。
CREDIT
信用分配
离线数据中的奖励和终止信号形成 shifted bootstrap,让价值从下一个 chunk 倒传到当前 chunk 内各原子动作。
UPDATE
更新范围
先全参 imitation learning 初始化视觉语言骨干与动作头,再做 chunked offline RL;actor 仍受行为克隆项约束。
WHY IT MATTERS
与相邻方法的差别
普通 TD3/IQL 把 chunk 当单动作会丢失块内信用;逐帧 RL 又不符合 VLA 的部署接口。CO-RFT 在两者之间做块内 TD。

§6 目标函数:把直觉压缩成可检查的量

公式先讲人话

前一节说清了信号路径,这里把核心优化目标写成教学化公式。读公式时依次检查:回报影响谁、数据支持在哪里、预训练策略受到什么约束。

$$y_{t,i}=r_{t+i}+\gamma V(s_{t,i+1})$$论文核心目标的教学化表达;精确实现以 PDF 对应章节为准
逐项拆解
$i$
动作块内部位置
$y_{t,i}$
块内第 i 步 TD 目标
$V$
由 critic 估计的后续价值
实现桥梁

先全参 imitation learning 初始化视觉语言骨干与动作头,再做 chunked offline RL;actor 仍受行为克隆项约束。

§7 训练与评测:数字是在什么条件下得到的

先固定比较口径

只看最终成功率会隐藏数据预算、仿真/真机差异和基座强弱。本节把论文的实验对象与比较关系放回同一张表。

策略与动作VLA 一次预测长度 k 的 action chunk;critic 为每个块位置生成 Q/V,并用位置编码区分块内时间。
训练反馈离线数据中的奖励和终止信号形成 shifted bootstrap,让价值从下一个 chunk 倒传到当前 chunk 内各原子动作。
更新方式先全参 imitation learning 初始化视觉语言骨干与动作头,再做 chunked offline RL;actor 仍受行为克隆项约束。
实验覆盖仅使用约 30–60 条专家演示,在多项真实机器人任务上报告成功率、周期时间和未见位置泛化。
关键对照普通 TD3/IQL 把 chunk 当单动作会丢失块内信用;逐帧 RL 又不符合 VLA 的部署接口。CO-RFT 在两者之间做块内 TD。

§8 结果怎么读:证据、因果与可迁移结论

论文实际支持什么

真实环境报告成功率提升 57%、周期时间下降 22.3%,未见位置成功率达到 44.3%。

普通 TD3/IQL 把 chunk 当单动作会丢失块内信用;逐帧 RL 又不符合 VLA 的部署接口。CO-RFT 在两者之间做块内 TD。

路线定位

action chunk 不只是工程加速技巧,它改变了 RL 的时间尺度与信用分配。

理解检查 · 实验
比较这篇方法与另一篇 VLA+RL 工作时,最先应该对齐什么?

§9 复现与工程检查

从论文结论回到代码

前一节判断了证据强度,复现时还要把训练信号对齐、时间尺度和数据统计逐项落地,否则“同名算法”也可能得到完全不同的结果。

  • 检查 chunk 长度、padding mask 与终止位置;Q/V target 必须处理最后一格跨 chunk bootstrap;小数据结果需要多随机种子。
  • 先跑通不加 RL 的预训练/SFT 基线,并保存逐任务成功率与失败视频。
  • 同时记录环境步数、真实墙钟时间、人工介入次数、更新次数和推理延迟。
  • 把奖励、终止、action chunk mask 与归一化统计做成可视化单元测试。

§10 适用边界与研究启发

我的边界判断

极少数据使结果对演示覆盖度与奖励标注敏感;不是所有长 action chunk 都适合相同 bootstrap。

action chunk 不只是工程加速技巧,它改变了 RL 的时间尺度与信用分配。

理解检查 · 方法
读完这篇论文后,最应该能复述哪条链?