时间:2023-07-01|浏览:167
量子位报道|公众号QbitAI
从0开始在《我的世界》(MineCraft)中挖出一块钻石,需要多长时间?
对于熟悉游戏的玩家来说,可能只需要几分钟的时间: △图源Youtube@ItzJhief
然而对于AI来说,15分钟内可能都挖不出1块钻石!
为了发掘AI的潜力,CMU、微软、DeepMind和OpenAI联手在顶会NeurIPS上举办了一个名叫MineRL的竞赛,要求参赛队伍在4天时间内,训练出一个能在15分钟内挖出钻石的AI“矿工”。
从往届表现来看,冠军连40分都拿不到,甚至举办方给出的AIBaselines只能达到2分左右的水准(满分100分)。
今年,腾讯的绝悟AI却以76.97分的绝对优势一举夺魁,成功成为挑战赛历史上“挖矿最迅速”的AI。(不过,这几届的所有AI,都没能达成15min内挖出钻石这一挑战) △红色为绝悟AI分数
腾讯AILab是怎么拿到冠军的? “AI矿工”为何难以挖出钻石?
之所以AI难以在竞赛中迅速挖出钻石,主要有两方面的原因。
一方面,《我的世界》游戏本身对AI有难度。
它的初始世界完全随机生成,而迅速合成钻石又需要比较复杂的步骤:既不能只用一种工具,也不能“一挖到底”。
通常来说,从0开始挖钻石最快的方法,分为7个步骤。
第一步,玩家在空手进入《我的世界》中时,需要先找到树上的木头,用来获取木块:
第二步,将这些木块用来合成工作台:
第三步,在工作台上合成木镐,用来挖石砖:
第四步,获得石砖之后,需要合成一个石镐,用来快速挖铁矿:
第五步,为了将铁矿合成铁锭,还需要做一个熔炉来烧铁:
第六步,合成铁镐,用来挖出钻石:
第七步,寻找钻石,并用铁镐来挖出最终的钻石:
看到这里,就知道挖矿对于AI来说,已经很复杂了,不仅面临大量决策,还需要考虑时间问题。
另一方面,为了增加难度,举办方还特意给“AI矿工”们增加了不少限制。
禁止参赛者编写规则、游戏环境将背包信息与动作空间加密、不允许使用预训练模型、AI与环境交互不超过800万次、只能使用6核CPU+半张NVIDIAK80显卡训练4天……
当然,这样做是为了让各大高校的学生也有能力参与这次挑战赛,不至于出现硬件上“军备竞赛”的问题。
面对来自游戏和举办方的“挑战”,腾讯的绝悟AI是如何成为一名优秀矿工的?
如何让AI更快地挖矿?
首先,是整体训练策略的问题。
要想让AI在短时间、少算力的情况下变得会挖矿,首先就要改变训练策略。
这种情况下,不可能再用强化学习对AI进行整体训练。
因此,腾讯AILab将强化学习进行了“升级”,提出了一种基于分层强化学习(HierarchicalReinforcementLearning)的方法。
简单来说,就是将挖出钻石的过程像人一样分成几个具体的步骤,每个步骤都有一个“小目标”,让AI在完成一个目标后,能迅速地实施下一个目标。
然后,就是三个细节上的问题了。
其一,开放地图的理解问题。
由于表示学习在《我的世界》这样的3D场景中效果很差,腾讯AILab设计了一种基于动作感知的算法,来捕捉每个动作对环境的影响。
这种方法快速地提升了AI在开放世界中获取资源的速度。
其二,策略选择问题。
在游戏进行到一定阶段后,AI与人的思路会发生一些差异,仅凭人类数据训练,对AI的提升作用有限。
为此,腾讯AILab采用了自模仿学习的算法,从自己的实践中获得教训和经验,来降低进入危险区域、做出错误决策的概率。
其三,合成物品问题。
合成物品对于人类来说非常简单,然而AI却总是不容易合成它,成功率一开始甚至只有35%左右。
为此,腾讯AILab采用了动作序列一致性过滤(ConsistencyFiltering)+基于投票的集成学习(EnsembleLearning)方法,最终将合成物品的成功率提升到96%。
最终在评分中,绝悟AI的分数达到了76.97分。
事实上,在游戏AI上一路向前的“绝悟”,已经历了数次进化。
从最初攻克Atari游戏开始,到后来的棋牌游戏AI“绝艺”,掌握一手围棋、象棋、麻将的绝活。
再到现在的策略协作型AI“绝悟”,从MOBA、FPS再到开放世界游戏《我的世界》,这个基于强化学习训练的智能体正在变得愈发复杂。
这次