DrEureka: Language Model Guided Sim-To-Real Transfer
动机
Eureka(2023)已经让 LLM 自动写 reward,在仿真里超越人类专家。但有个关键缺口:Eureka 只在仿真验证,没做过 sim-to-real。
sim-to-real 比「仿真学得好」难得多——还需要精心设计的 domain randomization (DR) 参数范围。DR 太窄,policy 对真机参数不鲁棒;DR 太宽,policy 学不出来。这个范围目前靠 研究者反复试错,是 sim-to-real 最痛苦的环节之一。
DrEureka 的 question:能不能让 LLM 同时自动生成 reward 函数 + DR 参数范围,两者互相配合,直接产出可部署真机的 policy?
方法核心
形式化:Sim-to-Real 设计问题(论文 Sec. III)
给定 simulation 环境 $M=(S,A,T)$ + 真实环境 $M^\ast$ + task objective $F:\Pi\to\mathbb{R}$,sim-to-real 算法 Algo 的目标是设计 $(R, T)$(reward + DR),让 RL 训出的 policy 在 $M^\ast$ 上 $F$ 得分最高:
$$\max_{R, T}\;F\big(\mathcal{A}(M, T, R)\big)\;\text{在}\;M^*\;\text{上评估}$$
其中 $T$ = domain randomization 配置(参数集 $\{p\}\subseteq P$ + 每个参数的采样区间)。DrEureka 用 LLM 自动产出 $(R, T)$。
DrEureka 是一个三阶段闭环(论文 Sec. IV,其中 IV-A 是 Eureka 背景、IV-B/C/D 是三阶段):
组件 1 · Reward Design(论文 Sec. IV-A,继承 Eureka)
DrEureka 的 reward 部分基本是原版 Eureka(论文 Eq. 5):
$$R_\text{Eureka}, \pi_\text{Eureka} := \mathrm{Eureka}(M, l_\text{task})$$
精确超参沿用 Eureka(论文 Sec. V:GPT-4 backbone;Eureka 原文:search iteration N=5,iteration batch size K=16)。每个 reward candidate 训 RL policy,用 task fitness $F$ 评估,reflection 反馈 LLM 迭代 mutation。
组件 2 · Safety Instruction(论文 Sec. IV-B,DrEureka 新增)
⚠️ 关键改进:Eureka 假设 $M^*=M$(评估环境 = 训练环境),但 sim-to-real 中仿真高分常来自过度使用电机/不自然行为——LLM sampler 倾向于不加 safety term(因为 safety penalty 会降仿真分)。
DrEureka 的解决方案:直接在 LLM prompt 里加显式 safety instruction $l_\text{safety}$(论文 Eq. 6):
$$R_\text{DrEureka}, \pi_\text{initial} := \mathrm{Eureka}(M,\;l_\text{task} + l_\text{safety})$$
$safety$ instruction 显式要求 LLM 把 stability、smoothness、task-specific desirability 作为 reward 的语言规范的一部分。
为什么不用 post-hoc 加 safety term:作者论证 post-hoc 方法(手动定义 safety term 加到 $R_\text{Eureka}$ 上)有缺陷——safety term 与其他 task-relevant component 的 scale 交互难调,scale 过大导致 over-conservative degenerate behavior。直接 prompt instruction-tuned LLM 让它自然平衡所有 component 的权重和潜在非加性交互。这是利用 instruction-tuned LLM 的 instruction-following 能力的简洁设计。
组件 3 · RAPP(Reward-Aware Physics Prior,新;PDF Sec.IV.C / Algorithm 2)
常见误读纠正:网上常把 RAPP 解读为 "Reward Augmentation for Policy Performance"、描述为「在 reward 里加稳定项」——这是误读。RAPP 真名是 Reward-Aware Physics Prior(PDF Sec.IV.C),它不动 reward,而是为 LLM 限定 DR 参数的采样范围。
RAPP 要解决的问题(Sec.IV.C):仿真器物理参数(摩擦、质量、电机延迟等)都有内置 max/min,但作者验证这些范围「too wide and may significantly hamper policy learning」。直接拿 simulator 默认范围做 DR,policy 学不出来。RAPP 的核心洞察是 DR 范围应该依赖任务 reward、为 policy 量身定制——例如摩擦范围太宽会采到「在该 reward 下 policy 根本学不动」的值。
高层目标:寻找「$\pi_{\text{initial}}$ 仍能 perform 的最大多样参数范围」(PDF 原话 "the maximally diverse range of environment parameters that $\pi_{\text{initial}}$ is still performant")。
Algorithm 2 伪代码(逐行抄自 PDF):
Input: 物理参数集 P, R_DrEureka, π_initial
for each parameter p ∈ P:
l, h = +inf, -inf # 可行下/上界
for search value r ∈ R: # 扫描候选值
S.p = r # 只改这一个参数,其他保持 default
τ = S(π_initial) # 在被扰动的仿真里 rollout π_initial
if F(τ): # 命中成功准则 → r 可行
l = min(l, r); h = max(h, r)
return (l, h) for p
关键设计:
- (a) 探针是 $\pi_{\text{initial}}$——Eureka 出来的、未做 DR 训练的 policy;不用重训,便宜快。
- (b) one-at-a-time 扫描——每次只改一个参数(其他 default),避免联合扫描的组合爆炸;代价是忽略参数交互(局限)。
- (c) 只产出 $(l, h)$ 给 LLM,不直接当 DR 范围用——Sec.IV.D 明确与 automatic domain randomization(直接用搜出来的范围)对比,DrEureka 把 RAPP 范围当 guide for LLM:LLM 还要再决定 (1) randomize 哪些参数子集、(2) 每个参数的最终区间。这样 RAPP 范围只是「上界」,LLM 有进一步裁剪的自由度。
与 Stage A/C 的关系:RAPP 是 Stage A(reward + safety instruction)和 Stage C(LLM 生成 DR 配置)之间的桥梁——Stage A 出 $R_{\text{DrEureka}}, \pi_{\text{initial}}$,RAPP 扫出每个参数的可行 $(l, h)$,Stage C 把这些范围喂给 LLM 让它 zero-shot 生成 $T_1, \dots, T_m$。
消融证据(Table I):CEM 搜 DR 范围时,CEM Random(从宽范围采)失败、CEM RAPP(从 RAPP 范围采)成功——直接证明 RAPP 的价值在「缩窄范围」而非「搜算法」本身。BayRn RAPP 也 work,说明 RAPP 与下游搜索算法解耦。
闭环(三阶段,PDF Sec.IV)
Stage A · Safety Instruction(Sec.IV.B)
l = l_task + l_safety
→ GPT-4 在 reward 代码里显式考虑 stability/smoothness/safety
→ R_DrEureka, π_initial = Eureka(M, l) (Eq.6)
Stage B · RAPP(Sec.IV.C / Algorithm 2)
for each DR parameter p: scan values, rollout π_initial
→ 输出 (l_p, h_p) 可行范围
Stage C · LLM DR Generation(Sec.IV.D)
把参数 + RAPP 范围塞进 LLM 上下文
→ LLM zero-shot 生成 m 个独立 DR 配置 T_1, ..., T_m
→ 每个 (R_DrEureka, T_i) 跑 RL → π_final,i = A(M, T_i, R_DrEureka) (Eq.7)
→ m 个 policy 全部上真机评估(仿真里不同 DR 训出的 policy 无法直接比较),报告 best / average
注意:reward design 是迭代的(Eureka 风格的进化搜索),但 DR 生成不迭代——LLM 一次出 $m$ 个候选,全部上真机评估报告 best/average(仿真里不同 DR 训出的 policy 无法比较,见 Sec.IV.D)。
为什么重要
1. 第一次 LLM 生成 reward 支撑 sim-to-real(论文 Sec. V)
论文 Sec. V 实际验证平台是三个任务、两个机器人:
- Unitree Go1 四足(12 DoF,4 条腿):forward locomotion(平地 2 m/s)+ walking globe(四足踩瑜伽球,论文新任务;「walking globe」是杂技名,物理实现就是踩瑜伽球,PDF Sec.VI.C)。walking globe 的仿真环境改编自 DribbleBot(Ji 2023,Go1 玩 soccer ball 的仿真)——soccer 不是独立任务,只是仿真环境来源。walking globe 的难点是 yoga ball 的 deformable / bouncy dynamics,IsaacGym 无法精确建模,恰好 showcase DrEureka 在 zero-config 复杂动力学上的能力。
- LEAP hand 灵巧手(16 DoF,3 指 + 1 thumb,<10K USD 低成本手):in-hand cube rotation(20 秒内转魔方越多越好),observation 仅 16 关节角 + GRU-encoded proprio history(无视觉,无 cube pose)。
关键结果(论文 Table I):
- Go1 forward locomotion:DrEureka Best 1.83 m/s, Average 1.66 m/s > Human-Designed 1.32 m/s;Eureka(无 safety + 无 DR)= 0.0 m/s(完全失败)——证明 safety + DR 缺一不可。
- LEAP cube rotation:DrEureka Best 9.39 rad vs Human-Designed 3.24 rad。
关键 ablation(Table I):
- Without DR:1.21 m/s(掉到 human 水平以下,证明 DR 必须有)
- Without Prior / Uninformative Prior:15/16 policy 触发电机 power protection fault(jerky 危险行为),≈0 m/s——直接证明 RAPP 的必要性。
- CEM Random vs CEM RAPP:CEM 用宽范围采样失败,用 RAPP 范围成功——证明 RAPP 的价值在「缩窄范围」而非「搜算法」本身。
- BayRn RAPP:1.28 m/s,work——证明 RAPP 与下游 search 算法解耦。
2. reward + DR 联合设计的范式
之前 reward 和 DR 是分开调的(先 reward 再 DR),DrEureka 让 LLM 在统一上下文里联合设计,发现两者协同效应远大于分开调。
3. 揭示 sim-to-real 工程的「可程序化」
DrEureka 成功说明:sim-to-real 最痛苦的两件事(reward、DR)都能被 LLM 自动化。这把机器人 RL 工程的门槛大幅降低。
局限
- 剧烈动作仍难:DrEureka 验证的是相对静态的高难度动作(yoga ball 平衡、转魔方),不是 parkour 那种动态剧烈动作。
- LLM 物理直觉弱:对接触/摩擦/形变这类需要物理理解的,LLM 仍可能写出看起来对但实际不 work 的代码。
- RAPP 是 heuristic:one-at-a-time 扫描忽略参数交互,不是理论最优;论文 Sec.IV.C 以「computationally light、可并行」为由选择此设计,未分析参数交互损失。
- 算力成本:每轮要跑 K=16 个 RL 训练 × N=5 reward iteration + m=16 个 DR policy 训练 + RAPP 扫描,GPT-4 调用也贵。
- 真机评估挑 best:因为仿真里没法比较不同 DR 训出的 policy,DrEureka 保留全部 m 个 policy 在真机评估——这在研究里可行,但实际部署不能跑 m 次真机挑最好。
复现要点
- 复现门槛:⭐⭐⭐
- 官方代码 github.com/eureka-research/dreureka,基于 IsaacGym(NVIDIA)。
- LLM 用 GPT-4(论文 Sec. V 明示)。可替换开源 LLM(效果会差)。
- 关键超参:GPT-4 backbone(论文 Sec. V);reward search K=16, N=5(沿用 Eureka 原超参);DR 配置 m=16 个 zero-shot 候选(论文 Sec. V);reward 用 Eureka 原超参,DR 生成不迭代。
- 复现链路:Eureka 是前置依赖(reward design 部分直接继承),DrEureka 在其上多了 safety instruction + RAPP + DR 生成三个新组件。
- 论文里 Unitree Go1(<10K USD)+ LEAP hand(<10K USD) 均为低成本、易获取平台。
相关
- 建立在:Eureka(arXiv:2310.12931,LLM 自动 reward design 的开山)→ 详见 P-Eureka-2023.md
- 引出:VLM 反馈 reward(用视觉判断动作自然度)、RLHF for VLA(reward 微调 VLA)
- 本仓库线索:T03 Reward 演化 第四次转折、T01 sim2real LLM 辅助支线
- 本仓库概念:C-sim2real-methods.md(DrEureka 把 reward 和 DR 绑定,是 sim2real 工程突破)