[ PROMPT_NODE_27068 ]
pufferlib
[ SKILL_DOCUMENTATION ]
# PufferLib - 高性能强化学习
## 概述
PufferLib 是一个高性能强化学习库,专为快速并行环境仿真和训练而设计。通过优化的向量化、原生多智能体支持和高效的 PPO 实现 (PuffeRL),它实现了每秒数百万步的训练速度。该库提供了包含 20 多个环境的 Ocean 套件,并与 Gymnasium、PettingZoo 及专业 RL 框架无缝集成。
## 何时使用此技能
在以下情况使用此技能:
- **训练 RL 智能体**:在任何环境(单智能体或多智能体)中使用 PPO。
- **创建自定义环境**:使用 PufferEnv API。
- **优化性能**:针对并行环境仿真进行优化(向量化)。
- **集成现有环境**:来自 Gymnasium, PettingZoo, Atari, Procgen 等。
- **开发策略**:使用 CNN, LSTM 或自定义架构。
- **扩展 RL**:达到每秒数百万步以加快实验速度。
- **多智能体 RL**:利用原生多智能体环境支持。
## 核心能力
### 1. 高性能训练 (PuffeRL)
PuffeRL 是 PufferLib 优化的 PPO+LSTM 训练算法,可实现 1M-4M 步/秒。
**快速开始训练:**
bash
# CLI 训练
puffer train procgen-coinrun --train.device cuda --train.learning-rate 3e-4
# 分布式训练
torchrun --nproc_per_node=4 train.py
**Python 训练循环:**
python
import pufferlib
from pufferlib import PuffeRL
# 创建向量化环境
env = pufferlib.make('procgen-coinrun', num_envs=256)
# 创建训练器
trainer = PuffeRL(
env=env,
policy=my_policy,
device='cuda',
learning_rate=3e-4,
batch_size=32768
)
# 训练循环
for iteration in range(num_iterations):
trainer.evaluate() # 收集 rollout
trainer.train() # 在批次上训练
trainer.mean_and_log() # 记录结果
**获取全面的训练指南**,请阅读 `references/training.md` 以了解:
- 完整的训练工作流和 CLI 选项
- 使用 Protein 进行超参数调优
- 分布式多 GPU/多节点训练
- 日志记录器集成 (Weights & Biases, Neptune)
- 检查点保存与恢复训练
- 性能优化技巧
- 课程学习模式
### 2. 环境开发 (PufferEnv)
使用 PufferEnv API 创建自定义高性能环境。
**基本环境结构:**
python
import numpy as np
from pufferlib import PufferEnv
class MyEnvironment(PufferEnv):
def