2023年第23周(06-05 ~ 06-11)

Minecraft 成为AI的试炼场,探索 agent 自主应对开放世界的挑战。


(图片取自 minedojo.org)

2019年MineRL 项目,开放了数据集,并设立了挑战赛,以促进使用深度强化学习(deep RL)应对开放世界的各种挑战。

2023年2月,北京大学 Zihao Wang 领导的团队发表了“第一个能够稳健地完成70+个Minecraft任务的多任务代理”。

2023年5月 来自 Nvida 和多家大学联合研究团队发表的 Voyager —— 具有大型语言模型的开放式具身代理,与其他自动化代理的比较,在完成新任务方面速度明显更快,并且是迄今为止唯一可以解锁珍贵的钻石级工具的 Minecraft 自动化代理。

2023年6月,OpenAI 花费16万美元邀请 Minecraft 玩家,以便捕获人类玩家的游戏视频片段,用于开发/训练AI来玩此游戏。
OpenAI 该项目主页:通过视频预训练学习玩《我的世界》

Voyager 玩 Minecraft 以三种方式使用到 GPT-4

以下内容摘录自文章 How Nvidia uses GPT-4 to make AI better at Minecraft

第一种,生成挑战任务
GPT-4被用于根据Minecraft中当前的物品清单,提出新的挑战任务给Voyager程序。
Voyager 通过格式化的自然语言提示,向GPT-4提供一个物品清单描述,例如:

Inventory (5/36): {'oak_planks': 3, 'stick': 4, 'crafting_table': 1, 'stone': 3, 'wooden_pickaxe': 1},

GPT-4 将输出一个关于新挑战的自然语言描述,并解释为什么这是一个合适的新任务,例如:

Reasoning: Since you have a wooden pickaxe and some stones, it would be beneficial to upgrade your pickaxe to a stone pickaxe for better efficiency.

Task: Craft 1 stone pickaxe.

第二种,生成下一步操作代码
GPT-4 根据输入新的挑战任务,生成用于在Minecraft中进行下一步操作的代码(LLM的编程能力),每段代码都会在Minecraft中进行测试,然后反馈信息被送回GPT-4进行代码的改进。

研究团队将代码的这种试错过程描述为 迭代提示(iterative prompting),因为通过GPT-4提示形成了代码-反馈-重新编码 (code/feedback/recode)的循环。
在这个环节,GPT-4被用于测试每份代码并确定其是否成功。这被称为 自我验证(self-verification)。

例如:最初的程序代码是向 Minecraft 发送指令制作“金合欢斧”,即由金合欢木制成的斧头,但游戏中不存在这种物品,它将失败。该指令将以“执行错误”被 Voyager 处理,代理会修改代码并再次尝试。
这一问题仍然是大语言模型的“幻觉(hallucinations)”现象。研究人员指出,在代码生成过程中也会发生幻觉,例如使用鹅卵石作为燃料输入,尽管在游戏中鹅卵石并非燃料来源。

第三种,调用技能库
Voyager 会存储那些已经尝试、测试并成功的代码片段,这些被称为"技能"。Voyager 通过 GPT-4 可以从这个库中获取未来的建议行动。
GPT-4 以一个"查询"开始,比如"制作一个铁镐";然后它在库中搜索"键",即存储的技能描述;然后将任务所需的技能作为输出,即该查询-键组合的"值",类似于数据库搜索。

关键是自我验证单元

研究人员通过所谓的消融研究(移除程序的部分)发现,整个Voyager构建中最关键的元素是评论家(critic),即自我验证单元。
“自我验证是Voyager接收到的所有反馈类型中最重要的。” 他们推断:“删除该模块会导致发现的物品数量显著下降(-73%),“因此他们得出结论:“自我验证作为一个关键机制,用于决定何时继续进行新任务或重新尝试先前失败的任务。”

另外,Voyager在进行游戏时,当给予人类反馈时,可以输出更复杂的结果。
使用实时的人类反馈作为“批评家”或“课程”或两者兼而有之,以推进Voyager做出的选择,Voyager能够在Minecraft中构建复杂的3D结构,例如下界传送门和房屋。

Voyager 的三个关键组件

以下内容摘录自 Voyager 项目官网

Voyager的三个关键组件:用于开放式探索的自动课程、用于越来越复杂行为的技能库,以及使用代码作为行动空间的迭代提示机制。

自动课程设置

自动课程设置考虑了探索进展和代理系统的状态,以最大限度地促进探索。该课程由GPT-4根据"尽可能多地发现各种事物"的总体目标生成。这种方法可以被视为上下文中的新颖性搜索形式。

技能库

上方:添加新技能。每个技能都由其描述的嵌入进行索引,以便在未来的类似情况中检索。
下方:技能检索。当面临自动课程提出的新任务时,我们进行查询以确定与之相关的前5个技能。通过组合更简单的程序,可以合成复杂的技能,这使得Voyager的能力随着时间的推移迅速增强,并减轻了灾难性遗忘的影响。

迭代提示机制

左侧:环境反馈。GPT-4意识到在制作棍子之前还需要2块木板。
右侧:执行错误。GPT-4意识到在Minecraft中没有金合欢斧头,所以应该制作一把木斧。

自我验证

通过向GPT-4提供代理系统的当前状态和任务,我们要求其充当评论家,告知我们程序是否达到了任务目标。此外,如果任务失败,它还会提供批评意见,建议如何完成任务。


AI展望周刊,个人向的阅读摘录,关注AI、理解AI,注视正在发生的未来。