天天看点

AI击败DotA顶级选手是不是突破?OpenAI放出了更多细节成绩AI怎样打DotA?开发历程TI如何击败AI基础设施如何解决5v5?相关链接

本文来自AI新媒体量子位(QbitAI)

AI击败DotA顶级选手是不是突破?OpenAI放出了更多细节成绩AI怎样打DotA?开发历程TI如何击败AI基础设施如何解决5v5?相关链接

直到今天,OpenAI终于在官方博客上公布了人工智能打DotA技术的进化历程、(部分)技术细节,以及和更多选手对战的视频,以及怎样打败这个AI。

量子位编译整理如下:

我们在DotA 2上取得的结果表明,只要具备足够的计算能力,自我对抗可以使机器学习系统的水平超越人类(目前仅限于中单1v1)。

在1个月时间里,我们系统的水平从只能匹配高段玩家上升至能击败顶级职业选手。自那时以来,系统仍在继续得到优化。

有监督深度学习系统的性能取决于训练数据集,但在自我对抗系统中,随着系统变得更强大,可用数据也会自动得到优化。

下图是AI的TrueSkill得分:

AI击败DotA顶级选手是不是突破?OpenAI放出了更多细节成绩AI怎样打DotA?开发历程TI如何击败AI基础设施如何解决5v5?相关链接

随着时间发展,我们最好的AI的TrueSkill得分也在线性提高。TrueSkill是通过AI之间进行模拟游戏,观察胜率来计算的,相当于国际象棋的ELO评分。

TrueSkill得分的提高与系统各部分的改进都相关,为算法增加新功能、扩大规模都能提高得分。

完整的DotA游戏是5v5对抗,但在某些巡回赛中也可以看到中单对抗。

我们的AI按照标准巡回赛规则来玩游戏,我们没有在1v1比赛中加入任何有利于AI的简化。

AI通过以下界面来操作:

观察:bot API功能使AI可以像人类一样观察,包括英雄、兵线和附近地形。游戏是部分可观察的。

操作:通过bot API进行操作,操作频率与人类选手相仿,具体操作包括移动位置、攻击其他单位,以及使用道具。

反馈:在获胜后AI可以获得激励。基于其他基本指标,例如血量和补刀,AI也可以获得激励。

我们将十余种装备合成方式列入白名单,供AI使用,并选择其中一种进行评价。我们还利用传统的RL技术来训练最初的控兵线技巧。

△ AI对战SumaiL

项目进程如下所示。下文提到的MMR全称Match Making Rating,也就是比赛匹配分级,相当于天梯积分。在DotA 2中,15%的玩家天梯分低于1500,58%的玩家低于3000,99.99%低于7500。

3月1日:我们首个经典的增强学习系统配置于简单的DotA环境中。

5月8日:天梯1500分的测试者表示,他的水平提升速度要高于AI。

6月初:AI击败了天梯1500的测试者。

6月30日:击败了大部分天梯3000分的测试者。

7月8日:在对抗天梯7500分的半职业选手时,取得首胜。

8月7日:3比0击败Blitz(前职业选手,天梯6200)、2比1击败Pajkatt(职业选手,天梯8500)、3比0击败CC&C(职业选手,天梯8900)。他们都认为,SumaiL知道如何击败这个AI。

8月9日:10比0击败Arteezy(顶级职业选手,天梯10000)。他也认为SumaiL知道如何击败AI。

8月10日:6比0击败SumaiL(顶级中单职业选手,天梯8300)。他认为这个AI是无法击败的。在与8月9日的AI对抗时,他取得了2比1的成绩。

8月11日,2比0击败Dendi(前世界冠军、天梯7300的职业选手)。在对抗8月10日的AI时,这个AI取胜概率达到60%。

我们的方法是将少量的“教练训练”与自我对抗结合在一起。这使得我们在周一到周四国际邀请赛(TI7)期间能大幅优化AI。

△ 周一,Pajkatt击败AI

周一晚间,Pajkatt使用了不太常见的装备合成方式(购买了早期魔杖),并取得了胜利。我们随后将这种装备合成方式加入到训练的白名单中。

周三下午1点左右,我们测试了最新版AI。这个AI在第一波对抗中损失了相当一部分血量。我们一开始打算把代码回滚,不过又注意到,随后的游戏变得更有趣,而第一波对抗中的严重失血只是为了诱敌深入。进一步的自我对抗修复了问题,AI学会了应对诱饵策略。与此同时,我们将其结合至周一版本的AI,只用于第一波对抗。在Arteezy下午4点到达的20分钟前,我们完成了整个流程。

△ AI对战RTZ

