美国时间 8 月 5 日下午,OpenAI 主办的线下比赛(OpenAI 称为“OpenAI Five Benchmark”)一共进行了四局比赛。第一局 5 名现场观众组成的路人队伍被 7 分钟破中路二塔,9 分钟上路上高地,12 分钟破两路,人头比 26:4,可说是完全辗压。
之后三局比赛是重头戏,OpenAI Five 对阵 4 位前职业选手(Blitz、Cap、Fogged、Merlini)与一位现任职业选手(MoonMeander)组成的高手队伍。第一局依然惨败,21 分钟破第二路高地,人类选手打出 GG,人头比 39:8。第二局人类选手选择更强的控制、更积极的打法,却也只坚持 24 分钟,人头比 41:12。这样,三局两胜的比赛就告终了。
▲ 第二局人类高手比赛结束后,OpenAI CTO Greg Brockman 依序向 5 位职业选手(前)拥抱致意。
胜负已分,第三局就纯娱乐,现场观众帮 OpenAI Five 选了 5 个不怎么厉害的英雄,最后果然让人类玩家获胜。
不过除了比赛比分,广大强化学习研究人员和人工智能爱好者还有一个深深的疑问就是,这样的 AI 是如何训练出来的。
毋庸置疑,DOTA 游戏的复杂度比围棋高,回馈也相当稀疏,即使选用 OpenAI 开发非常成熟的大规模分散式 PPO 实现“Rapid”,也难以直觉信服“只要有足够训练时间,就能学到如此丰富的游戏行为”。比如首先 OpenAI Five 团队协作表现出人类一样的明确核心和辅助英雄,比如据 OpenAI 的研究人员介绍 OpenAI Five 也会选择打肉山,只说这两件事就都是人类玩家需经有意识的策略判断和执行才能做出,强化学习算法现在就有这么高层次的思维了?不太可能吧!
下面这些 5 日比赛瞬间也值得玩味:
▲ 比赛进行到 20 分钟,AI 的巫妖去看肉山。实际上整场比赛 AI 的英雄时不时就会去看看肉山。
▲ Blitz 的影魔被 AI Gank,用暗影护符原地隐身,AI 的直升机和冰女两个有 AOE 的英雄在附近还有一个 AI 队友的情况下直接撤退了。现场解说评价“简直是人类对隐身物品的滥用”。
▲ 还是天辉方的 Blitz 的影魔,绕树林被 AI 方的眼看到。值得注意的是,这时候天辉方下路 2 塔都已经丢了,而这个夜魇方的眼就插在夜魇下路 1 塔外不远的地方。这个眼位可算是非常保守、非常奇怪。
▲ AI 的火枪手很喜欢见面就给大,Blitz 的满血影魔露头就被大──这个策略其实非常有效,团战中人类方的冰女经常在团战开始前先被火枪大到半血,然后团战一开始就马上阵亡。
▲ 22 分钟 AI 的冰女补出点金手,不过接下来 3 分钟内都没有使用。
强化学习的范式决定了“帮助带来高回馈的行为”会更容易学到,而 DOTA 的复杂就在于,许多行为和最终游戏结果之间的关联似乎若即若离,大多数场合都有一锤定音效果的行为也许人类自己都说不清。即便相信 AlphaGo 能在反复自我对局找到更好策略的人,也不一定相信 DOTA 如此复杂的环境下仅靠自我对局就可以学到定位、分路、补兵、先手、看肉山、插眼等系列行为。
结合 OpenAI 之前放出的一些资料和 OpenAI Five 开发团队比赛现场的访谈,找到了“计算集群上相当于 180 年游戏时间每天训练”之外的,帮助我们理解更具体的 AI 达成端倪。相比说这些是“强化学习研究的小技巧”,我们更觉得这是“人类教学的小技巧”;相比 OpenAI Five 训练中模型自己的探索行为,意义更重大的是人类成功把自己的知识和经验设法教会了 OpenAI Five。
- 只使用最终比赛结果为回馈过于稀疏,所以 OpenAI 还增加一些评价人类选手表现的常用指标,比如总财产、击杀数、死亡数、助攻数、补刀数等。这些指标的改进也会与比赛输赢一起带来回馈提升,促进模型学习(避免长时间停留在无效学习区)。
- 同时为了避免 AI 过于关注这些偏向短期策略的资料,OpenAI 对基于指标的回馈设计并不是“指标数值越大越好”,而是只鼓励 AI 在这些方面做到人类玩家的平均水准。这项巧妙的设计同时也可帮助 AI 学到不同英雄在团队作战的不同定位:以人类玩家的平均水准而言,火枪是核心英雄,应当高伤害汇出、高正补、高人头、低助攻、低辅助行为,冰女则应当低正补、低人头、高助攻、高辅助行为。资料指标的不同就可引领不同的行动策略。
- DOTA 的英雄除了自身定位,之间也需要合作,比如抱团杀人拿塔。OpenAI 并没有为 AI 之间设计显性的沟通频道,目前他们设计了一名为“团队精神”的超参数,这个 0 到 1 之间的值会反应每个英雄关注自己的单独回馈和整个团队回馈之间的比例。训练中 OpenAI 透过退火来最佳化这个值的具体大小。
- 大家可能记得,OpenAI Five 刚发表时还不支援肉山。很快支援肉山之后,大家都很感兴趣 OpenAI 团队做了哪些改进。5 日比赛现场 OpenAI 的研究人员给了答案:正常的探索很难出现 5 个英雄都来到 Roshan 坑里然后打了 Roshan 拿到正面回馈的情况,所以他们启动模型学习的方法是,训练过程把 Roshan 的血量设为随机,那探索过程中英雄如果遇到血量很低的 Roshan,显然就可轻松获得高回馈,进而鼓励 AI 开始关注 Roshan。不过同时 Roshan 也不是随时都要打,随机血量的设定会让 AI 只有觉得能打过 Roshan 的时候才会打。
- 从长期学习的角度讲,只要有足够训练时间让 AI 探索各种行为,人类觉得有帮助的各种游戏作业,AI 最终都有机会学会(比如切假腿吃大药,也比如打肉山),只不过 AI 做出够多次数之前,都还无法形成有效的学习。人类希望 AI 快速学会的行为,可透过设计一些正回馈来鼓励;另一方面,不常出现的局面,也会像我们对深度学习模型的正常预期,AI 并不知道该怎么处理。
- 关于装备和眼,OpenAI 研究人员透露目前都是透过 API 编写程式档让 AI 购买,AI 并不需要自己选择;尤其是眼,目前程式档设定是眼只要 CD 就会购买。这样设定当然降低了训练难度,让 AI 享有稳定出装,同时也给辅助英雄带来有趣的结果:因为有眼就要买,就会占格子、迟早需要清出来,这成为一项促使 AI 插眼的动力;实际上,如果真的要为“插眼”本身设计回馈,OpenAI 研究人员发现,还真的很难找到任何指标量化眼插得好不好。所以这设计确实是一种简单快捷的解决方案。
现在知道这些 OpenAI 的“教学”方法之后,再回过头看看前面提到的 OpenAI Five 游戏表现,是否显得合理亲切多了呢?
可说 OpenAI Five 开发团队想了许多办法,鼓励 AI 用像人类的策略和作业玩 DOTA,但并不明确限制表现上限。人类玩家探索这个游戏这么久之后,借助人类的经验快速避开低效的游戏空间当然是一个好主意。从这角度讲,OpenAI 现阶段的 OpenAI Five 仿佛是早期 AlphaGo,以人类过往游戏学习为基础,然后尝试提升和创新。
这套系统继续最佳化之后在 DOTA2 国际邀请赛(TI)面对现役职业选手能有怎样的表现,比现在明显进化全面的(也许是 Master 版)OpenAI Five、甚至去掉一切约束完全自己探索的 OpenAI Five Zero 版,未来是否还有更多可能呢?我们拭目以待。
(本文由 雷锋网 授权转载;首图来源:OpenAI)
延伸阅读:
- 5 个 AI 合作无间,OpenAI 打《DOTA 2》电竞团体战击败人类
- 马斯克的 OpenAI 击败《Dota 2》职业电竞选手