Environment Generation

使用LLM生成RL environment

EnvGen: Generating and Adapting Environments via LLMs for Training Embodied Agents

2403.12014v2_EnvGen.pdf

  • publish: COLM 2024

动机

  • 使用LLM生成和调整多种不同的训练环境, 以增强对原始环境(不是LLM生成的环境)的表现能力
  • 少量LLM的调用, 减少计算开销

环境生成

输入:

  1. 环境的简要描述以及LLM需要执行的操作
  2. 目标, LLM可以操控的环境参数, 生成中的规则约束
  3. 一个JSON模板, 让LLM将环境参数填到相应位置
  4. Agent的feedback

输出: 包含环境参数的JSON, 用于生成完整的Environment

transition和reward由原始的环境提供, LLM不参与生成

训练

进行正常的训练.

评估在原始环境中的表现情况, 计算每个目标的成功率, 并将此反馈给LLM, 用以调整下一次的生成

防止overfit到LLM生成的Environment中, 隔一定间隔对原始环境进行一次训练

RoboVerse

  • 安装: 配置项比较多, 数据量大, 下载困难
  • 部分代码有问题, 无法正常启动, 依赖冲突

Robocasa

robot的environment位于RoboSuite, 封装了自己的Environment

实际调用: robosuite的make方法创建一个环境, 配置参数由dataset定义

  • env_name: 创建的环境名字
  • robots: 包含的robot, robosuite支持多机器人, 但是robocasa的kitchen只支持一个机器人
  • controller_configs: 包含mujoco的controller的配置(kp, limits等等)

当前进度:

  • 已完成panda mobile robot的操控
  • 即将完成G1 robot的集成

未来计划:

  • 添加G1 robot的controller config, 完成G1 robot的集成
  • 测试G1 robot
  • 尝试进行RL的训练