上海交大开源MALib多智能体并行训练框架,支持大规模基于种群的多智能体强化学习训练

简介: 基于种群的多智能体深度强化学习(PB-MARL)方法在星际争霸、王者荣耀等游戏AI上已经得到成功验证,MALib 则是首个专门面向 PB-MARL 的开源大规模并行训练框架。MALib 支持丰富的种群训练方式(例如,self-play, PSRO, league training),并且实现和优化了常见多智能体深度强化学习算法,为研究人员降低并行化工作量的同时,大幅提升了训练效率。此外,MALib 基于 Ray 的底层分布式框架,实现了全新的中心化任务分发模型,相较于常见的多智能体强化学习训练框架(RLlib,PyMARL,OpenSpiel),相同硬件条件下吞吐量和训练速度有着数倍的提升。现

微信图片_20211206092951.jpg

在深度学习领域,算力从来都是我们关心的一个重点,也是影响人工智能算法落地的一个关键因素。在很多应用场景里面,足够的算力支持可以显著加快算法从提出、训练到落地的效率,像是 OpenAI Five 的亿级参数量的使用,其每天的 GPU 计算用量在 770±50~820±50 PFlops/s。而在深度强化学习领域,随着应用场景从单智能体扩展到多智能体,算法的求解复杂度也呈现指数级增长,这也对算力要求提出了新的挑战,要求更多的计算资源能够被调用。特别是当所要处理的问题规模,涉及的智能体数量较多时,单机训练算法的可行度显著下降。

多智能体强化学习要解决群体智能相关的问题,其研究往往涉及群体内智能体之间的协作与对抗。目前已有众多现实任务应用涉及大规模智能体和复杂多样化交互,例如人群模拟、自动驾驶以及军事场景中的无人机集群控制:

微信图片_20211206092954.jpg

