写点什么

Facebook 开源 CraftAssist,用于辅助 Minecraft AI 助理研究

  • 2019-11-06
  • 本文字数:1384 字

    阅读完需:约 5 分钟

Facebook开源CraftAssist,用于辅助Minecraft AI助理研究

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


2019-11-06 08:002185

评论

发布
暂无评论
发现更多内容

spense工作原理分析

夏天的味道123

React

鸿蒙开发实例 | 鸿蒙原子化服务卡片开发完美体验

TiAmo

华为 鸿蒙 10月月更

【web 开发基础】PHP 中的goto语句的使用 -PHP 快速入门 (23)

迷彩

goto 10月月更 web开发基础 PHP基础

正则表达式中的字符串

芯动大师

Python 正则表达式 10月月更

能不能手写Vue响应式?前端面试进阶

bb_xiaxia1998

Vue

Excel 公式、图表以及单元格的操作

芯动大师

Python Excel数据分析 10月月更

C# 使用秒表类Stopwatch对程序的运行速度测试

IC00

C# 学习 上位机 10月月更

C# Random类学习,让我们玩玩随机函数

IC00

C# 学习 上位机 10月月更

如何对查询结果进行排序

芯动大师

Python 排序 10月月更

WLAN无线局域网技术 基础(一)WLAN与WIFI的关系,基本的WLAN组网方式,胖AP和瘦AP各自的特点和适用场景

Python-派大星

10月月更

嵌入式 Linux 入门(八、Linux 下的软件安装)

矜辰所致

Linux 软件安装 apt 10月月更

调度线程池ScheduledThreadPoolExecutor源码解析

JAVA旭阳

Java 线程池 10月月更

在职京东架构师的亿级系统架构实践经历总结:架构修炼之“道”

小小怪下士

Java 系统架构 api 网关

“程”风破浪的开发者|Hi3861开发环境搭建

鸿蒙之旅

OpenHarmony 10月月更 “程”风破浪的开发者

react源码分析:实现react时间分片

flyzz177

React

react源码分析:babel如何解析jsx

flyzz177

React

为什么Redis的数据被删除,内存占用还这么大?

小小怪下士

Java redis 程序员

什么是ForkJoin?看这一篇就能掌握

华为云开发者联盟

多线程 开发 华为云 企业号十月 PK 榜

中国开源年会报名 | StarRocks 极速湖仓分析的探索与实践

StarRocks

数据库·

说说Vue响应式系统中的Watcher和Dep的关系-面试进阶

bb_xiaxia1998

Vue

数据湖(十四):Spark与Iceberg整合查询操作

Lansonli

数据湖 10月月更

云小课|MRS基础原理之CarbonData入门

华为云开发者联盟

大数据 华为云 企业号十月 PK 榜

react的jsx语法是怎样解析的

夏天的味道123

React

外包学生管理系统架构设计

乖乖IvyShine

阿里前端面试问到的vue问题

bb_xiaxia1998

Vue

能否手写vue3响应式原理-面试进阶

helloworld1024fd

JavaScript

手撕常见JS面试题

helloworld1024fd

JavaScript

OSPF基础(二):OSPF区域、router-ID、度量值、修改度量值的方法、OSPF协议报文类型、OSPF邻接关系建立过程

Python-派大星

10月月更

WLAN无线局域网技术 基础(二)PoE与PoE交换机的功能,二层组网和三层组网的概念与方式,有线组网概念:直连式组网、旁挂式组网,CAPWAP协议

Python-派大星

10月月更

美团前端一面必会手写面试题汇总

helloworld1024fd

JavaScript

13个QA带你了解线上压测的知识点

华为云开发者联盟

后端 开发 华为云 测试环境 企业号十月 PK 榜

Facebook开源CraftAssist,用于辅助Minecraft AI助理研究_AI&大模型_Anthony Alford_InfoQ精选文章