论文部分内容阅读
半年前,法国游戏公司育碧(Ubisoft)成立了人工智能研发部门La Forge。育碧是游戏中的老牌公司,旗下有《刺客信条》《看门狗》《波斯王子》等畅销全球的游戏。最近,在蒙特利尔举办的育碧开发者大会上,育碧公布了这个部门的现阶段成果,包括可以即时报错的AI助手,可以对现实世界无人驾驶产生影响的技术。
解放程序员,AI抓bug
Commit Assistant(犯错助手)就是育碧人工智能部门的研发成果之一。Commit Assistant是一个针对开发者的全新人工智能助手,可以帮助开发者在编写代码时提前捕捉bug(错误)。
育碧的bug一直是资深游戏玩家的吐槽点,有网友评论:毕竟能找到大量的bug来训练AI的可能就只有育碧了。
Commit Assistant接受了庞大的软件库的训练,该软件库涵盖了育碧内部约10年的开发工作内容,这让它能了解历史上出现过的错误,并参考已应用的所有更正,并预测编码人员可能在编写中犯类似错误的时间。La Forge的负责人Yves Jacquier提到:“基于比较过去我们所编写的代码行之中出现的bug,以及修正后的代码,超级AI会找到一种方法,为程序员们提供代码与bug之间的联系。”
Commit Assistant目前具有三种能力:第一,通过深度学习过往bug数据,分析bug的基本类型和出错时间、节点,提前预测bug的出现;第二,实时监控、检测代码编写过程中的bug,及时报错以提醒程序员,不过目前还存在30%左右的错报率;第三,为程序员提出bug修改建议,减少程序员不必要的重复性工作。
清除bug是游戏开发中不可缺少的一环,而这项工作需要庞大的团队。在育碧,这项工作的费用最高可占开发成本的70%。开发Commit Assistant,能帮助育碧减少游戏设计中最昂贵和劳动最密集部分的成本。
据研发团队测试,Commit Assistant可以节省程序员20%左右的时间,而这无疑有助于开发成本的降低、游戏品质的提高。不过目前Commit Assistant还在研发阶段,没有进行过这个系统会对游戏开发有多大影响的研究。
同时,育碧还考虑了一个很人性化的方面:开发者们能接受在编码过程中,被连续打断并被提醒说“你错了”吗?Jacquier解释道,这只是一种工具,如果开发者不想用的话,不用就是了。研发一个AI产品,最重要的一点就是要确保能让用户参与进来,要向这个产品的用户展示,我们能用这个产品做什么事,而Commit Assistant的用户就是开发者们。当系统对开发者说“嘿,显然你正在制造bug”,开发者要能意识到这是一个能帮助他们高效完成工作的工具。如果开发者用着觉得不爽,那就会降低效率,反而得不偿失,就没有起到帮助的作用。
在未来,这一项技术将不仅在育碧得到应用。因为育碧是和康考迪亚大学合作研究人工智能,研究成果都发表成了学术论文,所有论文都是公开可取的。不过Commit Assistant的系统需要很多的大数据,也就意味着需要较大的预算,小的游戏工作室研发不起这种类型的系统。
如果育碧的人工智能技术能如预期那般走向成熟,对玩家来说,也是一个福利。玩家常常会遇到游戏发布“跳票”的情况,也就是延迟发布,对于死忠玩家来说,简直就是晴天霹雳。而这个系统减少了代码输入时的错误,这意味着后期排查、修复漏洞的时间会大大缩短,所以推迟发布日期的情况会变少,最终在成品中出现漏洞的情况也会减少。同时,使用Commit Assistant还能让开发者专注于改进游戏,而不是查bug。
有外媒爆料,育碧正在开发一款全新的《刺客信条》游戏,抓bug工具或能用到这款游戏的研发中。
告别重复,NPC也会随机应变
玩游戏的人都知道传统游戲NPC(非玩家控制角色/系统角色)是什么样子:遇到一百次,一百次都是一样的神态,一样的动作。而育碧则根据“马斯洛需求层次理论”,为游戏NPC赋予了不一样的反应,每次遇见NPC,玩家可能获得的NPC反应都是不一样的。
“马斯洛需求层次理论”由美国心理学家亚伯拉罕·马斯洛于1943年在《人类激励理论》论文中提出。书中将人类需求像阶梯一样从低到高按层次分为五种,分别是:生理需求、安全需求、社交需求、尊重需求和自我实现需求。
系统会根据玩家每次遇见NPC时的动作、动机,来调整NPC的反应。比如,当玩家在枪战中占上风,击倒了一队NPC中的若干成员,其他成员可能会基于安全需求,做出逃跑或投降的决定。当玩家在《孤岛惊魂5》中遇到一个NPC时,信任和士气这两个系统会进行运作,如果你向从未见过的人举起武器,他们会做出不信任或恐惧的反应,警告你放下枪,如果NPC认为你构成的威胁没有解除,他会因安全需求而发动攻击。
现实世界有问题,AI游戏项目来解决
目前的人工智能发展还处于非常初级的阶段,AI擅长的是在极其狭窄的领域内做出决定,其中最著名的就是Alpha Go,在围棋比赛中击败了顶级围棋选手柯洁。Commit Assistant目前也只能有效处理非常具体的单一任务。
但在AI功能复杂化的过程中,育碧的AI项目影响的不仅仅是游戏,可能对现实世界也有影响,比如自动驾驶,这或许会加快现实世界中自动驾驶技术发展的脚步。
育碧的人工智能程序员Olivier Delalleau在育碧开发者大会上谈到了游戏《看门狗2》中的自动驾驶。在游戏中会有车辆在马路上循环行驶,来为游戏提供视觉效果,这些汽车由系统操纵。
Delalleau用游戏中虚拟的旧金山附近的汽车做例子,展示了最初汽车在转弯时失控的状况。之所以会出现这种情况,是因为这辆汽车没有学会刹车,“因为它大多数时候都不将刹车视为一个好的解决方案,而你需要帮助它发现这一点”。
这一情况的解决办法就是,采用强化学习的方式,来帮助人工智能学习这一技能。育碧提供了数千个驾驶时刹车的例子,让系统了解到通过遵循数字道路的规则,它可以更有效地达到目标。最终,汽车开始在拐弯角放慢速度,减少了游戏场景中的汽车随机碰撞。
Jacquier认为,类似的工作可以为现实世界中使用人工智能系统提供信息,特别是在研究道德困境方面。在这方面,游戏产业可以为自动驾驶提供实际帮助。比如,要想知道在面对“电车困境”时,现实中的无人车会怎样反应,大可不用付出生命的代价,直接在虚拟空间内模拟这个事件,就可以知道无人车的选择,以改进技术。
解放程序员,AI抓bug
Commit Assistant(犯错助手)就是育碧人工智能部门的研发成果之一。Commit Assistant是一个针对开发者的全新人工智能助手,可以帮助开发者在编写代码时提前捕捉bug(错误)。
育碧的bug一直是资深游戏玩家的吐槽点,有网友评论:毕竟能找到大量的bug来训练AI的可能就只有育碧了。
Commit Assistant接受了庞大的软件库的训练,该软件库涵盖了育碧内部约10年的开发工作内容,这让它能了解历史上出现过的错误,并参考已应用的所有更正,并预测编码人员可能在编写中犯类似错误的时间。La Forge的负责人Yves Jacquier提到:“基于比较过去我们所编写的代码行之中出现的bug,以及修正后的代码,超级AI会找到一种方法,为程序员们提供代码与bug之间的联系。”
Commit Assistant目前具有三种能力:第一,通过深度学习过往bug数据,分析bug的基本类型和出错时间、节点,提前预测bug的出现;第二,实时监控、检测代码编写过程中的bug,及时报错以提醒程序员,不过目前还存在30%左右的错报率;第三,为程序员提出bug修改建议,减少程序员不必要的重复性工作。
清除bug是游戏开发中不可缺少的一环,而这项工作需要庞大的团队。在育碧,这项工作的费用最高可占开发成本的70%。开发Commit Assistant,能帮助育碧减少游戏设计中最昂贵和劳动最密集部分的成本。
据研发团队测试,Commit Assistant可以节省程序员20%左右的时间,而这无疑有助于开发成本的降低、游戏品质的提高。不过目前Commit Assistant还在研发阶段,没有进行过这个系统会对游戏开发有多大影响的研究。
同时,育碧还考虑了一个很人性化的方面:开发者们能接受在编码过程中,被连续打断并被提醒说“你错了”吗?Jacquier解释道,这只是一种工具,如果开发者不想用的话,不用就是了。研发一个AI产品,最重要的一点就是要确保能让用户参与进来,要向这个产品的用户展示,我们能用这个产品做什么事,而Commit Assistant的用户就是开发者们。当系统对开发者说“嘿,显然你正在制造bug”,开发者要能意识到这是一个能帮助他们高效完成工作的工具。如果开发者用着觉得不爽,那就会降低效率,反而得不偿失,就没有起到帮助的作用。
在未来,这一项技术将不仅在育碧得到应用。因为育碧是和康考迪亚大学合作研究人工智能,研究成果都发表成了学术论文,所有论文都是公开可取的。不过Commit Assistant的系统需要很多的大数据,也就意味着需要较大的预算,小的游戏工作室研发不起这种类型的系统。
如果育碧的人工智能技术能如预期那般走向成熟,对玩家来说,也是一个福利。玩家常常会遇到游戏发布“跳票”的情况,也就是延迟发布,对于死忠玩家来说,简直就是晴天霹雳。而这个系统减少了代码输入时的错误,这意味着后期排查、修复漏洞的时间会大大缩短,所以推迟发布日期的情况会变少,最终在成品中出现漏洞的情况也会减少。同时,使用Commit Assistant还能让开发者专注于改进游戏,而不是查bug。
有外媒爆料,育碧正在开发一款全新的《刺客信条》游戏,抓bug工具或能用到这款游戏的研发中。
告别重复,NPC也会随机应变
玩游戏的人都知道传统游戲NPC(非玩家控制角色/系统角色)是什么样子:遇到一百次,一百次都是一样的神态,一样的动作。而育碧则根据“马斯洛需求层次理论”,为游戏NPC赋予了不一样的反应,每次遇见NPC,玩家可能获得的NPC反应都是不一样的。
“马斯洛需求层次理论”由美国心理学家亚伯拉罕·马斯洛于1943年在《人类激励理论》论文中提出。书中将人类需求像阶梯一样从低到高按层次分为五种,分别是:生理需求、安全需求、社交需求、尊重需求和自我实现需求。
系统会根据玩家每次遇见NPC时的动作、动机,来调整NPC的反应。比如,当玩家在枪战中占上风,击倒了一队NPC中的若干成员,其他成员可能会基于安全需求,做出逃跑或投降的决定。当玩家在《孤岛惊魂5》中遇到一个NPC时,信任和士气这两个系统会进行运作,如果你向从未见过的人举起武器,他们会做出不信任或恐惧的反应,警告你放下枪,如果NPC认为你构成的威胁没有解除,他会因安全需求而发动攻击。
现实世界有问题,AI游戏项目来解决
目前的人工智能发展还处于非常初级的阶段,AI擅长的是在极其狭窄的领域内做出决定,其中最著名的就是Alpha Go,在围棋比赛中击败了顶级围棋选手柯洁。Commit Assistant目前也只能有效处理非常具体的单一任务。
但在AI功能复杂化的过程中,育碧的AI项目影响的不仅仅是游戏,可能对现实世界也有影响,比如自动驾驶,这或许会加快现实世界中自动驾驶技术发展的脚步。
育碧的人工智能程序员Olivier Delalleau在育碧开发者大会上谈到了游戏《看门狗2》中的自动驾驶。在游戏中会有车辆在马路上循环行驶,来为游戏提供视觉效果,这些汽车由系统操纵。
Delalleau用游戏中虚拟的旧金山附近的汽车做例子,展示了最初汽车在转弯时失控的状况。之所以会出现这种情况,是因为这辆汽车没有学会刹车,“因为它大多数时候都不将刹车视为一个好的解决方案,而你需要帮助它发现这一点”。
这一情况的解决办法就是,采用强化学习的方式,来帮助人工智能学习这一技能。育碧提供了数千个驾驶时刹车的例子,让系统了解到通过遵循数字道路的规则,它可以更有效地达到目标。最终,汽车开始在拐弯角放慢速度,减少了游戏场景中的汽车随机碰撞。
Jacquier认为,类似的工作可以为现实世界中使用人工智能系统提供信息,特别是在研究道德困境方面。在这方面,游戏产业可以为自动驾驶提供实际帮助。比如,要想知道在面对“电车困境”时,现实中的无人车会怎样反应,大可不用付出生命的代价,直接在虚拟空间内模拟这个事件,就可以知道无人车的选择,以改进技术。