人群模拟(http://gamma.cs.unc.edu/CompAgent/imgs/sitterson3.jpg)。

微信图片_20211206093322.png

自动驾驶(https://github.com/huawei-noah/SMARTS/blob/master/docs/_static/smarts_envision.gif)。

微信图片_20211206093004.jpg

无人机集群(https://defensesystems.com/-/media/GIG/Defense-Systems/Web/2015/JanFeb/CODEdrones.png)。


在算法方面,解决此类群体问题的一个重要的途径是基于群体的多智能体强化学习方法,也是 MALib 目前阶段的重点瞄准方向。基于群体的多智能体强化学习(Population-based MARL, PB-MARL)涉及多个策略集合交互问题,下图展示了通常意义上基于群体的多智能体强化学习算法的主要流程。PB-MARL 算法是结合了深度强化学习和动态种群选择方法(例如,博弈论,进化策略)以自动拓展策略集。PB-MARL 能够以此不断产生新的智能,因而在一些复杂任务上都取得了不错的效果,如实时决策游戏 Dota2 、StrarCraftII,以及纸牌任务 Leduc Poker。但在实际问题中,目前的多智能体强化学习算法与应用尚有差距,一个亟待解决的问题便是算法在大规模场景下的训练效率。由于种群算法内在耦合了多智能体算法,致使其训练过程对数据的需求量极大,因而也需要一个灵活、可扩展的训练框架来保证其有效性。

微信图片_20211206093008.jpg

如何提高算法训练效率?对于依赖深度学习技术的很多领域,在面临任务规模变大,模型参数变多的情况下,都需要引入额外的技术来提高训练效率。分布式计算是一个最直接考虑的方法,通过多进程或者多机的方式,提高算法对计算资源的使用效率从而提升算法训练效率。而分布式技术在深度强化学习领域的应用,也催生了分布式深度强化学习这个领域的产生,其研究的重点包括计算框架的设计,以及大规模分布式强化学习算法的开发。

近年来,为了更好地进行大规模深度强化学习算法的训练,研究人员发展了更加专用的训练框架,通过在算法接口和系统设计上进行抽象,来支持更为复杂的实时数据采样、模型训练和推理需求。然而,分布式强化学习技术的发展似乎还未触及群体智能这一问题。实际上,现有分布式强化学习框架对于一般多智能体强化学习算法的分布式计算支持是完全不够的,像 RLlib、Sample-Factory、SEED RL 这样的典型分布式强化学习框架,在设计模式上都是将多智能体任务当作单智能体任务来处理,而忽略了多智能体算法之间的异构性。对于其他强调智能体交互的学习范式,如中心化训练(centralized training)、基于网络的分布式算法以及带有通信功能的协作性算法都没有进行显式支持,缺乏对应的统一接口来简化算法实现和训练流程。因此,研究人员想要进行更多类型多智能体强化学习算法的分布式训练探索时,往往需要进行大量额外的编码工作。而对于多智能体强化学习算法框架方面的发展,现有的工作更多聚焦在算法实现,并不太注重算法在大规模场景下的扩展性,或者更多的是专为某些场景设计的算法库,像 PyMARL、SMARTS 这样的框架,其作用更偏向于服务专门领域内的 benchmark,在算法类型上,大部分框架也做得并不全面。因此对于多智能体强化学习算法框架支持这一块,也一直是缺乏一套比较全面的框架来打通算法实现、训练和部署测试这一套流程。
我们认为以上两个发展现状的主要原因至少会有两点:(1)一个是因为多智能体算法本身在结构上具有的异构性较高,导致算法在接口实现的一致性和复用性上不是太高;(2)另一方面也是因为多智能体分布式算法依然处于早期探索阶段。此外,在分布式部署方面,现有分布式强化学习框架对 independent learning 算法的支持更友好,也更自然和直接。就像通常分布式技术在机器学习领域的应用一样,要解决目前分布式技术在大规模多智能体强化学习领域的更深层次的应用,算法和框架都必不可少,两者相辅相成。

在算法方面,一个重要的途径是基于群体的多智能体强化学习方法,也是 MALib 目前阶段所重点瞄准的方向。基于群体的多智能体强化学习(Population-based MARL, PB-MARL)涉及到多个策略集合交互问题,下图展示了通常意义上基于群体的多智能体强化学习算法的主要流程。PB-MARL 算法特点是结合了深度强化学习和动态种群选择方法(例如,博弈论,进化策略)来进行自动策略集扩展。通过这种方式,PB-MARL 能够不断产生新的智能,并且在解决一些复杂任务上都取得了不错的效果,如实时决策游戏 Dota2 、StrarCraftII,以及纸牌任务 Leduc Poker。
然而,也正是由于种群算法内在耦合了多智能体算法,导致这一类算法在训练过程对数据的需求极大,因此也需要一个灵活的、可扩展的训练框架来保证其有效性。

微信图片_20211206093013.jpg



微信图片_20211206093016.jpg

MALib框架图


为了应对这些需求,我们提出了 MALib,从三个方面提出了针对大规模群体多智能体强化学习算法的解决方案:(1)中心化任务调度:自动递进式生成训练任务,作业进程的半主动执行能够提高训练任务的并行度;(2)Actor-Evaluator-Learner 模型:解耦数据流,以满足多节点灵活的数据存储和分发;(3)从训练层面对多智能体强化学习进行抽象:尝试提高多智能体算法在不同训练模式之间的复用率,比如 DDPG 或者 DQN 可以很方便地嫁接到中心化训练模式中。

微信图片_20211206093021.jpg

中心化任务调度模型 (c) 与以往分布式强化学习框架调度模型的对比:(a)完全分布式;(b)层级式


具体而言,MALib 的框架特点如下:

  • 支持大规模基于种群的多智能体强化训练。星际争霸 2,Dota2,王者荣耀等游戏上超越人类顶尖水平的 AI,都得益于大规模基于种群的多智能体强化学习训练,但现在没有一个开源通用的框架支持相关研究与应用。针对这一场景,MALib 基于 Ray 的分布式执行框架,实现了一个灵活可自定义的多智能体强化学习并行训练框架,并且对基于种群的训练做了特别优化,不仅仅可以实现类似于星际争霸 2 中的 League 机制,也支持更灵活的 PSRO(策略空间应对预言机)等算法。同时,除了电子竞技游戏之外,MALib 也将提供体育(Google Football),自动驾驶等场景的支持。


  • MALib 的采样吞吐量较现有多智能体强化学习框架大幅度提升。通过利用所提出的中心化任务分发模型,MALib 的吞吐量在相同 GPU 计算节点情况下,最大采样效率相较于 UC Berkeley RISELab 开发的著名通用框架 RLlib 可提升 15 倍,系统吞吐量较高度优化的 SOTA 框架 SampleFactory 提升近 100%;纯 CPU 环境 MALib 的吞吐量优势较进一步扩大至近 450%;同类算法训练速度较 DeepMind 开发的 open spiel 提升三倍以上。


  • 最全的多智能体强化学习算法的支持。在训练范式层面,MALib 使用同步 / 异步,中心化 / 去中心化等模式,对不同类型的多智能体强化学习算法的训练进行抽象,并通过统一的 AgentInterface,实现了包括独立学习者,中心化训练去中心化执行,自对弈,策论空间应对预言机(PSRO)等算法。同时,对原先不支持并行异步训练的算法,也可以使用 MALib 进行并行采样与训练的加速。


部分训练效果

我们和一些现有的分布式强化学习框架进行了对比,以 MADDPG 为例,下图展示的是在 multi-agent particle environments 上使用不同并行程度训练 simple-spread 任务的学习曲线。

微信图片_20211206093026.jpg

与 RLlib 对比训练 MADDPG 的效果。

对照框架是 RLlib。随着 worker 的数量增多,RLlib 的训练越来越不稳定,而 MALib 的效果一直表现稳定。包括更复杂的环境,比如 StarCraftII 的一些实验,我们对比 PyMARL 的实现,比较 QMIX 算法训练到胜率达到 80% 所花费的时间,MALib 有显著的效率提升(worker 数量都是设置成 32)。

微信图片_20211206093030.jpg

与 PyMARL 在星际任务上的效率对比。

另一方面,我们比较关注的是训练过程的采样效率。我们也对比了与其他分布式强化学习框架的吞吐量对比,在多智体版本的 Atari 游戏上,MALib 在吞吐量和扩展性上都表现了不错的性能。

微信图片_20211206093034.jpg

在星际及多智能体 Atari 任务上不同框架的吞吐量对比。

目前,我们的项目已经开源在 GitHub 上(https://github.com/sjtu-marl/malib),更多的功能正在积极开发中,欢迎使用并向我们提出宝贵的改进意见!同时如果有兴趣参与项目开发,欢迎联系我们!联系方式:ying.wen@sjtu.edu.cn。

团队介绍

本项目由上海交通大学与伦敦大学学院(UCL)联合的多智能体强化学习研究团队开发。MALib 项目主要由上海交通大学温颖助理教授指导下进行开发,核心开发成员包括上海交通大学三年级博士生周铭,ACM 班大四本科生万梓煜,一年级博士生王翰竟,访问学者温睦宁,ACM 班大三本科生吴润哲,并得到上海交通大学张伟楠副教授和伦敦大学学院的杨耀东博士、汪军教授的联合指导。


团队长期致力于从理论算法、系统与应用三个层面入手,针对开放、真实、动态的多智能场景下的智能决策进行研究。理论团队核心成员在人工智能和机器学习顶会发表多智能体强化学习相关论文共计五十余篇,并获得过 CoRL 2020 最佳系统论文、AAMAS 2021 Blue Sky Track 最佳论文奖。系统方面,除了面向多智能体强化学习种群训练的系统 MALib,本团队研发 SMARTS、CityFlow、MAgent 等大规模智能体强化学习仿真引擎,累计在 Github 上获得了超过 2000 加星。此外,团队在游戏、自动驾驶、搜索与推荐等场景下具有强化学习技术的真实应用落地的经验。

相关文章
|
1月前
|
前端开发 API 决策智能
多智能体微调实践:α-UMi 开源
近年来,为了加强大型语言模型(Large-Language Models, LLM)实时信息处理、解决专业问题的能力,催生了工具调用智能体(Tool Integrated Agent)概念
|
1月前
|
机器学习/深度学习 算法 决策智能
北大领衔,多智能体强化学习研究登上Nature子刊
北京大学研究团队近日在《Nature》子刊上发布了一篇关于多智能体强化学习(MARL)的论文,提出了一种高效且可扩展的MARL框架,旨在解决大规模网络控制系统中的决策问题。该框架实现了智能体间的局部通信,减少了通信成本与计算复杂度,并在交通、电力及疫情防控等多个真实场景实验中,显著提升了决策性能。论文链接:https://www.nature.com/articles/s42256-024-00879-7。尽管该研究仍存局限,但为MARL的应用提供了新思路。
49 2
|
15天前
|
人工智能 运维 自然语言处理
对话蚂蚁开源蒋炜:让 Agent 把运维人员从 24 小时的待命中解放出来
当整个行业的智慧都集中在一件事情上时,比起闭门造车,开源一定能带来更好的技术迭代和发展。CodeFuse 「编码挑战季」活动火热进行中,诚邀广大开发者们参与编码挑战
76 3
对话蚂蚁开源蒋炜:让 Agent 把运维人员从 24 小时的待命中解放出来
|
13天前
|
敏捷开发 机器学习/深度学习 数据采集
端到端优化所有能力,字节跳动提出强化学习LLM Agent框架AGILE
【10月更文挑战第23天】字节跳动研究团队提出AGILE框架,通过强化学习优化大型语言模型(LLM)在复杂对话任务中的表现。该框架将LLM作为核心决策模块,结合记忆、工具和专家咨询模块,实现智能体的自我进化。实验结果显示,AGILE智能体在ProductQA和MedMCQA数据集上优于GPT-4。
67 4
|
15天前
|
人工智能 API 决策智能
swarm Agent框架入门指南:构建与编排多智能体系统的利器 | AI应用开发
Swarm是OpenAI在2024年10月12日宣布开源的一个实验性质的多智能体编排框架。其核心目标是让智能体之间的协调和执行变得更轻量级、更容易控制和测试。Swarm框架的主要特性包括轻量化、易于使用和高度可定制性,非常适合处理大量独立的功能和指令。【10月更文挑战第15天】
111 6
|
1月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
102 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
1月前
|
数据采集 人工智能 自然语言处理
Python实时查询股票API的FinanceAgent框架构建股票(美股/A股/港股)AI Agent
金融领域Finance AI Agents方面的工作,发现很多行业需求和用户输入的 query都是和查询股价/行情/指数/财报汇总/金融理财建议相关。如果需要准确的 金融实时数据就不能只依赖LLM 来生成了。常规的方案包括 RAG (包括调用API )再把对应数据和prompt 一起拼接送给大模型来做文本生成。稳定的一些商业机构的金融数据API基本都是收费的,如果是以科研和demo性质有一些开放爬虫API可以使用。这里主要介绍一下 FinanceAgent,github地址 https://github.com/AI-Hub-Admin/FinanceAgent
|
1月前
|
人工智能 JSON 自然语言处理
开源模型+Orchestrating Agents多智能体框架,易用、强大且可控
本文采用开源Qwen2.5-14B-instruct-GGUF来体验多智能体编排和交接,希望在体验多智能体编排和交接框架的同时,一起评估中小参数规模的模型(14B)能否较好的完成多智能体任务。
|
1月前
|
机器学习/深度学习 人工智能 安全
北大领衔,多智能体强化学习研究登上Nature子刊
【10月更文挑战第1天】近日,北京大学领导的研究团队在《Nature》子刊上发表了一篇关于多智能体强化学习的论文,提出了一种高效且可扩展的框架,解决了大规模网络控制系统中的决策问题。该框架通过局部通信避免了集中式和独立学习的缺点,在交通、电力等领域的实验中展现了卓越性能。然而,其在更复杂系统中的效果及计算复杂度仍需进一步验证。论文链接:https://www.nature.com/articles/s42256-024-00879-7。
38 3
|
2月前
|
人工智能 安全 量子技术
大疆DJI无人机等你来拿,蚂蚁集团agentUniverse 多智能体框架有奖征文
agentUniverse有奖征文活动来啦!分享agentUniverse的实践经验、亦或是剖析市面上各路智能体技术理念、对比开源框架的洞见,都有机会获得大疆无人机!
大疆DJI无人机等你来拿,蚂蚁集团agentUniverse 多智能体框架有奖征文
下一篇
无影云桌面