鱼羊 发自 凹非寺
量子位 报道
怎么教AI打游戏呢?当然是直接下指令啦。
告诉AI造农民,基地就开始唰唰往外吐农民:
△下方英文指令:创造新农民
指挥农民挖矿造兵工厂,一句话同样搞定:
发现敌方大龙,当然是直接开打啊:
前线打得欢,经济也不能落下:
这是来自Facebook AI的MiniRTSv2,不以微操取胜,它能用自然语言教会AI如何玩转实时战略游戏。
这项研究登上了NeurIPS 2019,代码、模型、数据集均已开源。
自然语言指导即时战略
MiniRTSv2是一款专为人工智能研究而设计的精简策略游戏。在游戏中,玩家需要指挥弓箭手、大龙和农民等单位打爆对手老巢。
虽然要比DOTA2,星际争霸这样的商业游戏简单得多,但MiniRTSv2依然是一款复杂的即时战略游戏。
开局同样是一张隐藏地图。
AI必须考虑到大型状态-动作空间带来的复杂情况,协同不同的兵种,并根据对手的行动调整战略布局。
与AlphaStar这样直接模仿人类策略的AI不同,在MiniRTSv2中,Facebook AI尝试了一条新的路径,让AI先用自然语言生成计划,再交由单独的模型执行操作。
也就是说,这是一个分层决策的过程。系统通过两个AI模型来执行任务,一个负责不断观察游戏状态,并用自然语言给出指令,即指导网络;另一个需要解读指令并执行决策,即执行网络。
在游戏环境的每个时间步骤上,观察编码器会对每个游戏对象(游戏单位,建筑物或资源)的空间位置和非空间内部状态进行编码。
这一编码器会为每个单位,资源生成单独的特征向量。
之后,辅助编码器会帮助AI学习其他全局游戏的属性特征。
这些特征既会被用到执行网络中,也会被用到指导网络中。
为了训练这个框架,Facebook收集了5392个游戏的数据集,这些游戏都由两人协同进行,一人指挥,一人操作。数据集包含了76000种人类配合情况,涵盖了广泛的策略。
两种模型都在有监督的情况下训练。
由于用来训练指导网络的数据集来自于人类语言,指导网络并不能直接形成原始的指令句,所以AI不得不学习推理,“理解”自然语言,而后制定战略计划并予以实施。
并且,这一模型不仅能生成自然语言命令,还能结合上下文阅读理解。
神奇的是,这么一通折腾,AI真的变强了。
不仅能像人类一样给出合理的指令,比如说何时造农民,何时造飞龙,在与用其他方法训练的AI对手对战的时候,基于NLP的AI胜率达到了57.9%。
One More Thing
另辟蹊径,用自然语言来教AI打游戏,并不是研究人员们一时心血来潮的小娱乐。
使用自然语言来作为分层决策的辅助手段,实际上是在推助人工智能利用和理解自然语言能力的提升,使其能够应用于更加广阔的场景,例如,如何让AI更好地适应不熟悉的任务和环境。
此外,这项研究或许也能催生出更懂人类口头或书面指令的AI系统,从而使残障人士能够更容易地使用各种现代电子设备。
玩转游戏,只是AI的第一步。
△微软为专门为残障玩家设计Xbox无障碍控制器
传送门
Facebook博客:
https://ai.facebook.com/blog/-teaching-ai-to-plan-using-language-in-a-new-open-source-strategy-game/
论文地址:
https://arxiv.org/pdf/1906.00744.pdf
项目地址:
https://github.com/facebookresearch/minirts
数据集:
https://drive.google.com/file/d/1jwagQN_Gdd83SylQEmnS3JYPomsyCsft/view
— 完 —