RehearseVLA深度解析:基于物理一致世界模型的VLA强化学习后训练框架

RehearseVLA深度解析:基于物理一致世界模型的VLA强化学习后训练框架

论文信息


一、研究背景:机器人学技能的"彩排难题"

视觉-语言-动作(VLA)模型堪称当下机器人的"通用大脑"------能看懂视觉画面、听懂自然语言指令、直接输出底层运动控制指令,是具身智能的核心范式。但这个大脑好不好使,高度依赖海量高质量演示数据,就像学霸也得刷够题才能考高分。

但现实很骨感:

  1. 模仿学习的瓶颈:靠人类示教喂数据,成本高、效率低,每个任务录几十上百条演示,小团队根本扛不住;数据少了模型就死记硬背,换个物体、换个位置直接翻车。
  2. 强化学习的困境:想让机器人自己试错进化?真机上练风险极高------工业机器人拧错一次螺丝可能废掉整个工件,服务机器人碰倒水杯得有人收拾,而且环境没法一键重置,试错成本贵到离谱。
  3. 传统仿真器的短板:用仿真器练?搭建一个逼真的仿真环境要花几个月,物体、纹理、光照都得手动调,好不容易练出来的策略,放到真机上又水土不服(Sim-to-Real Gap)。

大白话备注:就像学开车,只看教学视频(模仿学习)应变能力差;直接上路练(真机RL)容易撞车还贵;用驾校模拟器(传统仿真)又和真实路况差太远。大家一直想要一个「足够真实、又能随便造、还便宜」的练车场地。

于是作者抛出了核心思路:用AI自己的"脑补能力"(世界模型)搭一个虚拟训练场,让VLA模型先在里面彩排练熟,再上真机落地。这就是RehearseVLA的由来------字面意思就是"给VLA彩排的训练框架"。

图1 世界模型中的VLA探索与LIBERO基准性能对比 出自原文Figure 1

左图展示了VLA在世界模型中自主探索的过程,右图是性能对比柱状图。可以直观看到,本文方法在目标物体任务上成功率达到86.4%,远超OpenVLA、UniVLA等主流基线,在少样本场景下提升尤为明显。

图2 三种VLA训练范式对比 出自原文Figure 2

对比了三类训练方式:物理仿真/真实世界交互不可逆、成本高;人类演示数据量有限;而基于世界模型的方案既可逆、成本低,又能生成多样化数据,完美折中了前两者的痛点。


二、预备知识:先搞懂两个基础概念

2.1 VLA模型:从画面+指令到动作

VLA模型的本质是一个端到端的映射函数:输入历史视觉画面、机器人自身状态、语言指令,输出下一步的动作。

at=πθ(o1:t,s1:t,g) a_{t}=\pi_{\theta}\left(o_{1: t}, s_{1: t}, g\right) at=πθ(o1:t,s1:t,g)

符号解释:

  • ata_tat:第ttt时刻输出的机器人动作,比如机械臂的位姿、夹爪开合度;
  • πθ\pi_\thetaπθ:带参数θ\thetaθ的VLA策略网络,一般由预训练视觉语言大模型+轻量动作头组成;
  • o1:to_{1:t}o1:t:从第1帧到第ttt帧的RGB视觉观测序列,也就是机器人看到的画面;
  • s1:ts_{1:t}s1:t:对应时刻的机器人本体状态,比如关节角度、末端执行器位姿;
  • ggg:自然语言指令,也就是人类给机器人下达的任务,比如"把奶油奶酪放进碗里"。

大白话备注:你给机器人看当前画面、说一句任务,它直接输出下一步胳膊怎么动,就是这个公式干的事。

2.2 强化学习:靠试错优化策略

强化学习把决策过程建模为马尔可夫决策过程(MDP),目标是让机器人学会最大化累计奖励的策略。

J(πθ)=Eπθ∑t=0Tγtrt J\left(\pi_{\theta}\right)=\mathbb{E}{\pi{\theta}}\left\\sum_{t=0}\^{T} \\gamma\^{t} r_{t}\\right J(πθ)=Eπθt=0∑Tγtrt

