cleanrl
CleanRL 是一个专注于深度强化学习(DRL)的高质量开源库,其核心理念是将复杂的算法实现浓缩在单个独立的 Python 文件中。它支持 PPO、DQN、SAC 等主流算法,并针对 Atari 等经典环境提供了经过基准测试的参考代码。
传统模块化 DRL 库虽然功能强大,但往往因代码分散和层层封装而难以阅读,导致研究人员难以透彻理解算法细节或快速复现论文结果。CleanRL 正是为了解决这一痛点而生:它牺牲了一定的代码复用性,换取了极致的代码清晰度与可读性。例如,一个完整的 PPO Atari 实现仅需约 340 行代码,却包含了所有关键逻辑,让用户无需在多个文件间跳转即可掌握算法全貌。
该工具特别适合强化学习领域的研究人员、学生以及希望深入理解算法底层实现的开发者。如果你需要快速原型验证、调试特定算法变体,或者单纯想通过阅读源码来学习 DRL,CleanRL 是理想的选择。此外,它还内置了 TensorBoard 日志记录、实验复现种子控制、游戏视频录制以及与 Weights & Biases 和 AWS 的云集成等功能,极大地便利了科研实验的管理与扩展。需要注意的是,CleanRL 并非设计为被导入调用的模块化库,而是作为一份清晰、可执行的“活文档”供用户直接运行和研究。
使用场景
某高校强化学习实验室的研究员正在复现一篇关于改进 PPO 算法在 Atari 游戏中表现的顶会论文,需要快速验证核心想法并记录实验数据。
没有 cleanrl 时
- 代码阅读成本极高:主流模块化库(如 Stable Baselines3)将算法逻辑分散在数十个文件中,研究员需花费数天追踪类继承关系才能理解底层细节。
- 调试与修改困难:想要添加一个自定义的奖励裁剪机制,往往需要重写整个子类或修改库源码,极易引入难以排查的 Bug。
- 实验复现繁琐:手动配置 TensorBoard 日志、视频录制和随机种子管理容易出错,导致实验结果无法精确复现,浪费大量时间在工程琐事上。
- 部署门槛高:将本地原型迁移到 AWS 云端进行大规模并行实验时,缺乏集成的 Docker 和云脚本支持,环境配置耗时耗力。
使用 cleanrl 后
- 单文件一目了然:直接打开
ppo_atari.py,仅 340 行代码就包含了从网络构建到训练循环的所有细节,研究员半天内即可完全吃透算法实现。 - 原型迭代极速:得益于无复杂继承的单文件结构,研究员直接在脚本中修改了奖励函数逻辑,无需担心副作用,调试效率提升数倍。
- 开箱即用的实验管理:启动脚本自动集成 TensorBoard 日志、游戏视频捕获及 W&B 追踪,确保每次实验的种子、超参和结果都可追溯且可复现。
- 无缝云端扩展:利用内置的 Docker 和 AWS Batch 集成脚本,轻松将单机验证成功的代码扩展为上千次并行实验,加速了论文数据的产出。
cleanrl 通过极致的单文件设计消除了强化学习研究中的工程黑盒,让研究者能专注于算法创新而非代码架构。
运行环境要求
- Linux
- macOS
- Windows
- 非必需(支持 CPU 运行)
- 部分高性能变体(如 envpool, Isaac Gym, JAX/XLA)需要 NVIDIA GPU 以获得加速,具体显存和 CUDA 版本取决于所选算法和环境,文中未明确指定最低要求
未说明

