备注

Ray 2.10.0 引入了 RLlib 的“新 API 栈”的 alpha 阶段。Ray 团队计划将算法、示例脚本和文档迁移到新的代码库中,从而在 Ray 3.0 之前的后续小版本中逐步替换“旧 API 栈”(例如,ModelV2、Policy、RolloutWorker)。

然而,请注意,到目前为止,只有 PPO(单代理和多代理)和 SAC(仅单代理)支持“新 API 堆栈”,并且默认情况下继续使用旧 API 运行。您可以继续使用现有的自定义(旧堆栈)类。

请参阅此处 以获取有关如何使用新API堆栈的更多详细信息。

重放缓冲区 API#

以下类没有考虑不同策略之间的经验分离,多智能体回放缓冲区将在下面进一步解释。

重放缓冲区基类#

StorageUnit

指定如何在 ReplayBuffer 中组织批次。

ReplayBuffer

RLlib 使用的最低级别重放缓冲区接口。

PrioritizedReplayBuffer

这个缓冲区实现了优先经验回放。

ReservoirReplayBuffer

此缓冲区实现了水库采样。

公共方法#

sample

从该缓冲区中采样 num_items 个项目。

add

将一批经验或其他数据添加到此缓冲区。

get_state

返回字典中的所有本地状态。

set_state

将所有本地状态恢复到提供的 state

多智能体缓冲区#

以下类使用上述的“单一代理”缓冲区作为底层缓冲区,以便在不同代理的策略之间分割经验。在多代理强化学习中,环境中存在多个代理,并且并非所有这些代理都可能使用相同的策略(将M个代理映射到N个策略,其中M <= N)。这就导致了需要MultiAgentReplayBuffers来分别存储不同策略的经验。

MultiAgentReplayBuffer

用于多智能体设置的重放缓冲区分片。

MultiAgentPrioritizedReplayBuffer

用于多智能体设置的优先回放缓冲区分片。

实用方法#

update_priorities_in_replay_buffer

根据训练结果更新优先回放缓冲区中的优先级。

sample_min_n_steps_from_buffer

从给定的回放缓冲区中采样最少 n 个时间步。