Facebook AI 研究人员开源了CraftAssist,一个为 Minecraft 游戏构建交互式助手机器人的框架。这些机器人使用自然语言理解(NLU)来解析和执行来自人类玩家的文本命令,比如在游戏世界中建造房屋。研究人员可以扩展该框架的模块化结构,执行他们自己的 ML 实验。
研究小组在最近的一篇博客文章中概述了这个系统。CraftAssist 机器人使用与标准游戏客户端相同的协议连接到游戏中,所以它们可以做任何人类玩家可以做的事情。这些机器人使用 Minecraft 内置的基于文本的聊天接口与其他玩家互动。人类可以给机器人下达命令,包括高级指令,如“在蓝色立方体旁边建一座房子”。该版本的目标是帮助改善人机协作:
该平台的目的是为代理研究提供支持,人类可以与这些代理发生有趣的交互,并且对由人类参与者指定和评估的各种任务来说很有用。为了鼓励更广泛的 AI 研究社区使用 CraftAssist 平台,我们开源了这个框架,以及一个基准助手,以及我们用来构建这个框架的工具和数据。
机器人控制系统一般由感知子系统和动作选择子系统组成。感知是指将原始传感器数据转换为更为抽象的表示形式。例如,图像识别是一种将图像像素转换为描述图像内容的文本标签的感知任务。当使用与期望输出配对的传感器输入数据集训练现代深度学习模型时,它们可以在很多视觉和 NLU 任务上实现接近人类的水平。
行动选择是指机器人“决定”如何与世界发生互动来实现某种目标的过程;例如,为了赢得一场围棋比赛而采取的行动。很多成功的系统都使用了强化学习(RL),即机器人反复尝试一个任务,每次尝试都给出一个数字奖励结果。游戏是 RL 的一个常见测试平台,因为它们具有定义良好的操作和结果集,而经过现代 RL 训练的机器人在很多不同的游戏中常常能够超越人类。一些研究小组(例如谷歌 DeepMind)将感知和行为选择子系统结合成一个单一的经过深度 RL 训练的“端到端”系统。现在有很多用于训练这些系统的虚拟环境,包括 Facebook 开发的一个模拟栖息地。微软已经为 Minecraft 开源了一个叫作Project Malmo的“AI-gym”接口,以及一个大数据集,鼓励人们使用 Minecraft 作为 RL 研究的测试平台。
CraftAssist 并没有使用端到端学习。相反,Facebook 选择了一种更“工程化”、模块化的方式,建立了明确的感知和行动选择模块。正如一位团队成员在 Reddit 上的一个帖子中所说的那样,与 RL 项目(如“Project Malmo”)不同,“Project Malmo 更注重学习之类的东西(如导航和感觉运动控制)”,CraftAssist 更注重通过自然语言促进人类和机器人的互动。此外,研究小组在 arXiv 的一篇论文中说:
我们感兴趣的不是在单个复杂任务上的表现,而是处理大量简单任务的能力,而这些任务是由人类指定的(可能不太好)。
CraftAssist 确实包含了一些机器训练过的组件。机器人使用基于GRU和注意力模型的神经语义分析器来解析对话。机器人还有一个感知模块,利用深度学习来给建筑物的不同部分贴上标签,比如“墙”或“地板”。研究小组希望这种模块化结构可以鼓励其他人“嵌入”他们自己用 ML 构建的模块。
除了 CraftAssist 源代码,Facebook 还发布了几个相关的数据集,包括用于训练解析器的对话数据,以及由玩家在游戏中构建的不同房屋的众包数据集,这些数据集可用于训练机器人构建类似的结构。代码和数据集可以在 GitHub 上找到。
原文链接:
Facebook Open-Sources CraftAssist Framework for AI Assistants in Minecraft
评论