符号解释:

  • J(πθ)J(\pi_\theta)J(πθ):策略πθ\pi_\thetaπθ的期望累计回报,数值越高策略越好;
  • Eπθ\mathbb{E}{\pi\theta}\\cdotEπθ:对策略πθ\pi_\thetaπθ采样得到的所有轨迹取期望;
  • TTT:一条轨迹的最大时间步长;
  • γ\gammaγ:折扣因子,取值0,10,10,1,越远的奖励权重越低,鼓励机器人尽快完成任务;
  • rtr_trt:第ttt步获得的即时奖励,任务完成得越好,奖励越高。

大白话备注:机器人每做一个动作都能拿到分数,目标是一整套动作下来总分最高。分数怎么给,是强化学习最关键的问题。


三、方法详解:RehearseVLA三大核心模块

RehearseVLA整体是一套"虚拟彩排+即时反馈"的后训练流程,全程不需要真机交互。整体架构如下图:

图3 RehearseVLA整体框架 出自原文Figure 3

整个框架由三部分闭环组成:

  1. 训练数据策略:用人类演示+VLA自主探索的轨迹,训练世界模拟器;
  2. 优化循环:VLA输出动作,世界模拟器预测下一幕画面,反射器给出反馈;
  3. 奖励与终止信号:给每条轨迹打分,同时判断任务是否完成,及时终止。

简单说就是:世界模型负责"脑补画面",反射器负责"打分喊停",VLA负责"优化动作",三者在虚拟世界里循环迭代,越练越强。

3.1 物理一致世界模拟器:AI的"脑补引擎"

世界模拟器的核心任务是:输入当前画面和机器人动作,精准预测下一步会变成什么样。预测得越准,虚拟训练就越靠谱,真机迁移效果越好。

图4 物理一致世界模拟器结构 出自原文Figure 4

整个模拟器基于U-Net扩散网络搭建,核心设计有两个亮点:动作图像素级条件、几何感知双路径特征注入。

(1)动作图:把机器人动作变成画面条件

首先通过正运动学,把动作转换成机器人下一刻的本体状态,再投影到图像平面,生成一张"动作图"------前景是机器人末端的位置姿态标记,背景是纯黑,对比度拉满。

这张动作图和历史观测图一起,作为像素级条件输入扩散网络,告诉模型"机器人接下来要移到这"。

(2)几何感知特征注入:保证画面不"瞎画"

普通视频生成模型画面好看,但经常几何错乱------物体飘起来、机械臂穿模,练出来的策略肯定不能用。为了保证物理一致性,作者加了双编码器特征注入:

  • VGGT编码器:擅长保留精细的几何结构和空间布局,保证物体位置、形状、深度符合真实物理;
  • CLIP编码器:擅长高层语义和上下文信息,保证画面整体语义合理。

两路特征通过交叉注意力注入U-Net的多个分辨率层,让生成的未来帧既局部几何精准,又全局语义自洽。

(3)训练数据增强:让模拟器见过"翻车场面"

只用成功的人类演示训练模拟器,模型就没见过失败的样子------VLA探索时动作偏了,模拟器反而预测不出来。

作者用了个很巧妙的办法:用初始SFT训练的VLA模型,在仿真器里自主探索,故意加一点随机扰动,收集成功+失败的完整轨迹。

动作扰动采用拉普拉斯分布:

at∼Laplace(μt,βt) a_{t} \sim Laplace(\mu_{t}, \beta_{t}) at∼Laplace(μt,βt)

符号解释:

  • ata_tat:最终采样得到的带扰动动作;
  • μt\mu_tμt:VLA模型输出的基准动作,也就是分布的位置参数;
  • βt\beta_tβt:拉普拉斯分布的尺度参数,由额外的尺度头预测,控制扰动大小;
  • Laplace(⋅)Laplace(\cdot)Laplace(⋅):拉普拉斯分布,比高斯分布更易产生极端值,能探索更多边界情况。