快速开始
CleanRL(强化学习算法的简洁实现)
CleanRL 是一个深度强化学习库,提供高质量的单文件实现,并具备适合研究的功能。其实现简洁明了,同时我们也可以通过 AWS Batch 将其扩展到运行数千个实验。CleanRL 的亮点功能包括:
- 📜 单文件实现
- 算法变体的所有细节都集中在一个独立的文件中。
- 例如,我们的
ppo_atari.py只有 340 行代码,却包含了 PPO 如何与 Atari 游戏配合工作的全部实现细节,因此对于那些不想阅读整个模块化库的人来说,这是一个非常好的参考实现。
- 📊 已基准化的实现(在 https://benchmark.cleanrl.dev 上有 7 种以上算法和 34 款以上游戏)
- 📈 TensorBoard 日志记录
- 🪛 通过种子设置实现本地可重复性
- 🎮 游戏过程视频录制
- 🧫 使用 Weights and Biases 进行实验管理
- 💸 与 Docker 和 AWS 的云端集成
您可以在我们的 JMLR 论文 和 文档 中了解更多关于 CleanRL 的信息。
值得关注的 CleanRL 相关项目:
- corl-team/CORL:以 CleanRL 风格实现的离线强化学习算法
- pytorch-labs/LeanRL:使用 CUDAGraphs 对 CleanRL 强化学习算法进行快速优化的 PyTorch 实现。
ℹ️ 对 Gymnasium 的支持:Farama-Foundation/Gymnasium 是
openai/gym的下一代版本,将继续维护并引入新功能。请参阅他们的 公告 以获取更多详细信息。我们正在迁移到gymnasium,进度可以在 vwxyzjn/cleanrl#277 中跟踪。
⚠️ 注意:CleanRL 并非模块化库,因此不适合被导入。为了减少代码重复,我们将每个 DRL 算法变体的所有实现细节都设计得易于理解,所以 CleanRL 既有优点也有缺点。如果您希望 1) 理解某个算法变体的所有实现细节,或 2) 原型化其他模块化 DRL 库不支持的高级功能(CleanRL 代码量较少,调试体验极佳,且无需像某些模块化 DRL 库那样进行大量子类化),那么您可以考虑使用 CleanRL。
快速入门
前提条件:
- Python >=3.7.1,<3.11
- uv 0.7.9+
要在本地运行实验,请尝试以下步骤:
git clone https://github.com/vwxyzjn/cleanrl.git && cd cleanrl
uv pip install .
# 或者,您也可以使用 `uv venv`,然后执行
# `python run cleanrl/ppo.py`
uv run python cleanrl/ppo.py \
--seed 1 \
--env-id CartPole-v0 \
--total-timesteps 50000
# 打开另一个终端,进入 `cd cleanrl/cleanrl`
tensorboard --logdir runs
要使用 wandb 进行实验跟踪,请运行以下命令:
wandb login # 仅首次需要
uv run python cleanrl/ppo.py \
--seed 1 \
--env-id CartPole-v0 \
--total-timesteps 50000 \
--track \
--wandb-project-name cleanrltest
如果您没有使用 uv,可以使用 requirements.txt 安装 CleanRL:
# 核心依赖
pip install -r requirements/requirements.txt
# 可选依赖
pip install -r requirements/requirements-atari.txt
pip install -r requirements/requirements-mujoco.txt
pip install -r requirements/requirements-mujoco_py.txt
pip install -r requirements/requirements-procgen.txt
pip install -r requirements/requirements-envpool.txt
pip install -r requirements/requirements-pettingzoo.txt
pip install -r requirements/requirements-jax.txt
pip install -r requirements/requirements-docs.txt
pip install -r requirements/requirements-cloud.txt
pip install -r requirements/requirements-memory_gym.txt
要在其他游戏中运行训练脚本:
uv venv
# 经典控制
python cleanrl/dqn.py --env-id CartPole-v1
python cleanrl/ppo.py --env-id CartPole-v1
python cleanrl/c51.py --env-id CartPole-v1
# Atari
uv pip install ".[atari]"
python cleanrl/dqn_atari.py --env-id BreakoutNoFrameskip-v4
python cleanrl/c51_atari.py --env-id BreakoutNoFrameskip-v4
python cleanrl/ppo_atari.py --env-id BreakoutNoFrameskip-v4
python cleanrl/sac_atari.py --env-id BreakoutNoFrameskip-v4
# 新增:使用 envpool 的 Atari 版本可实现 3–4 倍无副作用的速度提升(仅限 Linux)
uv pip install ".[envpool]"
python cleanrl/ppo_atari_envpool.py --env-id BreakoutNoFrameskip-v4
# 大约 5–10 分钟即可学会 Pong-v5
# 可能会出现采样效率降低等副作用
uv run python ppo_atari_envpool.py --clip-coef=0.2 --num-envs=16 --num-minibatches=8 --num-steps=128 --update-epochs=3
# Procgen
uv pip install ".[procgen]"
python cleanrl/ppo_procgen.py --env-id starpilot
python cleanrl/ppg_procgen.py --env-id starpilot
# PPO + LSTM
uv pip install ".[atari]"
python cleanrl/ppo_atari_lstm.py --env-id BreakoutNoFrameskip-v4
您也可以使用 Gitpod 托管的预构建开发环境:
已实现的算法
开放强化学习基准
为了使我们的实验数据更加透明,CleanRL 参与了一个名为 Open RL Benchmark 的相关项目。该项目收录了来自多个流行深度强化学习库的跟踪实验,包括我们自己的 CleanRL、Stable-baselines3、openai/baselines、jaxrl 等。
请访问 https://benchmark.cleanrl.dev/,那里汇集了 Weights and Biases 报告,展示了各种深度强化学习实验的跟踪结果。这些报告是交互式的,研究人员可以轻松查询诸如 GPU 利用率以及智能体游戏过程视频等信息——而这些信息在其他强化学习基准中通常难以获取。未来,Open RL Benchmark 很可能会提供一个数据集 API,方便研究人员轻松访问这些数据(详见 仓库)。

