MALib: A Parallel Framework for Population-based Multi-agent Reinforcement Learning 论文笔记

前言

MARL的一个根本问题就是agent倾向于过拟合其他players,导致算法很难实现鲁棒的表现。与异构agents或多样策略的co-players交互是解决问题的必由之路,可行的方法包括基于群的训练、fictitious self-play、meta-game analysis,以及本文关注的基于群的多智能体强化学习 (Population-based multi-agent reinforcement learning, PB-MARL)

PB-MARL 算法结合了深度强化学习 (DRL) 和动态种群选择方法(例如,博弈论、演化策略)来生成自动课程,产生出现自耦合的群动态的自生成任务序列,通过利用自动课程来诱导一系列不同的应急策略,从而不断产生高级智能,并在一些非平凡的任务中取得了令人瞩目的成功。然而,由于多智能体和群体交互产生的内在动态,这些算法具有错综复杂的嵌套结构,并且非常需要数据,需要灵活且可扩展的训练框架来保证其有效性。

PB-MARL 的部署与传统 (MA)RL 共享一些通用过程,但仍然存在许多挑战,包括自动课程学习过程和指数的组成抽样。PB-MARL 固有地包含异构任务,包括模拟、策略推理、策略训练和策略支持扩大。所有这些任务都与底层的可变策略组合相关联,这进一步使 PB-MARL 复杂化。
在这里插入图片描述
上图展示了 PB-MARL 中的一个典型案例,这里可以合并 Double Oracle 或 Policy Space Response Oracle (PSRO) 方法的学习过程。例如,在 PSRO 的每次迭代中,算法都会生成一些策略组合,并对每个agent执行独立地学习。这样一个嵌套的学习过程包括逐一地rollout、训练、评估,并循环工作,直到算法找到估计的纳什均衡。这些子任务执行高度异构,即底层策略组合因agent而异。此外,评估阶段涉及跨快速增长的联合策略集的大量模拟。因此,这些要求使得对于实现高执行效率,分布式计算是不可避免的

在深度学习中,有大量工作将分布式计算技术集成到其架构中。Pytorch 和 Horovod 等框架在 MPI 上实现了它们的分布式训练逻辑。通用分布式工具如 Ray 和 Fiber 提供了用于构建分布式应用程序的通用 API,从而将用户从 MPI 和 OpenMP 等并行编程中解放出来。也有一些工作专注于 MARL 的实现和抽象,但其中大部分都过于狭窄,专注于特定领域,无法适应一般的 MARL 任务。

对于DRL,高吞吐量可以让算法实现更快的收敛速度和高数据效率。在单智能体 DRL 中,为了满足分布式计算的要求,也出现了大量分布式框架来解决数据处理问题,例如 RLlib、SEED RL、Sample-Factory和 Acme。其中,一个标准的实现是在完全分布式控制中设计训练和rollout worker,即 Actor-Learner 模型。尽管单智能体 RL 方法也可以作为 independent learners 应用于多智能体设置,但更有效的训练模式,如集中训练和分布式执行,self-play、基于群的学习等要求训练以非独立的方式进行。显然,单智能体学习模式需要大量的努力来处理这样的交互需求,并对现有的分布式强化学习框架提出了新的挑战。RLlib 通过在 Ray 之上构建 DRL 框架解决了这个问题,以逻辑上集中的控制方式工作。此外,这些框架中 MARL 任务的解决方案是将 MARL 任务建模为单智能体任务,这降低了更一般的 MARL 设置中的计算效率,因为它在训练过程中需要异构智能体/策略交互。尽管像 OpenSpiel 这样的作品已经尝试支持OpenSpiel和 PSRO,但他们只是考虑了良好的 PB-MARL 抽象和可扩展性。因此,作者认为现有框架不能完全满足 PB-MARL 带来的新要求。

作者总结了 MARL 分布式框架的基本要素应该:

  1. 提供一种高效的控制机制,以支持 PB-MARL 中的自监督自动课程训练和异构策略交互;
  2. 提供对 MARL 训练模式的高级抽象以简化实现,和统一且可扩展​​的训练标准。