把这些自主探索的数据和原始人类演示混在一起训练模拟器,就能让模拟器既能预测正常操作,也能预测动作歪了会发生什么,后续RL训练才不会崩。

3.2 VLM引导即时反射器:打分+喊停一体机

这是本文第二个核心创新,专门解决两个老大难问题:

  1. 奖励太稀疏:传统只有成功/失败二值奖励,学起来慢,还容易没梯度;
  2. 动作冗余:任务都做完了,机器人还在那瞎动,反而把做好的事搞砸了。
(1)连续奖励:精细评估任务进度

反射器用冻结的视觉编码器+大语言模型做多模态推理,最后加一个轻量奖励头,输出0到1之间的连续奖励值:

R(o1:t,g)=σ(Rθ(ht)) R(o_{1:t},g)=\sigma \left(\mathcal{R}{\theta}(h{t})\right) R(o1:t,g)=σ(Rθ(ht))

符号解释:

  • R(o1:t,g)R(o_{1:t},g)R(o1:t,g):第ttt步的奖励值,范围0,10,10,1,越接近1代表任务完成度越高;
  • σ(⋅)\sigma(\cdot)σ(⋅):sigmoid激活函数,把输出压缩到0-1区间;
  • Rθ\mathcal{R}_\thetaRθ:可训练的奖励头网络,参数为θ\thetaθ;
  • hth_tht:第ttt步VLM输出的多模态融合特征,融合了画面和指令的语义信息。

训练奖励头用二分类交叉熵损失:

L=BCE(R(o1:t,g),yt) \mathcal{L}=BCE\left(R\left(o_{1: t}, g\right), y_{t}\right) L=BCE(R(o1:t,g),yt)

符号解释:

  • L\mathcal{L}L:损失值;
  • BCE(⋅)BCE(\cdot)BCE(⋅):二分类交叉熵函数;
  • yty_tyt:二值标签,0代表任务未完成,1代表任务已完成。

大白话备注:以前只有"做完了拿1分,没做完0分",机器人半天摸不着头脑;现在每一步都有0.3、0.7这样的进度分,机器人能清晰知道"我刚才的动作离目标更近了还是更远了",学起来快得多。

(2)动态终止:做完就停,绝不添乱

当奖励值超过阈值η=0.5\eta=0.5η=0.5时,立刻触发终止信号,结束当前轨迹。

tend=arg⁡min⁡ts.t.R(o1:t,g)>η t_{end} = \arg\min_t \quad s.t. \quad R(o_{1:t},g) > \eta tend=argtmins.t.R(o1:t,g)>η

这个设计解决了VLA常见的"成功后失败"问题------本来瓶子已经放好了,模型又多走一步把瓶子碰倒。

图8 VLA执行中的任务后失败案例 出自原文Figure 8

图中(a)(b)已经成功把酒瓶放到柜子顶上,但©(d)(e)中模型继续执行冗余动作,反而把酒瓶碰掉,最终任务失败。这就是动态终止机制的必要性------及时收手比多做动作重要得多。

3.3 VLA后训练算法:LOOP优化策略

有了虚拟环境和奖励函数,就可以用强化学习迭代优化VLA策略了。作者采用了RLOO+PPO结合的LOOP算法,非常适合少样本下的策略优化。

(1)轨迹采样与优势计算

每个初始状态采样N条轨迹,每条轨迹拿到一个最终奖励RnR_nRn。用"留一法"计算基线:第n条轨迹的基线,是其他N-1条轨迹的平均奖励。

bn=1N−1∑j≠nRj,An=Rn−bn b_{n}=\frac{1}{N-1} \sum_{j \neq n} R_{j}, \quad A_{n}=R_{n}-b_{n} bn=N−11j=n∑Rj,An=Rn−bn

符号解释:

  • bnb_nbn:第n条轨迹的基线奖励;
  • RjR_jRj:第j条轨迹的最终奖励;
  • AnA_nAn:第n条轨迹的优势值,大于0说明这条轨迹比平均水平好,应该加强;小于0说明比平均差,应该削弱。

