基于 EmbodiChain 的强化学习训练#

https://raw.githubusercontent.com/RLinf/misc/main/pic/embodichain.gif

EmbodiChain(图片来源:EmbodiChain)。#

EmbodiChain 是一个通过 Gym 风格接口暴露 RL 任务的具身智能实验室框架。你将使用 RLinf 在 EmbodiChain CartPole 任务上,通过 PPO 训练 MLP actor-critic。

概览#

在 EmbodiChain CartPole 上训练基于状态的 MLP policy。

模型

MLP

算法

PPO

任务

CartPole

硬件

1 节点 · 4 GPUs

你将完成: 安装 → 启动 run_embodiment.sh → 观察 rollout reward。
前置条件: 安装 · EmbodiChain 包与任务资源。

任务#

任务

描述

CartPole

使用 configs/agents/rl/basic/cart_pole/gym_config.json 中的状态观测平衡 pole。

观测与动作#

字段

规格

观测

state_keys: ["qpos", "qvel", "qf"] 构造的单个 states 张量。

动作

policy_setup: cartpole-delta-qpos 对应的 2 维连续动作。

奖励

EmbodiChain Gym config 中定义的任务奖励。

提示词

不使用;这是低维状态控制配方。

安装#

首先,克隆 RLinf 仓库:

# 为提高国内下载速度,可以使用镜像:
# git clone https://ghfast.top/github.com/RLinf/RLinf.git
git clone https://github.com/RLinf/RLinf.git
cd RLinf

然后,使用下列两种方式之一准备依赖:预构建的 Docker 镜像(推荐)或自定义环境。 通用的安装流程(前置依赖、GPU 驱动、镜像内置的 switch_env 工具、镜像加速、常见问题排查) 在 安装说明 中统一说明;本方案中的命令仅在 Docker 镜像标签和 --env 取值上有所不同。

Docker 镜像

docker run -it --rm --gpus all \
   --shm-size 32g \
   --network host \
   --name rlinf \
   -v .:/workspace/RLinf \
   rlinf/rlinf:agentic-rlinf0.3-embodichain

# 国内用户可使用:
# docker.1ms.run/rlinf/rlinf:agentic-rlinf0.3-embodichain

在镜像中切换到 EmbodiChain 虚拟环境:

source switch_env embodichain

自定义环境

安装 EmbodiChain 依赖:

# 国内用户可添加 --use-mirror。
bash requirements/install.sh embodied --env embodichain
source .venv/bin/activate

警告

EmbodiChain 的 dexsim 依赖需要 libpython3.xx.so。如果在 UV Python 布局下遇到 libpython3.11.so 运行时错误,请使用 Conda 环境,并重新运行 bash requirements/install.sh embodied --env embodichain --no-root

默认使用已安装包中的配置。如需指向本地 EmbodiChain checkout,请设置:

export EMBODICHAIN_PATH=/path/to/EmbodiChain

如果运行时提示缺少任务资源,请在同一个 Python 环境中下载:

export EMBODICHAIN_DATA_ROOT=/path/to/data
python -m embodichain.data download --name CartPole
python -m embodichain.data download --name SimResources

下载模型#

不需要检查点。MLP policy 从头开始训练。

运行#

启动 CartPole 配方:

配方

配置

命令后缀

MLP + PPO

examples/embodiment/config/embodichain_ppo_cart_pole.yaml

embodichain_ppo_cart_pole

bash examples/embodiment/run_embodiment.sh embodichain_ppo_cart_pole

这条命令会:

  1. 通过 gym_config_path 加载 EmbodiChain CartPole Gym JSON。

  2. 为 actor、rollout 和 EmbodiChain env 组件创建 Ray worker。

  3. 将配置的状态字段拼接成 states,并使用 PPO 训练 MLP policy。

备注

将此配方迁移到其他 EmbodiChain 任务时,请保持 actor.model.obs_dimactor.model.action_dimactor.model.policy_setup 与任务配置一致。

可视化与结果#

默认配置使用 W&B 记录日志。可改为 TensorBoard:

runner:
  logger:
    logger_backends: ["tensorboard"]

然后在 RLinf 仓库根目录启动 TensorBoard:

tensorboard --logdir ../results --port 6006

完整指标说明见 训练指标

评测与 CI#

EmbodiChain CartPole 也被 embodied e2e 配置覆盖,位于 tests/e2e_tests/embodied/。仅当需要非默认 checkout 时设置 EMBODICHAIN_PATH