目录
VOYAGER概述
VOYAGER,这是第一个由大型语言模型(LLM)驱动的在Minecraft中进行终身学习的体验式智能体。VOYAGER能够持续探索世界,获取各种技能,并在无需人工干预的情况下进行新的发现。
- 论文链接:https://arxiv.org/pdf/2305.16291.pdf
- 项目主页:https://voyager.minedojo.org/
- GitHub:https://github.com/MineDojo/Voyager
VOYAGER通过黑箱查询与GPT-4进行交互,无需进行模型参数微调。VOYAGER开发的技能具有时间延长性、可解释性和组合性,这使得智能体的能力能够迅速增长,并缓解了灾难性遗忘的问题。
在实验中,VOYAGER展示了强大的在上下文中的终身学习能力,并在玩Minecraft时表现出了出色的熟练程度。与先前的最先进技术相比,它获得了3.3倍更多的独特物品,旅行距离增加了2.3倍,解锁关键技术树里程碑的速度快了15.3倍。VOYAGER能够在新的Minecraft世界中使用学到的技能库来从零开始解决新的任务,而其他技术则在泛化方面遇到困难。
VOYAGER由三个关键组件构成:
- 自动课程(Automatic Curriculum):自动课程是VOYAGER的一个关键组成部分,它的目标是最大化智能体的探索能力。通过GPT4本身对Minecraft的深刻理解,并结合外挂的wiki知识库,可以让GPT-4自己提出探索任务,来指导智能体在Minecraft的世界中进行广泛的探索和学习。
- 不断增长的技能库(Skill Library):技能库是VOYAGER的一个核心组成部分,它的目标是存储和检索VOYAGER在探索过程中学习到的各种技能。这些技能可以是简单的物体操纵,也可以是复杂的建筑设计。技能库的存在使得VOYAGER能够在需要时快速地检索和使用这些技能,从而提高其执行任务的效率。
- 新的迭代提示机制(Iterative Prompting Mechanism):迭代提示机制是VOYAGER的另一个关键组成部分,它的目标是通过结合环境反馈、执行错误和自我验证来改进程序。这种机制使VOYAGER能够在执行任务和学习新技能的过程中,不断地优化和改进其行为和策略。
自动课程(Automatic Curriculum)
在VOYAGER的自动课程中,通过精心设计的提示连接成的思维链,使GPT-4能够结合环境、状态等信息,自发产生新任务。这个过程可以被视为一个循环,其中每个步骤都是为了推动智能体的探索和学习。
- VOYAGER会维护一个代理状态,这个状态存储了智能体的当前信息,包括库存、装备、看到的方块和生物、生物群落、当前时间、健康和饥饿条、位置以及任务完成情况等。
- 自动课程模块会根据这个代理状态,向GPT询问下一个任务。代理如何提问的,可以参考下面的SystemPrompt2。
- 自动课程模块会让GPT分解这个任务,产生若干子任务,参考SystemPrompt7。
- 自动课程模块会针对每个子任务,从知识库中查询出额外上下文,一通给向GPT询问解决方案。参考下面的SystemPrompt3。随后智能体就会参考解决方案,处理子任务,每个子任务都会通过自我验证模块(Self-Verification)确认了任务完成。
- 当所有子任务完成后,使用最新的代理状态,开始再次循环,从而驱动智能体进行持续的探索和学习。
以下是这个过程的流程图:
技能库(Skill Library)
论文中的图清晰展现了技能库中的js函数是如何被创建和检索的,下面结合System Prompt对细节做更充分的说明。
- 根据代码生成代码描述,可以理解为这是一个“自解译”的过程,代理如何提问的,可以参考下面的SystemPrompt5。
- 生成描述后,作者使用了OpenAI的embedding接口,生成向量为key,技能代码为value保存进技能库。
- 对与每个查询(子任务),会结合自动课程模块里产生的“子任务解决方案”和环境信息embedding后,就可以查询出最相关的5个技能。查询到的技能代码,会被添加到生成代码的prompt中,参考SystemPrompt4。
迭代提示机制(Iterative Prompting Mechanism)
在每次代码生成过程中,执行生成的程序以获取环境反馈和代码解释器的执行错误,然后将它们并入GPT-4的提示中用于下一轮代码改进(参考SystemPrompt4)。这个迭代过程重复进行,直到自我验证验证任务的完成(参考SystemPrompt5),此时我们将这个新的技能添加到技能库中,并要求自动课程提供新的目标。如果代理在生成4轮代码后出现卡顿,则我们向课程查询另一个任务。