大白话备注:每次做8次尝试,每次拿自己的分数和另外7次的平均分比,考得好就表扬,考得差就批评,不用和全局比,小批量也能稳定学习。

(2)PPO裁剪目标

用裁剪的PPO目标更新策略,保证更新幅度不会太大,避免训练崩掉:

LPPO=−min(rt,nAn,clip(rt,n,1−ϵ,1+ϵ)An) \mathcal{L}{PPO}=-min \left(r{t, n} A_{n}, clip\left(r_{t, n}, 1-\epsilon, 1+\epsilon\right) A_{n}\right) LPPO=−min(rt,nAn,clip(rt,n,1−ϵ,1+ϵ)An)

符号解释:

  • LPPO\mathcal{L}_{PPO}LPPO:PPO损失函数,优化目标是最小化它;
  • rt,nr_{t,n}rt,n:重要性采样比率,也就是当前策略和行为策略的动作概率比值;
  • AnA_nAn:轨迹优势值;
  • clip(⋅)clip(\cdot)clip(⋅):裁剪函数,把rt,nr_{t,n}rt,n限制在1−ϵ,1+ϵ1-\\epsilon, 1+\\epsilon1−ϵ,1+ϵ区间内;
  • ϵ\epsilonϵ:裁剪阈值,论文中设为0.1,防止策略更新步子太大导致训练不稳定。

整个训练循环就是:采样轨迹→算优势→更新策略→再采样,不断迭代,直到策略收敛。


四、实验结果:少样本下的全面碾压

实验在LIBERO机器人操作基准上测试,这是行业公认的VLA通用能力测试集,包含四类任务,分别考验空间推理、目标规划、物体操作、长序列决策。

核心测试设定:每个任务只用5条演示数据训练,极端少样本场景,非常贴合真实工业场景"没多少数据"的现状。

4.1 与主流SOTA方法对比

表1 LIBERO基准成功率对比 出自原文Table 1

方法 LIBERO-Goal LIBERO-Object LIBERO-Spatial LIBERO-Long 平均
π0\pi_0π0 67.6 68.4 80.2 28.2 61.1
π0\pi_0π0+FAST 59.2 76.8 59.2 24.8 55.0
OpenVLA 73.2 55.0 82.4 32.2 60.7
UniVLA 82.0 76.2 84.4 56.4 74.75
OpenVLA-OFT 84.0 74.2 84.2 57.0 74.85
OpenVLA-OFT + 后训练(本文) 86.4 86.6 87.6 57.8 79.6

结果分析:

  1. 全面领先:本文方法在四个子任务上全部登顶,平均成功率79.6%,比之前最好的OpenVLA-OFT高出4.75个百分点,在仅5条演示的极端条件下提升非常显著;
  2. 物体任务提升最大:LIBERO-Object任务从74.2涨到86.6,暴涨12.4个百分点,说明虚拟彩排让模型对不同物体的泛化能力大幅增强;
  3. 长任务也有提升:长序列任务从57.0涨到57.8,虽然涨幅小,但主要得益于终止机制减少了后期冗余动作的失误。

图5 多目标任务上与SFT的训练曲线对比 出自原文Figure 5

三条曲线分别对应三个不同任务,橙色是本文方法,蓝色是纯监督微调SFT。可以看到本文方法仅用20步训练就全面超过SFT,收敛速度快、最终上限高,完美体现了RL后训练的效率优势。

4.2 与仿真RL方法对比

和同样用RL后训练的RIPT-VLA对比,后者必须依赖传统仿真器才能训练。

表2 与基于仿真器的RL方法对比 出自原文Table 2

方法 Goal Object Spatial Long
RIPT-VLA 86.2 83.4 88.6 58.4
本文 86.4 86.6 87.6 57.8

结果分析:

两者整体性能旗鼓相当,但本文有个决定性优势:RIPT-VLA只能在仿真器里用,换个新场景得重新搭仿真环境;而RehearseVLA只要有几条视频就能训,能直接迁移到真实机器人上,落地门槛低得多。

