备注
Ray 2.10.0 引入了 RLlib 的“新 API 栈”的 alpha 阶段。Ray 团队计划将算法、示例脚本和文档迁移到新的代码库中,从而在 Ray 3.0 之前的后续小版本中逐步替换“旧 API 栈”(例如,ModelV2、Policy、RolloutWorker)。
然而,请注意,到目前为止,只有 PPO(单代理和多代理)和 SAC(仅单代理)支持“新 API 堆栈”,并且默认情况下继续使用旧 API 运行。您可以继续使用现有的自定义(旧堆栈)类。
请参阅此处 以获取有关如何使用新API堆栈的更多详细信息。
算法#
The Algorithm
类是 RLlib 中负责 RL 算法 何时 和 何事 的最高级 API。例如,何时 我们应该采样算法,何时 我们应该执行神经网络更新等。如何 执行将委托给 RolloutWorker
等组件。它是 RLlib 用户与 RLlib 算法交互的主要入口点。它允许你训练和评估策略,保存实验进度并在继续 RL 运行时从先前保存的实验中恢复。Algorithm
是 Trainable
的子类,因此完全支持 RL 的分布式超参数调优。
算法配置API#
The AlgorithmConfig
class represents
the primary way of configuring and building an Algorithm
.
You don’t use AlgorithmConfig
directly in practice, but rather use its algorithm-specific
implementations such as PPOConfig
, which each come
with their own set of arguments to their respective .training()
method.
构造函数#
RLlib 的 AlgorithmConfig 根据给定的配置构建一个 RLlib 算法。 |
公共方法#
创建此配置的深层副本,并在必要时(解)冻结。 |
|
验证此配置中的所有值。 |
|
冻结此配置对象,使得不再能设置任何属性。 |
构建器方法#
从此 AlgorithmConfig(或其副本)构建一个算法。 |
|
基于 |
|
基于 |
配置方法#
设置回调配置。 |
|
设置配置的调试设置。 |
|
设置配置的 RL-环境设置。 |
|
设置配置的评估设置。 |
|
设置配置的实验性设置。 |
|
设置配置的容错设置。 |
|
设置配置的深度学习框架设置。 |
|
设置配置的多代理设置。 |
|
设置配置的离线数据设置。 |
|
设置配置的Python环境设置。 |
|
设置配置的报告设置。 |
|
指定为算法及其 ray 角色/工作者分配的资源。 |
|
设置配置的 RLModule 设置。 |
|
设置与训练相关的配置。 |
Getter 方法#
返回用于此算法的学习器类。 |
|
返回用于此算法的 RLModule 规范。 |
|
从 |
|
返回基于给定环境/空间的 MultiRLModuleSpec。 |
|
从 |
|
如果设置为“auto”,则会自动推断出适当的 rollout_fragment_length 设置。 |
杂项方法#
检测 |
构建自定义算法类#
警告
从 Ray >= 1.9 开始,不再推荐使用 build_trainer()
实用函数来创建自定义的 Algorithm 子类。相反,请遵循这里的简单指南,直接从 Algorithm
进行子类化。
为了创建一个自定义算法,子类化 Algorithm
类并重写其一个或多个方法。特别是以下方法:
算法 API#
构造函数#
一个负责优化一个或多个策略的RLlib算法。 |
|
子类应重写此方法以进行自定义初始化。 |
|
推理与评估#
在本地Worker上为指定策略计算一个动作。 |
|
在本地工作者上为指定策略计算一个动作。 |
|
在 |
保存与恢复#
从给定的检查点创建一个新的算法实例。 |
|
从状态对象中恢复算法。 |
|
返回一个将模块/策略ID映射到权重的字典。 |
|
通过模块/策略ID设置RL模块/策略的权重。 |
|
基于 export_formats 导出模型。 |
|
将导出策略检查点保存到本地目录并返回一个 AIR 检查点。 |
|
将具有给定 policy_id 的导出策略模型导出到本地目录。 |
|
从给定的模型检查点恢复训练状态。 |
|
尝试恢复不健康的 EnvRunner,如果成功,则与本地同步。 |
|
将当前模型状态保存到检查点。 |
|
将检查点导出到本地目录。 |
训练#
运行一次训练的逻辑迭代。 |
|
算法的默认单次迭代逻辑。 |
多智能体#
向此算法添加新策略。 |
|
从此算法中移除一个策略。 |