机器之心报道
机器之心编辑部
生物智能的产生,一直以来被定义为「奇迹」和「谜团」。
从宇宙的一片尘埃开始,人类的演化花费了数十亿年的时间。很难想象,你我均起源于出现在地球上的单细胞生物。
时至今日,人类凭借自身的智慧,创造了地球上最繁荣的文明。同时,这一演化仍在继续,远没有走到尽头。
但演化的方向已经悄然改变:下一代文明的方向,将由人类亲手创造的「智能体」来探索。
由此引出一个问题:人类智能与人工智能,谁的上限将会更高?
过去数十年,研究者夙兴夜寐,将无数人类智慧灌注其中,不断将「人工智能」的能力上限抬高。一个刚刚诞生的智能体,就像一个初来世间的婴孩,即使懵懂,却蕴藏着无限潜力。在永不停歇的演变之后,人们普遍认为,智能体终将超越人类。
这种演化规律,在 OpenDILab 平台的开源历程中体现得淋漓尽致。它的源起,是几位算法研究员的一次跨界设想,是面向最复杂的竞技游戏的一场挑战。仅仅过了两年多时间,今天的 OpenDILab 从已演化为覆盖最全学术界算法和工业级规模的国产决策智能开源平台。它为整个决策智能领域开辟了一个全新的开源社区,这个社区正在以惊人的速度生长。
项目地址:https://github.com/opendilab
2022 年 6 月 12 日,《星际争霸 II》前中国冠军——IG 战队的 iA ,又一次登陆了斗鱼直播间。这么久不见,人们发现,iA 竟然开始讲 PPT 了。
两年之前,iA 低调退役。两年之后,电竞少年归来,已是 AI 研究员,还带来了目前已开源项目中实力最强的《星际争霸 II》 AI——DI-star。
直播录像:https://www.bilibili.com/video/BV15T411G7xD?spm_id_from=333.999.0.0
一个多小时的直播里,iA 演示了多场对局。在所有演示中,DI-star 均表现出人类最高段位——Grandmaster 分段的竞技水平。
惊喜的是,DI-star 的决策能力相当灵活,屡次在复杂对局中快速找到最优策略。比如与前世界冠军 Scarlett 对战时,DI-star 使用了 「女王前压」 这种不常见于人类的战术,出奇制胜:
此时,距离 DI-star 及其背后的决策智能平台 OpenDILab 开源已经有一年了。
2022 年 9 月,OpenDILab 正式升级为 1.0 版本,幕后团队两年多来的心血,全部凝聚于此。
白手起家
所有的故事都从 2020 年的第一个月开始。一群来自中国的算法研究员和工程师,在人脸识别的数据海中摸爬滚打多年之后,决定跳出舒适区,做一点探索未来的事。
比如,从零开始打造一个星际争霸 AI。
在当时的 AI 学界眼中,决策 AI 是不同于计算机视觉等感知型 AI 的另一道难关,而《星际争霸 II》一直被看作检验 AI 决策能力的绝佳舞台,也是 AI 争相挑战的「珠峰」。
星际争霸系列游戏能保持 20 多年长盛不衰,一部分原因就在于其丰富的多层次游戏机制。《星际争霸 II》的空间复杂度高达 10 的 1685 次方,远超围棋 10 的 170 次方复杂度。对于 AI 来说,这是一个非常接近现实世界的虚拟环境。
开源社区是助力 AI 发展的重要因素之一,而在项目的开始阶段,DI-star 的开发者们准备好了充足的算力和资源,却发现星际争霸 AI 的开源生态基本是一片空白,只能找到 DeepMind 公开的原版论文,非常多的技术细节都有待考证。就好比老师教了你九九乘法表,却突然让你做一道微积分的作业题。
DI-star 的开发者们首先调研了各种已有的强化学习开源平台,但发现开源的算法、工具等基本都是围绕「小而精」的学术研究,压根没有星际争霸这种大规模环境的开源项目。
「没有轮子,就立马动手造一个,这才是极客精神!」
于是乎,DI-star 的开发者们拿着之前自己在计算机视觉任务上积累的经验,想要一定程度的知识复用。但很快他们就发现,这不只是个脱离舒适区的问题,这简直是一脚踏入深水区,每天都会诞生新的灵魂拷问:
在不断以「一日速成法」了解各类游戏 AI 设计和分布式系统设计知识后,团队总算是搭出了第一版能正常运行的分布式训练系统,这也是之后 OpenDILab 的最初原型。
只不过还有一件事让人犯愁:到底怎么让 AI 学习打星际的技巧呢?这需要集深度学习、强化学习、游戏 AI 三方面的技术和力量。
技术可以后天努力学习,游戏天赋可真是命中注定,于是,他们找到了中国星际的传奇人物:iA 周航。于是,几个基本对决策 AI 零基础的人,构成了 DI-star 项目的最初班底。
「最初几乎训练不出来任何哪怕有正常操作的 AI」。DI-star 团队一度很头疼。没办法,前半年只能一点一点解 bug,慢慢地教。发现一个不合理的 AI 行为,就从游戏录像中开始分析,对应到具体的游戏操作,解析游戏引擎内存中的数据片段,再一步步追根溯源,最终分析到神经网络里具体某个神经元的激活输出,从而定位到代码实现和算法设计的相关问题。
「程序是不会骗你的,只要你用心去凝视它。」像上面这样一环扣一环,非常需要高度集中心力的细节分析,在 DI-star 的前期阶段,几乎是天天都有。
终于,经历了半年的艰苦奋斗, 2020 年 6 月,DI-star 已经能够击败简单的电脑。2020 年 7 月,团队进行了 DI-star 第一次人机内测,AI 战胜了一位刚刚入门《星际争霸 II》的研究员。
步入正轨之后,就要去探索 AI 的上限究竟在哪里。DI-star 团队希望在整个系统的各个环节中都做到极致:不仅仅是复现最强的决策 AI 问题,而是尽其所能去尝试每种可能性。有人从神经网络角度,设计更稳定的大批量样本优化技术和高效处理动态决策空间的网络层,有人从强化学习优化方向,精心调控探索和利用的多方面平衡,有人从游戏 AI 领域,融合即时战略类游戏的百家之长,将 AI 的微操优势培养到新的境界,有人从系统效率出发,做各种资源的权衡,存储 / 网络 / 计算,一切能想到的办法都用来优化训练效率。
在集合整个团队的技术积累之后,历经人类录像模仿学习和自我博弈强化学习两个阶段,总计一亿局星际对局,五周的最终训练时间,2021 年 6 月,DI-star 终于战胜了 DI-star 的创造者之一——周航本人。之后,周航又拉来一些职业电竞时期的老朋友跟 DI-star 打,包括 MMR6000 分的中国最强虫族选手 Rex。
好消息是,DI-star 都赢了,没辜负一年多来的苦练。
从星际 AI 到开源平台
路行至此,接下来又该怎么走?
极客探索归探索,但想把技术做长久做出影响力,复盘是必不可少的。而在当时的马拉松复盘会中,研发团队一致的观点是:必须积累足够扎实的技术工具链。DI-star 中的小农式精耕细作太难复制也太难推广了,需要能有让决策AI技术真正大放光彩的基建工作。那么自然的,做一个决策智能开源平台和生态,就成了大家新的目标。
更具体一点,在算法方面,哪些技术适合在前期探索智能体策略的多样性和潜力,哪些方法适合作为最终超大规模强化学习训练的核心模块;在系统方面,哪些系统设计既能提高采样效率又能对大规模强化学习的优化效率带来帮助,什么样的设计可以易用快速的算法迭代和想法验证。所有上述这些积累的经验和知识,都是有价值被沉淀下来的东西。
光是教会AI玩《星际争霸 II》并不是最终目标,探索决策AI的能力边界,学会面对更加复杂的真实世界,才是在青春年月值得去拼搏的事。基于这样的初心,后续成立的 OpenDILab 团队以 DI-star 为起点,开始进一步探索如何做开源。
当时决策智能领域的开源生态,比起 CV、NLP 这些成熟的研究领域,的确差了不是一点半点。
不过对于整个决策智能领域来说,开发者最需要的不只是某一套代码,也不仅是某一个工具包。这个领域,正需要一个功能全面、便捷易用的开源平台。
但如何设计一个能满足广大研究者需求的平台,是需要认真考虑的问题。
这时,更多学术界、产业界的决策智能研究痛点进入了团队成员们的视野:
与感知智能不同,决策类问题通常涉及处理诸如图像、语音、结构化数据等多种复杂模态的数据类型。此外,单机单卡与多机多卡甚至跨集群计算的决策 AI 计算逻辑也完全不同。不同任务间的最优算法配置也差别较大。对于决策智能,这些问题很难标准化。
还有一个客观现象:关于决策智能的问题定义和研究视角,学术界和工业界之间的差距是很大的。很多前沿的理论算法缺少环境和计算 pipeline 上的通用性,只能局限于 toy model 级别的实验环境,无法迁移到真正的工业场景中。
因此,团队最终对开源平台的期望是:既要在学术算法层面做到最全最广的覆盖和统一,又要将这些算法真正发挥到相应的实际场景中去,解决各个其他领域的工业级应用问题。当然,想要兼顾两者是一件极为困难的事,系统和平台设计本身就是在做各种各样的权衡,而开源社区正是帮助平台成长和不断进化的重要力量。
这将是一项产生长期价值的工程,力求将技术的广度和深度都推到极致,将成千上万开发者的智慧与努力集合起来,在各行各业中演化出无限可能。
人人可用的开源决策智能平台
2021 年 7 月,DI-star 及其衍生出的决策智能平台 OpenDILab 在 GitHub 正式开源了。
在最初发布的 OpenDILab beta 版本中,自上而下覆盖了应用生态层、算法抽象层、分布式管理层和分布式执行层,还支持从单机到上万级别 CPU/GPU 联合训练的全尺度调度系统优化,将 OpenDILab 团队自 DI-star 项目以来积累的各方面技术和知识完全开源开放出来。然而开源社区的构建是需要不断打磨的,beta 版本在各种各样的权衡中遗留了一些上手难度问题,而在这一年多开发者与开源社区的共同努力下,OpenDILab 1.0版本在易用性、效率、多元化等方面都展现出了新的思考和理解。
项目地址:https://github.com/opendilab/
其中,OpenDILab 推出了一系列面向不同目标的开源库:
最底层的 DI-engine 及相关系统支持库致力于解决决策AI在环境,算法,计算尺度三个方面的标准化问题,它首先提供了在 40+ 不同类型决策环境上的最佳实践,可作为不同领域研究者应用强化学习技术的最佳模板,还汇聚了 8 大研究子方向的 60+ 决策智能算法,将深度强化学习,多智能体博弈,离线强化学习和模仿学习等领域一网打尽,而上述这些环境和算法,都可以在统一的系统执行设计下高效实现,并根据任务特性自适应地调整资源利用的最佳方案。
中层的算法与模型抽象层 DI-zoo 整合了 OpenDILab 在各个领域应用决策AI算法的相关经验,将算法理论,代码实现,应用领域知识一一对应在一起,并在AutoML工具的支持下,帮助开发者构建统一且标准的基准方案,也很大程度上降低了初学者的入门门槛。
在应用生态层,既有 DI-star 这样面向于虚拟世界即时战略类游戏的大规模强化学习训练方案,包含完整的训练、测试和应用原型代码细节,还开源了包含感知决策全流程的自动驾驶平台 DI-drive,朝着决策 AI 落地应用的方向前进。
自开源以来,OpenDILab 已经收获了 4500 多个 GitHub star。DI-star 也被列入 Github Trending Python 语言优质开源项目。
多智能体决策智能领域的「ImageNet」
决策智能的落地通常会受到训练平台、仿真环境两方面的挑战。OpenDILab 是好用的,但它暂时只解决了训练平台层面的一部分问题。
那么,仿真环境的问题怎么解决呢?
为了让更多人参与到决策智能的探索中来,OpenDILab 搞了一场 Go-Bigger 挑战赛。通俗地讲,这其实是一场决策 AI 版的「大球吃小球」挑战赛。
在 Go-Bigger 挑战赛里,每局时长十分钟,大球吃掉小球会获得更大重量和体积,但同时需要避免被更大的球吃掉。球的类型包括分身球、孢子球、食物球、荆棘球,这四种球的决策路径是不同的。
每个队伍都需和其他队伍对抗,总重量更大的团队获胜。
这个游戏环境看起来简单,但其实非常考验多智能体之间的配合和对抗,包括权衡同一团队中的个体行动与合作行动、不同团队间的合作与竞争、表征和交换与其它智能体的环境信息等,体现了很高的决策复杂度。
有意思的是,Go-Bigger 游戏设计了球球对抗时间、成长加速度、分裂、消失、衰亡等约束条件,这种情况其实广泛存在于现实世界,比如在人的生命周期中,我们都需要在不同的人生阶段,在各种约束条件下进行协作、对抗,做出最利于自身的决策。球球和人类之间,由此产生了一种微妙的关联。
在 AI 领域,很多研究问题的真正被定义和解决,都经历了从「球球」到「真实世界」的模拟过程。
比如计算机视觉领域的经典之作 ImageNet。上海人工智能实验室青年科学家、商汤科技高级研究总监、OpenDILab 项目发起人刘宇表示,在 ImageNet 比赛之前,数据集都非常小,学术界很难定义产业界真正需要的算法问题。但 ImageNet 提出了全新的挑战,在海量数据上定义的研究问题与真实世界中真正应该被解决的问题更加贴近了,加上算力条件的提升,成就了后来计算机视觉的蓬勃发展。
对于今天的多智能体决策智能领域来说,学术界和产业界都在等待着像「ImageNet」这样具备「公认的问题定义能力」的项目出现,而 OpenDILab 希望 Go-Bigger 能担起这一重担。
有人可能会问,既然开源了 DI-star,为什么不直接办一场星际争霸 AI 挑战赛?
这也是从现实因素出发来考虑的,毕竟训练一个星际争霸 AI 需要太多的算力消耗,对于一般参赛者来说实在不友好。
Go-Bigger 的定位是人人可以参加的中型游戏 AI 竞技环境。相比学术界常用的 Atari、MuJoCo、SMAC,Go-Bigger 的环境规模更大,但又可以在小型的实验室中完成,用一台机器、一块 GPU 就能训练起来。这样一来,参赛者就能把更多精力聚焦到探索多智能体协作能力的算法上。
即使如此,从零开始实现比赛要用的算法和训练流程还是很复杂的,而 OpenDILab 平台提供的决策 AI 框架 DI-engine 正好帮助开发者简化了这一过程。
开发者们基于DI-engine为Go-Bigger设计实现了多种类型的基准算法,包含多智能体协作,稀疏奖励引导,记忆化探索和计算效率提升等多个方面。
走进现实世界
在工业应用这块,OpenDILab 也没松懈,推出了自动驾驶领域内第一个支持多种仿真器和多种决策智能算法的开源研究平台——DI-drive。
之所以选择自动驾驶领域做开源,OpenDILab 有自己的思考:
第三次发展浪潮之后,AI 技术已经进入从感知智能到决策智能演变的关键节点,决策 AI 技术的突破也到了在实际场景部署和应用的阶段。任何前沿的学术理论,都要走到现实世界当中去,才能产生更多的价值。
可以说,决策 AI 技术应用的成功与否,直接决定了这一技术在产业界的认可程度,反过来,应用领域的难题也可以指导决策 AI 理论的演进。
另一方面,生态构建的成功与否体现了决策 AI 技术的应用门槛、其通用能力和泛化能力以及对不同任务的适应能力。应用生态也可以更加广泛地拓展决策 AI 的应用领域,打通不同应用领域所面临的问题和挑战。
自动驾驶是当前人工智能的热门研究方向。决策、规划与控制是自动驾驶任务的大脑,一向被各大公司视作高度保密技术。如果是一位普通开发者,就算想深入了解也难。
所以,OpenDILab 综合了大量自动驾驶决策 AI 的方法,抽象出基本涵盖现有自动驾驶方法的一套流程,做出了自动驾驶领域第一个开源的、人人可以参与的研究平台 DI-drive。
目前,DI-drive 已在自动驾驶端到端仿真任务上取得若干算法突破。对于一系列核心技术突破,OpenDILab 不作保留,全部开源。
比如自动驾驶策略 InterFuser,该策略基于 Transformer 进行多传感器融合,并使用了可解释性特征来增加自动驾驶的安全性。
我们都知道,在高交通密度的场景中,会有大量的障碍物和动态物体参与决策。在这些情况下,一些部署的自动驾驶系统可能表现出不正确或意外的行为,导致灾难性的事故。
比如行人突然从路边出现、通过路口时遭遇意外车流(闯红灯等),这需要更好地理解多模态多视角传感器输入下的场景。另外,如何验证决策过程也是个问题,换句话说,识别系统的功能 / 故障情况以及故障原因,这需要决策系统的可解释性。
OpenDILab 模拟了大部分情况,基于自动驾驶研究的开源模拟器 CARLA 进行了测评,InterFuser 显示出良好的问题处理能力:
等红灯
转弯
在最新的 CARLA Leaderboard 排行榜中,OpenDILab 提出的自动驾驶策略 InterFuser 取得了 Top 1 的成绩。
InterFuser 在 CARLA Leaderboard 上的排名
此外,OpenDILab 还针对自动驾驶开发了一套贴近真实的驾驶场景 Casezoo,所涉及的驾驶场景均由实车数据和路测案例转化而来。他们在多种贴近真实的驾驶环境中训练和测试了决策模型,有效促进自动驾驶领域仿真研究在实车环境中的推广和应用。
图注:Casezoo 为自动驾驶模拟提供更接近真实的驾驶场景
与此同时,OpenDILab 也在探索新的决策智能应用领域和方法,如金融领域的反欺诈和交易,电网、港口等场景的资源调度和优化,生物领域的合成搜索和预测等。一系列重磅成果,均在酝酿之中。
不断进化的 OpenDILab
一年时间过得很快。Beta 版本开源之后,OpenDILab 团队一直在根据开发者社区的反馈改进。
经过多次完善后,近日的 WAIC 2022 大会上,OpenDILab 1.0 版本正式问世。
OpenDILab 框架图
项目地址:https://github.com/opendilab
整体来看,OpenDILab 1.0 有三大升级特点:
「在计算机视觉领域,标准化做得很好,比如所有数据模态都可以用非常规整的 Tensor 来表示,所有任务都可以在 batch 维度同步 forward 和 bp(Back Propagation)的神经网络来处理,比如 PyTorch 和 TensorFlow。而在数据模态高度结构化,训练过程高度异步化的决策智能领域,我们希望做的也是这样一件事。」刘宇表示。
硬核升级之外,OpenDILab 也更加注重易用性和便捷性,为社区内的开发者提供了更加详尽的上手教程。值得一提的是,OpenDILab 将于今年 10 月推出从应用场景出发的 「PPO x Famliy 入门公开课」,课程内容主要从一个 PPO 解决绝大多数的常规决策问题,根据算法原理,代码实现,实际应用三者的一一对应来设计,即使你只是一枚想入门决策 AI 的萌新,或者只是一位想用决策 AI 技术解决某个实际问题的非内行工程师,都可以通过该课程和 OpenDILab 平台获得在算法、系统、工程等经验和工具支持。
我们也了解到,同在 WAIC2022 发布的 SenseMAP 商汤多智能体平台,在搭建过程中也用到了 OpenDILab 开源的多项前沿技术。
在 WAIC 2022 的企业论坛中,刘宇介绍:「我们利用 OpenDILab 作为基建之一构建了商汤多智能体游戏 AI 平台 SenseMAP,同时 OpenDILab 也支持了我们在游戏、电力调度、自动驾驶和货运调度等领域的业务应用。」
刘宇认为,只有一项技术的门槛明显降低,更多人才有机会入局。
纵观人类技术发展历史,真正带动整个社会往前走的机会,未必出现在某种技术诞生的那一刻,更多是这项技术能够得到普及之后。这正是 OpenDILab 的开源初衷。