Skip to content

数据集与工具档案

本页速览 环境库(Gymnasium、MuJoCo、Brax、Isaac Gym/Lab)、基准(Atari、Procgen、DM Control、Meta-World、Maze)、数据(D4RL、RL Unplugged)、工具链(W&B、TensorBoard、Hydra、Optuna)。

数据集与工具档案 ​

一句话定位:这一页是 RL 工程的"五金店货架"——环境库、基准套件、离线数据集、训练工具链四大类资源全部按表格列清:名字、干什么用、动作空间什么样、怎么装、什么时候选它,省去你到处搜安装文档的时间。

先看全貌

RL 的"数据集"和 ML 不太一样:多数时候数据集是环境本身(你在和它交互采样),只有离线 RL 才用静态数据集。所以本页先讲环境与基准(占日常工作的 80%),再讲离线数据集,最后是训练工具链。

一、环境库(Environment Libraries) ​

环境库用途 / 典型问题动作空间安装备注
Gymnasium标准接口规范 + 经典环境集合(CartPole、MountainCar、Pendulum、LunarLander…)离散/连续都有pip install gymnasium事实标准,几乎一切库都兼容,建议第一个学
MuJoCo连续控制物理仿真(机器人关节、行走)连续pip install mujoco(再装 gymnasium[mujoco])深度 RL 连续控制的主力基准;现由 DeepMind 维护
BraxGPU 并行物理仿真(可达百万环境同时跑)连续pip install brax(需要 JAX)训练吞吐比 CPU 高两个量级,研究/大规模用
Isaac Gym / Isaac LabNVIDIA 的 GPU 仿真,面向腿式/灵巧手/具身智能连续需单独下载 Isaac SimIsaac Gym 已并入 Isaac Lab,新项目直接用 Isaac Lab
PettingZoo多智能体环境标准(合作/对抗)离散/连续pip install pettingzooMARL 的事实标准,配套 SuperSuit 包装器
VizDoom第一人称 3D 环境(Doom 引擎)离散pip install vizdoom视觉导航 + 部分可观测研究的经典
Minigrid2D 网格世界,极简可调离散pip install minigrid教学与算法消融的首选,跑得快
HighwayEnv驾驶/交通场景离散/连续pip install highway-env自动驾驶决策的轻量研究环境
JumanjiInstaDeep 的组合优化环境套件离散/连续pip install jumanji调度、路由、游戏等组合问题,JAX 加速
SMAC《星际争霸2》微观战斗(学术版)离散需要 SC2 本体MARL 经典基准(已停更,但论文仍常用)

Gymnasium 与旧版 Gym 的关系

OpenAI Gym 在 2022 年停止维护,社区接力维护为 Gymnasium(Farama Foundation)。新代码一律用 import gymnasium as gym。老教程里的 gym.Env 与新接口差异主要在 reset() 返回与 render 模式,本站渐进式教程里有详细对照。

环境安装速查 ​

最常用的三个安装命令(Python 3.9+,建议先用 conda/venv 建独立环境):

bash
pip install gymnasium                 # 标准环境接口 + 经典小环境
pip install gymnasium[mujoco]         # 顺手装 MuJoCo 连续控制环境(会自动装 mujoco)
pip install brax                      # GPU 加速仿真(需要 JAX,CPU 也能跑但慢)

装完自测:

python
import gymnasium as gym
env = gym.make("CartPole-v1", render_mode="rgb_array")
obs, info = env.reset(seed=42)        # 新版 API:reset 返回 (obs, info)
obs, reward, terminated, truncated, info = env.step(env.action_space.sample())
print(obs.shape, reward, terminated, truncated)

安装的三个常见坑

  1. 渲染缺包:render_mode 报错多因缺 pygame 等依赖,装 pip install gymnasium[classic-control] 可一起带上。
  2. MuJoCo 报 GL 错误:服务器无显示器时用 render_mode="rgb_array" 或 MUJOCO_GL=egl。
  3. 版本锁定:记录 pip freeze > requirements.txt,否则几天后重跑结果就可能对不上。更多坑见常见陷阱与反模式。

二、基准套件(Benchmark Suites) ​

基准不是"环境",而是一组约定好评估协议的任务集,用来横向比较算法。

