欢迎光临散文网 会员登陆 & 注册

VOYAGER: An Open-Ended Embodied Agent with Large Language Models

2023-06-10 18:07 作者:小猫咪毛毛  | 我要投稿


一句话总结 VOYAGER

First LLM-powered embodied lifelong learning agent to drive exploration, master a wide range of skills, and make new discoveries continually without human intervention in Minecraft.


概念介绍:embodied AI

具身人工智能(Embodied AI)是指具有身体的人工智能,能够与真实世界进行感知和交互并从中学习和进化的智能体。具身人工智能是人工智能和机器人的交叉领域,也是通向通用人工智能(Artificial General Intelligence)的一条研究道路。具身人工智能的典型应用包括玩 Minecraft、机器人导航和操控等。具身人工智能与传统的基于监督学习的人工智能有很大的不同,它更强调智能体与环境的动态互动,而不是被动地接收数据输入。具身人工智能是一个前沿而有挑战性的领域,有很多未解决的问题和潜在的机遇。


概念介绍:什么是一个有效的 lifelong learning?

  1. 可以根据周围的环境和目前可以使用的技能,提出适合当前情况的小目标

    propose suitable tasks based on its current skill level and world state,

    e.g., learn to harvest sand and cactus before iron if it finds itself in a desert rather than a forest;

  2. 根据环境反馈精进技能,并将技能存放到记忆中

    refine skills based on environmental feedback and commit mastered skills to memory for future reuse in similar situations

    e.g. fighting zombies is similar to fighting spiders;

  3. 可以自主在环境中持续探索,不断给自己找新task做

    continually explore the world and seek out new tasks in a self-driven manner.


VOYAGER 结构

  1. 生成阶段目标 (左图):自动化课程,目标是最大化探索

    An automatic curriculum that maximizes exploration

    • Minecraft 的目标是解锁技能树:砍木头 —> 做桌子 —> 打僵尸 —> 采集钻石

    • 课程的最高目标是:“discovering as many diverse things as possible”

    • 自动化课程可以看作是:基于上下文的新颖性搜索(novelty search)

  2. 维护实现不同skills的代码库 (右图):不断增长的技能库,用于存储和检索代码

    An ever-growing skill library of executable code for storing and retrieving complex behaviors

    • 技能库是:完成一些动作的program。用了gpt3.5为每个程序生成一段description,这些程序的搜索index这些description的embedding。

    • 下次遇到类似的情况,可以根据description的embedding,调用技能库里的函数;并且如果遇到复杂情况,也可以将复杂情况分解成一系列的简单函数,这样可以避免灾难遗忘的问题。

  3. 生成可执行的代码 (中图):迭代提示机制用来生成可执行的代码

    • 从Minecraft中获取观测量:库存列表、附近的东西、代码解释器的报错,等

    • 把这些反馈信息写进GPT-4的prompt里,进行一轮代码改进

    • 重复这个过程,直到self-verification模块确认任务完成,此时我们将代码提交到技能库中(例如,craftStoneShovel()和combatZombieWithSword()),并查询自动课程以获取下一个task

YOYAGE展示了强大的in-context lifelong learning。不断拓展的技能库中包含了可以完成各种动作命令的程序,这些程序都具有可复用性可解释性可泛化到新任务的能力


效果展示


优点总结

  1. Voyager通过黑盒查询与GPT-4交互,无需对模型参数进行微调

    VOYAGER interacts with GPT-4 via blackbox queries, which bypasses the need for model parameter fine-tuning.

  2. Voyager开发的技能具有时间延展性、可解释性和可组合性,这使得智能体的能力能够快速增长,并缓解了灾难性遗忘。

    The skills developed by VOYAGER are temporally extended, interpretable, and compositional, which compounds the agent’s abilities rapidly and alleviates catastrophic forgetting.

    • 时间的延展性,指的是lifelong learning。Agent可以随着时间持续稳定地获得、更新、累积和迁移


三个模块细节

Automatic Curriculum

GPT-4接受到的prompt包括:

  1. prompt提示词:加入鼓励行为多样化,同时对接下来的指令加以约束的提示词。比如:我的最终目标是尽可能发现更多的多样化事物,但下一个任务不能太难,因为我可能没有必要的资源和技能树。

  2. agent目前的状况:包括库存,装备,附近的东西、动物,时间,血条,饥饿程度和位置

  3. 之前的任务成功了还是失败了,用来反映agent最近的探索进度,和能力边界

  4. GPT-3.5结合Minecraft-wiki的知识、目前的状态和探索进度,给GPT-4提供一些额外的知识

Skill Library

GPT-4接受到的prompt包括:

  1. prompt提示词:例如:生成的函数会在其它复杂的函数中复用,所以你要生成generic and reusable的函数

  2. 控制MineCraft的api 和相关的skill library里的技能

  3. 生成的代码(下一部分说明)

  4. agent目前的状况,包括:库存,装备,附近的东西、动物,时间,血条,饥饿程度和位置

  5. CoT prompting: 在生成代码前,先做reasoning

将完成的代码加入到lib:key 是gpt-3.5生成的对代码的描述,vlaue是代码

从lib中筛选出要用的技能:gpt-3.5根据task提供建议,建议作为q,去lib里搜索最相关的5个技能

Iterative Prompting Mechanism

3种feedback:

1. Environment feedback

左图:用bot.chat()获取environment feedback

2. Execution errors

右图:报错

3. Self-verification for checking task success

GPT-4 做自查:

  • 目前的state和task,gpt-4判断是否完成了目标

  • 如果完成,就加入到lib里

  • 如果没有完成,要给一个如何完成目标的建议

  • 如果agent 生成代码生成了四次,还是不能通过self-verification,就换一个任务


评估

从四个方面评估:

  • 探索度:figure 1,用160 prompting iterations,发现了63种东西

  • 技能树:用更少的回合制造&升级工具

  • 地图区域大小:Voyager探索区域很大;区域太小的话,会阻碍了学习新知识

  • zero-shot 将能力泛化到一个new world:

    • 实验方法是:删除agent的库存,把他放在一个新开的世界,然后给他从未见过的task

    • Voyager 和 AutoGPT都是利用gpt4将任务分解为小的subgoal

    • AutoGPT在50回合内无法完成任务,但有意思的是:把Voyager的lib给AutoGPT用,AutoGPT的效果明显变好 ——> lib可以是一个plag-and-play的工具


消融实验

6个消融实验:

  • automatic curriculum (左图)

    • 对持续学习很重要

    • 将自动课程模块换成随机模块,发现的物品会降低 93%。因为任务很可能会太难

    • 将自动课程模块换成人工设计,后期表现也很不好

  • skill libraryenvironment feedback: 智能体在后期倾向于绝望平原

  • execution errors (右图)

  • self-verification: 没有这个部分,发现的新物品会减少73%,因为这个部分用来指导是否要在尝试之前失败的task

  • GPT-4 for code generation:用gpt-4 生成代码可以比 GPT-3.5 可以获得5.7倍的新物体

多模态:paper写的时候gpt-4不能接受图像,但论文尝试了用human-feedback做3d场景


局限和未来工作

  • 开销高:gpt-4比GPT-3.5贵15倍,但是不得不用gpt-4编写代码,因为好用

  • 有的时候出错:比如没能生成正确的skill,self-verification有的时候不好使

  • 幻觉:有的时候让agent生成不存在的东西;生成代码的时候也会出错,比如把鹅卵石当作燃料;调用一些不存在的minecraft API


VOYAGER: An Open-Ended Embodied Agent with Large Language Models的评论 (共 条)

分享到微博请遵守国家法律