pytorch/rl

A modular, primitive-first, python-first PyTorch library for Reinforcement Learning.

解决的问题

TorchRL 提供一个模块化、PyTorch 原生的工具包,用于构建强化学习(RL)系统。通过使用统一的数据模型,使环境、策略、回放缓冲区和损失函数能够无需重写整个训练栈即可轻松替换和组合,从而消除了对大量“粘合代码”和僵化数据结构的需求。

工作原理

该库以 TensorDict 为核心,TensorDict 是一种类似字典的容器,可携带命名张量(观测、动作、奖励等)贯穿训练循环。这使得数据在不同组件之间保持其结构、批量维度和设备位置:

  • 策略:读取和写入 TensorDict 中特定键的 PyTorch 模块。
  • 环境:处理交互循环的模块,支持原生 PyTorch 环境以及 Gymnasium 和 MuJoCo 等库的包装器。
  • 收集器:管理执行循环的桥梁,可从一个或多个工作进程(单进程、异步或分布式)批量收集轨迹。
  • 回放缓冲区:模块化存储系统,支持数据采样与转换,包括优先级回放和基于 memmap 的存储。
  • 损失模块:基于 TensorDict 中命名键计算可微损失(如 PPO、SAC、DQN)的目标函数。

适用人群

TorchRL 专为从事强化学习、机器人学、决策制定、仿真,以及 LLM 后训练实验(如 GRPO)的研究人员和开发者设计。

主要亮点

  • 可组合架构:环境、策略和缓冲区的独立模块,可轻松替换。
  • 广泛的算法支持:支持 PPO、SAC、TD3、DQN、DreamerV3 以及多智能体算法如 MAPPO 和 IPPO 的实现。
  • 高性能:针对 torch.compile、CUDA 和分布式执行进行了优化,为递归强化学习提供专用 Triton 后端。
  • 丰富的环境集成:原生支持 MuJoCo,并提供 Gymnasium、PettingZoo 和 Isaac Lab 的包装器。
  • LLM 集成:提供 LLM 后训练工具,包括 SFT 和 GRPO 目标函数,以及 vLLM/SGLang 集成。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目