InterEvolve: Test-Time Evolution of Reward Programs for Humanoid Loco-Manipulation
Zhuo Lin, Sirui Xu, Liuyu Bian, Yu-Xiong Wang, Liang-Yan Gui
cs.RO, cs.CV, cs.GR
2026-10-02
冻结人形控制器,LLM 按仿真反馈迭代改写分段奖励程序、CMA-ES 调常数,8 类新任务平均成功率从 34.6% 升到 86.5%,并部署到真实 Unitree G1。
人形机器人控制器已经能从人类演示里学会推、抬、搬箱子这类接触丰富的 loco-manipulation(边走边操作物体)。但放进开放环境,迟早会碰到训练时没列过的任务:会搬箱子的控制器被要求「把箱子翻个面」或「只用脚把箱子踢到标记点」,没有对应演示,尽管所需动作都在它已有能力范围内。常见任务接口在这里卡住:动作参考、目标状态、技能标签都要求预先定义好期望行为,把「翻个面」翻译成参考轨迹或新技能很困难。奖励函数表达力够,还能指出一次尝试差在哪,但按惯例每改一次奖励就要重训一个策略,迭代太贵。
InterEvolve 的思路是控制器冻结,任务知识外置到奖励程序里,在测试时进化。
执行层是 object-aware 的 FB 行为基础模型。FB 表示(forward-backward,把任意奖励投影成一个 latent prompt 的表示学习)让一个固定策略直接执行新奖励,新任务不重训。但已有 humanoid FB 模型只观察身体,只差在物体目标上的两个奖励会塌缩成同一个行为。这篇给 actor、forward、backward 三个网络的冻结身体分支各加一个可训练的 object residual,在 OMOMO 和 GRAB 两组人-物交互数据(重定向到 Unitree G1)上训练。奖励的执行方式:对一个约 5 万状态的固定 bank 做 softmax 加权聚合,把高奖励状态的 backward embedding 平均成 latent,每个控制步重算。
任务表示是 reward program:一列阶段,每段有奖励代码和完成条件,外加可调常数(权重、阈值、核宽)。外层由 LLM agent(DeepSeek-V4-Flash)在上下文里改结构,即用什么奖励项、怎么分阶段;内层 CMA-ES(协方差矩阵自适应进化策略,无梯度数值优化)只调常数。每个候选在 192 个并行仿真场景里验证,verifier 由 LLM 从任务文本解析一次后固定,agent 改不了判卷标准。反馈按 criterion 和阶段汇报,例如「192 个环境里只有 93 个进入阶段 1」。验证过的程序连同通过率写进 skill library(八个任务约 28 KB 的文本),每轮放进 prompt,后续任务直接复用。
结构和常数分开搜是有原因的:LLM 擅长选奖励项和分阶段,数值优化器擅长在固定结构下找权重,有希望的结构配上糟糕权重照样失败。
held-out 片段上的参考跟踪:
| 方法 | Eh (cm)↓ | Eo (cm)↓ | SR↑ |
| ULTRA(专用跟踪策略) | 15.68 | 21.45 | 66% |
| BFM-Zero(只看身体) | 28.36 | 62.33 | 8% |
| InterEvolve 运动模型 | 27.20 | 30.80 | 60% |
| 运动模型+进化出的跟踪奖励 | 19.80 | 24.92 | 72% |
agent 自己发现了一个「物体锚定漂移修正」奖励,补上局部观测看不到的世界系漂移,成功率反超专用跟踪器,误差仍略高。
八个任务族(推到标记、两种高度搬运、翻面、纯脚操作、抬上支架、穿门、绕障、踢到标记)平均:
| 程序 | 调参 | 结构进化 | SR↑ | Earned↑ |
| 人工设计 | 否 | 否 | 8.0% | 65.2% |
| agent 初版 | 否 | 否 | 32.2% | 73.3% |
| agent 初版 | 是 | 否 | 34.6% | 82.5% |
| InterEvolve | 是 | 是 | 86.5% | 95.6% |
站着不动也能拿 49.1% 的 Earned(按 criterion 计的部分得分),所以 SR 是更有区分度的主指标。只调权重到 34.6% 就停了,翻倍以上的增益来自结构性修改。消融里压成单阶段掉到 44.7%,去掉 CMA-ES 掉到 51.6%,是最关键的两个组件。第一轮拿到大头(32.2%→75.0%),第 2 到 3 轮还回撤过一次。组合任务上,完整技能库做到 relocate 8/10、堆叠 4/10、搬-放-踢 5/10,无库几乎全挂。成本按任务族计 2.1 GPU 时、0.23M token,每轮仿真 16 到 34 分钟,LLM 只占 1 到 2 分钟。仿真里进化并验证过的踢箱、推箱程序,在真实 Unitree G1 上靠自带相机加 FoundationPose 位姿估计自主执行。
这给「人形机器人的任务知识放在哪」提供了第三个答案。放进策略权重,每个任务要重训;放进参考动作或技能列表,每个任务要人工设计。放进 LLM 可读、可改、可用执行验证的奖励程序,新任务的边际成本从一次 RL 训练降到一批 rollout 加几次 LLM 调用,控制器和 agent 在各自时间尺度上进步,互不需要重训对方。相当于把 LLM 的 test-time scaling 搬进机器人控制。
踢到标记仍是最难任务,训练数据里踢的动作太稀少。成功率随轮次非单调,修好一个 criterion 可能暂时弄坏另一个。成本被仿真主导,作者给出的加速路径就是换更快的仿真器(mjlab),等于承认迭代速度是瓶颈。真机只覆盖两个任务,都是仿真里进化验证后再上机,没有在真实环境里进化,物体状态依赖 FoundationPose 估计。reward-tilted 聚合被作者自认是有偏启发式,tilt 强度和 bank 大小都要调,20 万的 bank 反而不如 10 万。组合任务成功率约一半。没有外部基线可比,论文说没有公开方法适用于这个设置,所有对照都是自家变体。