社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

用ChatGPT和强化学习玩转《我的世界》,Plan4MC攻克24个复杂任务

机器之心 • 2 年前 • 596 次点击  

机器之心发布

机器之心编辑部
Plan4MC 目前可以完成 24 个复杂多样任务,成功率相比所有的基线方法有巨大提升。
在开放式的环境中学习多种任务是通用智能体的重要能力。 《我的世界》(Minecraft)作为一款受欢迎的开放世界游戏,具有无限生成的复杂世界和大量开放的任务,成为近几年开放式学习研究的重要测试环境。

学习 Minecraft 中的复杂任务对当前的强化学习算法是巨大的挑战。一方面,智能体在无限大的世界中通过局部的观测寻找资源,面临探索的困难。另一方面,复杂的任务通常需要很长的执行时间,要求完成许多隐含的子任务。例如,制作一把石镐涉及砍树、制作木镐、挖原石等十余个子任务,需要智能体执行数千步才能完成。智能体只有在任务完成时能够获得奖励,难以通过稀疏奖励学会任务。
 

图:Minecraft 中制作石镐的过程。

目前围绕 MineRL 挖钻石竞赛的研究普遍使用专家演示的数据集,而 VPT 等研究使用大量带标签的数据学习策略。在缺少额外数据集的情况下,用强化学习训练 Minecraft 的任务是非常低效的。MineAgent 使用 PPO 算法仅能完成若干个简单任务;基于模型的 SOTA 方法 Dreamer-v3 在简化环境模拟器的情况下,也需要采样 1000 万步学会获得原石。

北京大学和北京智源人工智能研究院的团队提出了在无专家数据的情况下高效解决 Minecraft 多任务的方法 Plan4MC。作者结合强化学习和规划的方法,将解决复杂任务分解为学习基本技能和技能规划两个部分。作者使用内在奖励的强化学习方法训练三类细粒度的基本技能。智能体使用大型语言模型构建技能关系图,通过图上的搜索得到任务规划。实验部分,Plan4MC 目前可以完成 24 个复杂多样任务,成功率相比所有的基线方法有巨大提升。


  • 论文链接:https://arxiv.org/abs/2303.16563
  • 代码链接:https://github.com/PKU-RL/Plan4MC
  • 项目主页:https://sites.google.com/view/plan4mc


1、Minecraft 多任务

Minecraft 中玩家通过探索能够获得数百种物品。任务定义为初始条件和目标物品的组合,例如,“初始化


工作台,获得熟牛肉”。解决这个任务包含 “获得牛肉”、“用工作台和原石制作熔炉” 等步骤,这些细分的步骤称为技能。人类在世界中掌握和组合此类技能来完成各种任务,而不是独立地学习每个任务。Plan4MC 的目标是学习策略掌握大量的技能,再通过规划将技能组合成任务。

作者在 MineDojo 模拟器上构建了 24 个测试任务,它们涵盖了多种行为(砍树、挖原石、与动物交互)、多种地形,涉及 37 个基本技能。需要数十步的技能组合和数千步的环境交互来完成各个任务。
 

图:24 个任务的设置

2、Plan4MC 方法

 
学习技能

由于强化学习在训练中难以让玩家大范围跑动探索世界,许多技能仍不能被掌握。作者提出将探索和寻找的步骤分离出来,将 “砍树” 技能进一步细化为 “找树” 和 “获得木头”。Minecraft 中的所有技能被分为三类细粒度的基本技能:

  • 寻找:给定目标物品,玩家要在世界中探索,找到和接近该物品。
  • 操作:利用现有的工具在附近完成一些任务,如放置工作台、与动物交互、挖方块。
  • 合成:用低级物品合成高级物品。

针对每一类技能,作者设计了强化学习模型和内在奖励进行高效的学习。寻找类技能使用分层的策略,其中上层策略负责给出目标位置、增大探索范围,下层策略负责到达目标位置。操作类技能使用 PPO 算法结合 MineCLIP 模型的内在奖励训练。合成类技能仅使用一个动作完成。在未修改难度的 MineDojo 模拟器上,学习全部技能仅需与环境交互 6.5M 步。
 


规划算法

Plan4MC 利用技能之间的依赖关系进行规划,例如获得石镐与获得原石、木棍、放置的工作台等技能间存在如下关系。

 
作者通过与大语言模型 ChatGPT 进行交互的方式生成出所有技能之间的关系,构建了技能的有向无环图。规划算法是技能图上的深度优先搜索,如下图所示。

相比 Inner Monologue、DEPS 等与大语言模型交互式规划的方法,Plan4MC 能够有效避免大语言模型规划过程中的错误。

3、实验结果
 


在关于学习技能的研究中,作者引入了不做任务分解的 MineAgent,以及不细分出寻找类技能的消融实验 Plan4MC w/o Find-skill。表 2 表明,Plan4MC 在三组任务上均显著超过基线方法。MineAgent 在挤牛奶、剪羊毛等简单任务上性能接近 Plan4MC,但无法完成探索困难的砍树、挖原石等任务。不做技能细分的方法在所有任务上成功率均低于 Plan4MC。

 
图 3 显示了在完成任务的过程中,各方法在寻找目标的阶段均有较大的失败概率、导致成功率曲线下降。而不做技能细分的方法在这些阶段的失败概率明显高于 Plan4MC 的概率。


在关于规划的研究中,作者引入了利用ChatGPT做交互式规划的基线方法Interactive LLM,以及两个消融实验:技能执行失败时不再重新规划的Zero-shot方法和使用一半最大交互步数的1/2-steps方法。表2表明Interactive LLM在与动物交互的任务集上表现接近Plan4MC,而在另两个需要更多规划步骤的任务集上表现不佳。Zero-shot的方法在所有任务上均表现较差。使用一半步数的方法相比Plan4MC成功率下降不多,表面Plan4MC能用较少的步数高效完成任务。

4、总结

作者提出了 Plan4MC,使用强化学习和规划解决 Minecraft 中的多任务。为解决探索困难和样本效率的问题,作者使用内在奖励的强化学习训练基本技能,利用大语言模型构建技能图进行任务规划。作者在大量困难 Minecraft 任务上验证了 Plan4MC 相较包括 ChatGPT 等的各种基线方法的优势。

结束语:强化学习技能 + 大语言模型 + 任务规划有可能实现 Daniel Kahneman 所描述的 System1/2 人类决策模型。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/153834
 
596 次点击