综上,尽管分布式 RL 框架的现有技术非常出色,但由于涉及异构策略交互的采样、训练和评估之间的多个嵌套工作负载的额外复杂性,PB-MARL 对并行化训练框架提出了新的挑战。
在这里插入图片描述
为了满足 PB-MARL 的分布式计算需求,作者在 Ray 之上构建了MALib,并提供了一个可扩展且高效的训练框架。上表从三个维度展示了 MALib 与现有分布式强化学习框架的比较,即单智能体 RL 支持、多智能体 RL 支持和种群管理。尽管其中一些支持多智能体 RL 算法,但它们本质上是independent learning的,或者需要 3 个用户的额外努力才能在其他训练范式中实现算法。此外,PB-MARL 的一个关键维度是种群管理,即为每个智能体维护一个策略池,支持策略扩展,更新自动课程学习中的策略分配等。MALib 考虑了这些需求并给出了相应的实现,其由三个关键组件组成:

  1. 集中式任务调度模型 (CTD),支持自生成任务和具有异构策略组合的可扩展训练;
  2. 一种名为Actor-Evaluator-Learner的编程架构,实现了训练和采样的高度并行,满足了自动课程学习的评估需求;
  3. 对MARL训练范式的更高层​​次抽象,实现了在不同分布式计算范式上的高效代码重用和灵活部署。

作者的贡献主要为:

  1. 为 PB-MARL 提出了一种集中式任务调度模型,它在自动课程策略组合的训练任务中实现了高度的灵活性。
  2. 提出了一个独立的程序设计模型Actor-Evaluator-Learner,以提高数据处理和异步执行的效率。
  3. 抽象了MARL训练模式,提高异构MARL算法的代码重用性和兼容性,这也弥合了单点和多点优化之间的差距。
  4. 提供主流的MARL算法实现,并使用不同系统设置在MALib上验证系统性能和算法性能,包括单机和集群。

在多智能体 Atari Games 等一系列复杂任务上的实验表明,MALib 在 32 个 CPU 内核的单机上实现了高于 40K FPS 的吞吐量;在多智能体训练任务中,速度比 RLlib 快 5 倍,比 OpenSpiel 至少快 3 倍。

代码:https://github.com/sjtu-marl/malib

Parallel Programming Abstractions for PB-MARL

在这里插入图片描述

Centralized Task Dispatching Model

之前工作中 RL 的并行化可以大致分为完全分布式控制 (FDC) 和分层并行任务 (HPT) 模型,固定了训练任务流和策略交互方式。虽然这些框架对 RL 任务有抽象,但 MARL 训练模式的特殊类型限制了它们的性能,因此用户必须额外努力进行定制。此外,诸如 PSRO 和 AlpahRank 之类的 PB-MARL 算法需要在策略组合中变异在自动课程中策略空间的扩大,而这些在以前的框架中被忽略。
在这里插入图片描述
上图展示了之前的并行控制模型和 CTD 模型之间的比较。与 RLlib 相同,CTD 模型在 Ray 之上实现,它允许 Python 实现的任务自然地分布在一个大型集群上。

CTD 模型同时考虑了 FDC 和 HPT 模型的优点。具体来说,CTD 有一个集中控制器 D,用于迭代更新底层策略组合的描述并生成新的学习任务,然后将它们分派到工作进程(A、B 和 C)。CTD 中的工作流程独立工作,但不像 FTD 中那样相互协调。此外,工作过程也以半被动的方式工作,即在完成任务后会向 D 发送任务请求,这与工作过程完全被动的 HPT 模型不同。事实上,半被动执行可以是高性能的,因为工作进程不会一直处理集中控制器,因此 D 可以高度并行地工作以处理更多任务,以确保系统高效运行,特别是对于Python,它有一个GIL。作者将 D 建模为 Coordinator Server,工作流程 A、B 和 C 可以是 Actors、Learners 和解耦数据服务器。

Defining the Task Graph

CTD模型的执行逻辑可以表述为PB-MARL的闭环任务图。

一开始,给每个agent初始化一组策略池 P = { P i ∣ i = 1 , ⋯   , M } P = \{P_i | i = 1,\cdots,M\} P={ Pii=1,,M},同时其中一些可以共享相同的策略池。

然后,环境中的每个agent { a j ∣ j = 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值