基准套件内容动作空间特点 / 适合评估什么来源
Atari(ALE)50+ 个雅达利游戏(像素输入)离散(18 种动作)视觉 RL 与样本效率的标准战场,DQN/Rainbow 的主场Farama 维护:https://github.com/Farama-Foundation/Arcade-Learning-Environment
MuJoCo 套件(Gym 版)HalfCheetah、Hopper、Ant、Walker2d、Humanoid连续连续控制与策略梯度/AC 家族的标配MuJoCo 官网:https://mujoco.org/
Procgen16 个程序化生成的游戏离散泛化测试:每个游戏训练分布与测试分布不同OpenAI:https://github.com/openai/procgen
DM Control Suite30+ 个连续控制任务(含视觉版)连续更精细的物理任务 + 视觉版本,DeepMind 系论文常用DeepMind:https://github.com/deepmind/dm_control
Meta-World50 个桌面机械臂操作任务连续多任务/元学习评估(单任务、多任务、快速适应三档)Farama 维护:https://github.com/Farama-Foundation/Meta-World
RLBench100+ 个桌面操作任务(仿真臂)连续机器人操作 + 大规模 RL 训练的现代基准https://github.com/stepjam/RLBench
MazeMeta 的多智能体任务库离散/连续MARL 与分层决策研究Facebook Research:https://github.com/facebookresearch/maze

基准的"江湖地位"与批评

Atari 和 MuJoCo 是 2013–2020 年的黄金基准,但今天有明确批评:样本效率是主要瓶颈,经典基准太"廉价"——一个简单算法在经典基准上可能看起来很好,却无法泛化到真实问题。因此 2020 年代的新基准(Procgen、Meta-World、RLBench、Isaac Lab)强调"泛化"与"部署前测试"。评估协议怎么设计才公平,见评估与基准与从零搭一套 RL 评估。

三、离线 RL 数据集 ​

离线 RL 需要固定历史数据集(交互记录),常见的公共数据集如下。

数据集内容 / 来源数据形态典型用途地址
D4RL四类域:Gym-MuJoCo(机器人)、Adroit(灵巧手)、FrankaKitchen(厨房任务)、AntMaze(蚂蚁走迷宫)(s, a, r, s′) 轨迹,按数据质量分 medium/expert/replay 档离线 RL 论文事实标准,几乎所有方法都在这里评测https://github.com/Farama-Foundation/D4RL
RL UnpluggedDeepMind 提供:Atari 与 DM Control 的大规模交互数据(按 agent 的收集强度分档)海量轨迹大规模离线评估与数据缩放研究https://github.com/deepmind/rl_unplugged
NeoRL工业友好型离线数据集(含数据质量分层)轨迹 + 离线策略评估配套离线评估方法研究https://github.com/polixir/NeoRL

D4RL 的四个数据域(都在一个数据集里,别只跑一个域) ​

D4RL 常被误当成"一个数据集",其实它是四类任务域的合集,算法在不同域上的表现差异巨大:

数据域任务形态状态/动作算法必须克服的难点
Gym-MuJoCo机器人行走(Hopper、HalfCheetah 等)连续最容易上手,几乎所有离线算法都在此验证
AntMaze蚂蚁机器人导航穿越迷宫连续稀疏奖励 + 长时序,是区分方法强弱的试金石
Adroit灵巧手操作(开门、转笔)高维连续数据稀缺(人类演示少),考验样本利用率
FrankaKitchen厨房多阶段操作连续多阶段长程任务,考验组合泛化

论文结论别跨域外推

在 Gym-MuJoCo 上好用的方法(如简单 BC 回归)到 AntMaze 可能完全失效;反之亦然。看离线 RL 论文时,必须确认它报告了哪几个域,别拿一个域的结果当全局结论。详见离线强化学习。

数据质量分档的含义 ​

D4RL 里同一环境会有 -medium、-medium-replay、-expert 等版本,这直接决定任务难度:

分档数据是怎么来的对算法的考验
-expert专家策略采样几乎"最简单",行为克隆都能做得不错
-medium中等水平策略采样要求算法学会改进而非模仿
-medium-replay训练过程的回放缓冲区数据混合了多种质量,考验利用非最优数据
-random随机策略采样几乎不可学,作为下界对照

离线 RL 的评估陷阱

离线 RL 最隐蔽的坑是:训练时没有"在线验证"这一步。你只能在训练集上评测,而策略会利用 OOD 高估刷分。可靠的检查方式是:(1) 和D4RL 等基准上的官方实现结果对比;(2) 用离线评估方法(如 fitted Q-evaluation)做二次确认。别只信训练曲线。