在与Arteezy的赛后,我们升级了控兵线模型,这使得TrueSkill评分增加了1分。在周四与Sumail的比赛之前,进一步的训练让TrueSkill评分又增加了2分。Sumail指出,AI学会了在对手视野外放技能。这基于我们此前从不知道的机制:在对手视野之外放技能,对方英雄就积累不到魔棒点数。

Arteezy也和我们MMR 7.5k的半职业测试版进行了比赛,几乎取得了胜利,但是,AI采用的一种策略令他惊讶。Arteezy随后表示,中国顶尖职业选手、iG.V战队的中单Paparazi(拒绝者)曾在和他的比赛中用过一次这种策略,但这并不是常见行为。

尽管Sumail认为这个AI是“不可击败的”,但在某些非常少见的情况下,AI仍有可能被迷惑。我们在国际邀请赛的一场LAN活动上搭建了AI。玩家进行了超过1000盘游戏,尝试任何可能的方式去击败AI。

成功击败AI的策略主要包括3种类型:

拉兵线:玩家可以在AI的二塔和三塔之间,反复吸引刚产生的兵线来追你。最终将会有大量兵线在地图上追你,而AI的防御塔将被磨血。

毒球和风灵之纹:在1级情况下,这样的装备组合大幅提升玩家相对于AI的移速,从而快速拿到一血。你需要利用这样的优势去再次击杀AI。

1级强推:这需要大量技巧,但有几名MMR 6k到7k的玩家靠在1级短时间内放3-5次技能,击杀了AI。

解决1v1中的这些问题类似于解决Pajkatt提出的漏洞。但在5v5情况下,这样的漏洞无法使用。我们需要一种系统,能处理从未见过的奇怪局面。

我们还没有打算完整地讨论这个AI的内部原理,团队目前专注于解决5v5问题。

项目的第一步,是搞清楚如何基于实体GPU在云计算平台上运行DotA 2。

在GPU云计算实例上,游戏显示了出错消息。在Greg的个人GPU台式机上,也就是比赛中用的那台主机运行时,我们注意到,在连接显示器的情况下DotA可以启动,但在没有连接显示器时仍然显示出错消息。因此,我们对云计算GPU实例进行了配置,伪装已连接了显示器。

DotA目前并不支持定制的专用服务器,这意味着在没有GPU的情况下只能使用缓慢的软件加速。我们随后开发了一种机制,禁用大部分的OpenGL调用,仅仅保留了启动所需要的部分。

与此同时,我们开发了脚本机器人。考虑到内置机器人在1v1情况下表现不是很好,我们需要一个基准作为参考,并理解机器人API的所有语义。

这个脚本机器人在10分钟时间里完成了70次补刀,但仍落后于优秀的人类选手。

目前最优秀的1v1机器人能达到97次补刀(在此之前塔已经推掉,因此这个数字来自于推测),而理论最高值是101次。

1v1很复杂,但5v5更加复杂。我们知道,我们需要进一步推动AI向前发展,解决5v5的问题。

我们可以从行为复制着手。DotA大约每天有100万盘公开比赛,这些比赛的回放会在Valve的服务器中保存两周。

我们下载了自去年11月份以来所有专家级的回放,积累了包括580万盘比赛在内的数据库(每盘比赛约45分钟,有10名玩家参与)。我们使用OpenDota去分析这些回放,并捐出了1.2万美元(相当于他们10年的筹资目标)去支持这个项目。

当然,在博客的最后,OpenAI再次表达了“我们要招人!”

Dendi被虐全程回顾:

<a href="http://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&amp;mid=2247487926&amp;idx=1&amp;sn=925e8c06626f61acf3130fe33244a185&amp;chksm=e8d3a6c4dfa42fd29465c2f6f9f1da30361dd91c2ed29ccde0e9683e9fb4b0d191251501e341&amp;scene=21#wechat_redirect" target="_blank">对战全程视频!顶级高手苦练DOTA半辈子,就这样被AI击败</a>

同行质疑:

<a href="http://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&amp;mid=2247487939&amp;idx=1&amp;sn=35b07b81e94661d83f48d64a86c2910a&amp;chksm=e8d3a6b1dfa42fa7121773d1df927a0bbcf0d7806d13b98a635034fa625c356dfd4f861e37bb&amp;scene=21#wechat_redirect" target="_blank">击败DotA2顶级人类玩家,并不是AI的一次突破</a>

博客原文:

https://blog.openai.com/more-on-dota-2/

bot API:

https://developer.valvesoftware.com/wiki/Dota_Bot_Scripting

OpenDotA:

https://www.opendota.com/

— 完 —

本文作者:陈桦

原文发布时间:2017-08-17

继续阅读