4.3 真实机器人实验

光在仿真里厉害不算本事,真机能用才是硬道理。作者在真实Franka机械臂上做了四个任务的测试,每个任务仅收集10条演示数据。

表3 真机实验结果对比 出自原文Table 3

方法 清理桌面 放绿色玩具 放红色玩具 放橙色玩具
OpenVLA-OFT 20 30 30 20
本文 30 50 40 50

图7 "清理桌面"任务真机实验示例 出自原文Figure 7

展示了真实机械臂执行"把三个玩具放进桶里"任务的画面。可以看到模型能准确识别物体、规划路径、完成放置,验证了虚拟世界里练出来的策略,放到真机上依然好使。

结果分析:

四个任务成功率全面碾压基线,最高提升了30个百分点。要知道每个任务仅用10条演示,纯监督微调根本学不明白,而经过虚拟彩排后,策略的泛化能力直接上了一个台阶。

4.4 消融实验:每个模块都有用

(1)核心组件消融

表5 消融实验结果 出自原文Table 5

额外训练数据 奖励头 Goal Object Spatial Long
68.4 75.2 73.2 42.2
79.8 81.8 78.4 44.6
68.8 76.4 74.4 43.8
86.4 86.6 87.6 57.8

结果分析:

  1. 两个组件都不加,效果最差,平均只有64.75;
  2. 只加额外训练数据,模拟器更准了,平均涨到71.15,提升明显;
  3. 只加奖励头,奖励更准了,平均涨到65.85,有小幅提升;
  4. 两个组件都加上,直接涨到79.6,产生了1+1>2的化学反应------模拟器准+奖励准,RL训练才能又稳又好。
(2)终止机制效果验证

专门做了一组实验:强制所有基线跑满最大步数,只有本文能自动终止,模拟真实场景下"没人告诉你什么时候算做完"的情况。

表4 真实反馈约束下的任务终止策略对比 出自原文Table 4

方法 LIBERO-Goal LIBERO-Object LIBERO-Spatial LIBERO-Long 平均
π0\pi_0π0 55.4 71.0 72.6 20.6 54.9
π0\pi_0π0+FAST 21.2 74.0 44.8 15.0 38.75
OpenVLA 68.4 47.4 59.8 26.6 50.55
UniVLA 72.0 75.2 66.4 48.0 65.4
OpenVLA-OFT 67.4 73.8 71.2 39.8 63.05
OpenVLA-OFT + 后训练(本文) 85.0 78.4 78.4 57.8 74.9

结果分析:

没有终止信号时,所有基线性能都暴跌,很多任务明明做完了又被后续动作搞砸;而本文方法靠即时反射器自动检测完成状态,及时收手,平均成功率比第二名高出近10个百分点,优势巨大。

(3)世界模型可视化对比

图6 世界模拟器渲染效果对比 出自原文Figure 6

左边是只用人成功轨迹训练的世界模型,右边是加了探索数据训练的,中间是真值。可以看到没加额外数据的模型,机械臂跟踪不准、物体状态错乱;加了数据之后,渲染画面和真值几乎一致,机械臂姿态、物体位置都精准对齐。


五、核心代码简化实现

下面给出RehearseVLA核心训练循环的简化Python实现,覆盖世界模型推理、奖励计算、PPO更新三大环节:

python 复制代码
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.distributions import Laplace