四、训练工具链 ​

工具链按"记录 → 调参 → 配置 → 实验管理 → 并行加速"五类组织。

类别工具干什么地址
指标记录TensorBoard学习曲线、标量/直方图可视化,RL 入门标配https://www.tensorflow.org/tensorboard
指标记录Weights & Biases(W&B)云端实验跟踪、对比与团队协作https://wandb.ai/
超参调优Optuna贝叶斯优化/随机搜索,轻量、与任意训练循环可集成https://optuna.org/
超参调优Ray Tune分布式超参搜索,适合大规模并行的 RL 实验https://docs.ray.io/en/latest/tune/
配置管理Hydra用 YAML 声明式管理实验配置,RL 复现神器https://hydra.cc/
实验管理MLflow实验记录 + 模型注册 + 部署追踪https://mlflow.org/
实验管理Sacred学术实验日志与配置管理(较老但仍常用)https://github.com/IDSIA/sacred
分布式/加速Ray分布式任务调度,RLlib 的底座https://www.ray.io/
环境吞吐加速EnvPool高吞吐并行环境采样(C++ 核心)https://github.com/sail-sg/envpool
环境吞吐加速Sample Factory异步大规模 RL 训练框架(Atari/机器人)https://github.com/alex-petrenko/sample-factory

工具链怎么搭配:一个最小实验骨架 ​

工具不是堆得越多越好。下面这个骨架覆盖"跑通 → 记录 → 调参 → 复现"全流程,个人项目够用:

python
# 1. 固定 seed(先于一切)
seed = 42
env = gym.make("CartPole-v1")
obs, _ = env.reset(seed=seed)

# 2. 训练循环(以 SB3 为例)
from stable_baselines3 import PPO
model = PPO("MlpPolicy", env, seed=seed,
            tensorboard_log="./logs/")   # TensorBoard 记录
model.learn(total_timesteps=200_000)

# 3. 调参交给 Optuna(示例只列关键超参)
#   search_space = {"learning_rate": (1e-5, 3e-3, "log-uniform"), "gamma": (0.9, 0.999)}
#   optuna.create_study(direction="maximize").optimize(objective, n_trials=50)

# 4. 配置与复现交给 Hydra:把上面所有参数放进 config.yaml,固定版本后存 requirements.txt

配套职责分工:TensorBoard 看曲线 → Optuna 找超参 → Hydra 管配置 → MLflow/W&B 管实验归档。要上规模的团队再加 Ray;个人项目加 Ray 基本是过度工程。

最小工程组合

对绝大多数个人项目,一套够用的组合是:Gymnasium + Stable-Baselines3(或 CleanRL)+ TensorBoard + Optuna + Hydra。等你需要分布式训练或产出级实验矩阵时,再引入 Ray/W&B。别一开始就上全套,RL 的坑主要在算法与环境,不在工具数量。

五、怎么选:一张决策表 ​

你的场景环境/基准算法库数据集工具链
第一次学 RLGymnasium 的 CartPole / LunarLander手写 + CleanRL不需要TensorBoard
研究连续控制MuJoCo / DM ControlSB3、TianshouD4RL(若做离线)W&B + Optuna
机器人仿真 → 部署MuJoCo → Isaac Lab / RLBenchSAC/PPO(SB3 或自研)自采数据 + 域随机化Hydra + MLflow
大规模并行实验Brax / EnvPoolPureJaxRL / Ray RLlibRL UnpluggedW&B + Ray Tune
多智能体PettingZoo / SMAC / MazeMAPPO(自研或 MARLlib)自采W&B + Hydra
离线 RL 研究D4RL / NeoRLd3rlpy(第三方离线库)或自研D4RL / RL UnpluggedW&B + Optuna

d3rlpy 是知名的离线 RL 库(https://github.com/takuseno/d3rlpy),做离线 RL 实验时值得一用。

六、与本站其他页面联动 ​

工具链版本锁定

RL 实验复现失败的最常见原因之一就是环境/库版本漂移:Gymnasium API 改过、SB3 版本算法行为不同、MuJoCo 渲染接口变化。工程上务必用 requirements.txt(甚至 conda-lock)锁定全部依赖版本,并在 README 里写清 pip freeze。细节见常见陷阱与反模式。

延伸阅读 ​

参考资料 ​