支持与参与
我们有一个 Discord 社区,欢迎前来寻求支持或提问。也欢迎大家在 Github Issues 中提交问题和拉取请求。此外,我们过去的视频记录可以在 YouTube 上观看。
引用 CleanRL
如果您在工作中使用了 CleanRL,请引用我们的技术论文:
@article{huang2022cleanrl,
author = {Shengyi Huang and Rousslan Fernand Julien Dossa and Chang Ye and Jeff Braga and Dipam Chakraborty and Kinal Mehta and João G.M. Araújo},
title = {CleanRL: 高质量的单文件深度强化学习算法实现},
journal = {机器学习研究期刊},
year = {2022},
volume = {23},
number = {274},
pages = {1--18},
url = {http://jmlr.org/papers/v23/21-1342.html}
}
致谢
CleanRL 是一个由社区驱动的项目,我们的贡献者们在多种硬件上运行实验。
- 我们感谢众多贡献者利用自己的计算机进行实验。
- 我们感谢 Google 的 TPU 研究云 提供的 TPU 资源。
- 我们感谢 Hugging Face 的集群提供的 GPU 资源。
版本历史
v1.0.02022/11/14v1.0.0b22022/10/03v1.0.0b12022/06/07v0.6.02022/03/16v0.5.02021/11/12v0.4.82021/05/16v0.4.72021/05/12v0.4.62021/05/12v0.4.52021/04/19v0.4.42021/04/16v0.2.12021/04/13v0.4.32021/04/11v0.4.22021/04/11v0.4.12021/04/110.4.02020/09/240.3.02020/08/010.2.12020/01/09V0.12019/10/07常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
n8n
n8n 是一款面向技术团队的公平代码(fair-code)工作流自动化平台,旨在让用户在享受低代码快速构建便利的同时,保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点,帮助用户轻松连接 400 多种应用与服务,实现复杂业务流程的自动化。 n8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”:既可以通过直观的可视化界面拖拽节点搭建流程,也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外,n8n 原生集成了基于 LangChain 的 AI 能力,支持用户利用自有数据和模型构建智能体工作流。在部署方面,n8n 提供极高的自由度,支持完全自托管以保障数据隐私和控制权,也提供云端服务选项。凭借活跃的社区生态和数百个现成模板,n8n 让构建强大且可控的自动化系统变得简单高效。
AutoGPT
AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台,核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点,让用户只需设定目标,AI 即可自主规划步骤、调用工具并持续运行直至完成任务。 无论是开发者、研究人员,还是希望提升工作效率的普通用户,都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体;研究人员能基于开源架构探索多智能体协作机制;而非技术背景用户也可直接选用预置的智能体模板,立即投入实际工作场景。 AutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑,每个块负责单一动作,灵活且易于调试。同时,平台支持本地自托管与云端部署两种模式,兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本,即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛,让人人都能成为 AI 的创造者与受益者。
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。