当前位置:首页 > 游戏 > 正文

单机《星际争霸2》AI,不用GPU集群,支持多种训练环境

新智元报道

来源:Github

编辑:文强

【新智元导读】如果说我们的征途是星辰大海,那么星际争霸必定是其中一关。今天,有人在Github开源了他潜心研究一年半的成果,一个新手和资深研究人员都能受益的深度强化学习框架,单机运行速度快、方便调式,支持多种强化学习训练环境。

上周结束的AIChallenger星际争霸竞赛,让AI挑战星际争霸这个议题又稍稍火了一把。虽然这届冠军使用的仍然是硬编码方法,但从其他解决方案中不难看出,AI算法的占比在不断提升。

作为围棋之后DeepMind公开宣布的下一个攻克目标,《星际争霸》的魅力可见一斑。而随后不久DeepMind便将其相关研究及平台开源,更是印证了让AI玩星际争霸的挑战。

今天,塔尔图大学的RomanRing在Github上开源了他倾力投入一年半的成果,一个名叫Reaver的《星际争霸II》AI,可用于训练《星际争霸II》的各种基本任务。

Reaver的基本思路是沿着DeepMind的路线在走,也即AI的玩法是像人类玩家一样,从游戏画面中获取视觉特征,然后再做出决策。

补充说明,Roman去年本科毕业项目是使用《Actor-Critic法复现DeepMind星际争霸II强化学习基准》[1],Reaver则是在此基础上的改善提升。

Reaver的强项在于比其他开源的同类框架单机运行速度快;除了支持星际争霸游戏训练环境SC2LE,也支持OpenAIGym、ATARI和MUJOCO;模块化组成,容易调试。

根据作者所说,Reaver不到10秒就解决CartPole-v0,在4核CPU笔记本上每秒处理5000张图像,使用GoogleColab,Reaver通关《星际争霸II》SC2LE小型游戏MoveToBeacon只需要半小时的时间。

单机《星际争霸2》AI,不用GPU集群,支持多种训练环境

Reaver玩《星际争霸II》小型游戏MoveToBeacon的画面,左边是未经训练,右边是训练后的情况。来源:RomanRing/YouTube

套用一句话,如果我们的征途是星辰大海,那么其中的一关必然是《星际争霸》。

Reaver对于不具备GPU集群的人非常友好,正如作者在Github库里介绍所说,

“虽然开发是研究驱动的,但ReaverAPI背后的理念类似于《星际争霸II》游戏本身——新手可以用,领域专家也能从中获得东西。

“对于业余爱好者而言,只要对Reaver稍作修改(例如超参数),就能得到训练深度强化学习智能体的所有必须工具。对于经验丰富的研究人员,Reaver提供简单但性能优化的代码库,而且都是模块化架构:智能体、模型和环境都是分开,并且可以随意组合调换。”

欢迎加入星际争霸强化学习阵营。

深度强化学习AIReaver:模块化且便于调试

单机《星际争霸2》AI,不用GPU集群,支持多种训练环境

性能大部分已发表的强化学习基准通常针对的都是MPI之间message-based通信,对于DeepMind或者OpenAI这样有大规模分布式强化学习配置的机构而言这样做自然很合理,但对于普通研究者或其他没有这类强大基础设施的人,这就成了很大的瓶颈。因此,RomanRing采用了共享内存(sharedmemory)的方法,相比message-based并行的解决方案实现了大约3倍的速度提升。

模块化很多强化学习基准都或多或少都是模块化的,不过这些基准通常与作者使用的训练环境密切相关。RomanRing自己就曾经因为专注于《星际争霸II》环境而导致调试花了很长时间。因此,Revar只需要一个命令行就能改变训练环境,从SC2到Atari或者CartPole(将来计划纳入VizDoom)。每个神经网络都是简单的Keras模型,只要符合基本的APIcontracts都能调用。

调试现在一个游戏AI通常含有十几个不同的调试参数,如何实现更为统一便捷的调试?RomanRing在Reaver中只要能用的地方都用了“gin-config”,这个轻量级调试框架只要是Python可调用函数都能调试,非常方便。

更新是的,现在算法发展很快,去年发表的东西今年就可能过时。在开发Reaver的时候Roman表示他想着用了TensorFlow2.0API(主要是使用tf.keras不用tf.contrib),希望这个库能活用久一点吧。

单机友好,可用于训练星际争霸II各种任务

RomanRing列出了Reaver在《星际争霸II》各种小型游戏上与其他AI的性能对比。其中,

单机《星际争霸2》AI,不用GPU集群,支持多种训练环境

Reaver(A2C)就是在SC2LE训练Reaver得到的结果DeepMindSC2LE是DeepMind在《StarCraftII:ANewChallengeforReinforcementLearning》一文中发布的结果[2]DeepMindReDRL则是DeepMind在《RelationalDeepReinforcementLearning》中的结果[3]人类专家是DeepMind收集的GrandMaster级别人类玩家的结果

以下是Reaver在不同小型游戏中训练花费的时间:

单机《星际争霸2》AI,不用GPU集群,支持多种训练环境

综上,就算DefeatRoaches花了150小时,但考虑到硬件只是一台笔记本(英特尔酷睿i5-7300HQ,4核+GTX1050GPU),这个结果已经算很不错。

Roman还列出了他的路线图,上述成果只是他万里长征的第一步。如果你感兴趣,不妨加入这个项目。

单机《星际争霸2》AI,不用GPU集群,支持多种训练环境

介绍就到这里,访问Github了解更多:

参考资料

新智元AI技术+产业社群招募中,欢迎对AI技术+产业落地感兴趣的同学,加小助手_2入群;通过审核后我们将邀请进群,加入社群后务必修改群备注(姓名-公司-职位;专业群审核较严,敬请谅解)。

你可能想看:

有话要说...

取消
扫码支持 支付码