class RehearseVLA:
    def __init__(self, vla_policy, world_simulator, instant_reflector, cfg):
        """
        初始化RehearseVLA框架
        :param vla_policy: VLA策略模型(OpenVLA-OFT)
        :param world_simulator: 物理一致世界模拟器
        :param instant_reflector: VLM引导即时反射器
        :param cfg: 超参数配置
        """
        self.policy = vla_policy
        self.world_sim = world_simulator
        self.reflector = instant_reflector
        self.cfg = cfg
        self.optimizer = torch.optim.AdamW(self.policy.parameters(), lr=cfg.lr)

    def collect_rollouts(self, init_obs, init_state, instruction, n_rollouts=8):
        """
        在世界模拟器中采样N条轨迹
        :param init_obs: 初始视觉观测
        :param init_state: 初始机器人状态
        :param instruction: 语言指令
        :param n_rollouts: 采样轨迹数量N
        :return: 轨迹列表,每条包含动作、观测、奖励、终止步
        """
        rollouts = []
        for _ in range(n_rollouts):
            obs, state = init_obs.clone(), init_state.clone()
            traj = {"actions": [], "obs": [], "rewards": [], "done": False}
            
            for t in range(self.cfg.max_steps):
                # 1. VLA输出基准动作和尺度参数
                mu_action, log_beta = self.policy(obs, state, instruction)
                beta = torch.exp(log_beta)
                # 2. 拉普拉斯分布采样带探索的动作
                dist = Laplace(mu_action, beta)
                action = dist.sample()
                traj["actions"].append(action)
                traj["obs"].append(obs)
                
                # 3. 世界模拟器预测下一时刻状态和画面
                next_state = forward_kinematics(state, action)
                next_obs = self.world_sim(obs, action, next_state)
                
                # 4. 反射器计算当前奖励,判断是否终止
                reward = self.reflector(traj["obs"] + [next_obs], instruction)
                traj["rewards"].append(reward)
                
                if reward > self.cfg.eta:
                    traj["done"] = True
                    break
                obs, state = next_obs, next_state
            
            # 最终奖励取终止步的值
            traj["final_reward"] = traj["rewards"][-1]
            rollouts.append(traj)
        return rollouts

    def compute_advantages(self, rollouts):
        """
        RLOO留一法计算轨迹优势
        """
        rewards = torch.tensor([t["final_reward"] for t in rollouts])
        advantages = []
        n = len(rollouts)
        for i in range(n):
            # 基线 = 除自己外其他轨迹的平均奖励
            baseline = (rewards.sum() - rewards[i]) / (n - 1)
            advantages.append(rewards[i] - baseline)
        return advantages

    def ppo_update(self, rollouts, advantages):
        """
        裁剪PPO策略更新
        """
        total_loss = 0.0
        eps = self.cfg.clip_epsilon
        
        for i, traj in enumerate(rollouts):
            adv = advantages[i]
            old_log_probs = []
            new_log_probs = []
            
            # 计算旧策略和新策略的动作对数概率
            with torch.no_grad():
                old_mu, old_log_beta = self.policy(traj["obs"][0], None, None)
                old_dist = Laplace(old_mu, torch.exp(old_log_beta))
                old_log_probs = old_dist.log_prob(torch.stack(traj["actions"]))
            
            new_mu, new_log_beta = self.policy(traj["obs"][0], None, None)
            new_dist = Laplace(new_mu, torch.exp(new_log_beta))
            new_log_probs = new_dist.log_prob(torch.stack(traj["actions"]))
            
            # 重要性采样比率
            ratio = torch.exp(new_log_probs - old_log_probs)
            # 裁剪PPO目标
            surr1 = ratio * adv
            surr2 = torch.clamp(ratio, 1 - eps, 1 + eps) * adv
            loss = -torch.min(surr1, surr2).mean()
            
            self.optimizer.zero_grad()
            loss.backward()
            self.optimizer.step()
            total_loss += loss.item()
        
        return total_loss / len(rollouts)

    def train_epoch(self, init_obs, init_state, instruction):
        """单轮训练完整流程"""
        rollouts = self.collect_rollouts(init_obs, init_state, instruction)
        advantages = self.compute_advantages(rollouts)
        loss = self.ppo_update(rollouts, advantages)
        return loss, [t["final_reward"].mean() for t in rollouts]

代码说明:完整复现了论文的核心训练逻辑,包括拉普拉斯分布动作探索、世界模型单步推理、RLOO优势计算、裁剪PPO更新,以及基于阈值的动态终止机制,可基于开源OpenVLA和扩散模型代码在此基础上扩展。


六、趣味落地案例

案例1:3C产线螺丝装配机器人

某电子厂要给机械臂新增"拧微型螺丝"的技能,传统方案:

工程师现场示教50次,还要调试各种姿态,耗时一周,万一拧滑牙还要换工件,物料成本很高;

用RehearseVLA方案:

  1. 工程师只示教5次标准操作,录成视频;
  2. 系统自动训练世界模型,在虚拟环境里生成上百种不同位置、角度、螺丝类型的训练数据;
  3. VLA模型在虚拟世界里反复彩排,练到成功率达标再部署到真机;
    最终真机上线一次成功,调试成本降到原来的1/10,还避免了真机试错损坏工件的风险。

案例2:家庭服务机器人技能迭代

家用机器人要新增"整理餐桌"技能,每家的餐桌、餐具都不一样,不可能每家都录几十条演示。

用RehearseVLA的话,用户只需要用手机拍1次自己整理桌子的视频,系统就能生成几十种不同餐具摆放、不同光线条件下的虚拟演示,快速微调机器人策略,几天就能适配一个新家庭,定制化成本大幅降低。


七、局限性与未来方向

论文也坦诚了当前方案的不足:

  1. 数据依赖:世界模型和反射器还是需要一定量数据才能训得准,通用世界模型如果能发展起来,就能进一步降低数据门槛;
  2. 速度偏慢:每条轨迹都要世界模型一步步渲染,训练速度比纯监督慢不少,后续可以优化渲染效率,或者用更轻量的世界模型;
  3. 仅支持刚体操作:目前只验证了刚体抓取放置,还不支持布料、液体这类柔性物体。

未来可以探索的方向:

  • 用通用视频世界模型替代定制训练的模拟器,进一步降低场景适配成本;
  • 加入物理引擎约束,让世界模型预测的动作更符合动力学规律;
  • 扩展到双臂操作、长程复杂任务,覆盖更多工业和家庭场景。

八、总结

核心思想一句话

用物理一致的世界模型搭虚拟训练场,配VLM智能裁判打分喊停,让VLA模型在彩排中迭代进化,少样本下也能练出强泛化的机器人策略。

速记版Pipeline

  1. 拿少量演示训一个世界模型,能精准预测"做了动作之后画面会变成啥样";
  2. 训一个智能反射器,能实时评估任务进度,做完就喊停;
  3. VLA在虚拟世界里反复试错,靠奖励反馈越练越好,练熟了再上真机。

整体评价

RehearseVLA最有价值的地方,是给"少样本场景下怎么提升VLA性能"提供了一个低成本、可落地的方案。不用买昂贵的遥操作设备,不用搭复杂的仿真环境,只要几条视频,就能让模型在虚拟世界里刷够经验,真机效果还能实打实涨点,对工业、家用等数据稀缺的机器人场景,实用性非常强。

相关推荐
羊羊小栈3 分钟前
基于「YOLO目标检测 + 多模态AI分析」的水稻病害智能检测分析预警系统(LangChain框架)
人工智能·yolo·目标检测·毕业设计·创业创新·大作业
IT_陈寒5 分钟前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
lisw058 分钟前
提升社会科学领域的计算可重复性
人工智能·数字时代
PascalXie9 分钟前
服务机器人避障用的深度相机,主流选型有哪些?
计算机视觉·机器人
HyperAI超神经12 分钟前
HyperAI 入选 36氪「East Forward 2026 出海全球化拓新企业」
人工智能·深度学习·全球化企业
9呀15 分钟前
VS Code Codex 多窗口使用与补丁记录
人工智能
七仔啊18 分钟前
安防通行人脸抓拍识别
人工智能
guoran_shini1 小时前
SVD矩阵分解
人工智能
烟锁池塘柳01 小时前
【Agent】如何从大模型构建真正的 Agent?以 Claude Code 为例,理解能构建智能体的真正的 Harness 工程
人工智能·agent
qq_199886871 小时前
第6板块 第2节 CUDA运行时API与驱动API 核心笔记
c++·人工智能·gpu算力