JARVIS-1:基于记忆增强多模态语言模型的开放世界多任务智能体
摘要
在开放世界中实现具有多模态观察能力的人类般规划和控制是更加功能化的通用智能体的关键里程碑。我们介绍了JARVIS-1,这是一个开放世界智能体,能够感知多模态输入(视觉观察和人类指令),生成复杂的计划,并在流行且具有挑战性的开放世界《我的世界》环境中执行具身控制。具体而言,我们在预训练的多模态语言模型基础上开发了JARVIS-1,该模型将视觉观察和文本指令映射为计划。这些计划最终会被分配给目标条件控制器。我们为JARVIS-1配备了多模态记忆,这有助于利用预训练知识和实际游戏生存经验进行规划。JARVIS-1是《我的世界》中现有最通用的智能体,能够使用类似人类的控制和观察空间完成200多个不同的任务。这些任务从短期任务(如"砍树")到长期任务(如"获得钻石镐")不等。JARVIS-1在短期任务中表现出色,几乎达到完美表现。在经典的长期任务"获得钻石镐"中,JARVIS-1的可靠性比当前最先进的智能体高5倍,并且能够成功完成更长期、更具挑战性的任务。
智能体游戏视频
我们列出了一系列展示JARVIS-1玩《我的世界》的视频。你可以在我们的项目页面上找到这些视频。
安装依赖
本项目仅适用于Linux系统运行。不提供对其他平台的支持。
准备环境
我们建议使用Anaconda来管理环境。如果你还没有安装Anaconda,可以从这里下载。
conda create -n jarvis python=3.10
conda activate jarvis
确保你已安装JDK 8。如果尚未安装,可以使用以下命令安装:
conda install openjdk=8
要检查你的JDK版本,运行命令java -version
。你应该看到类似以下的消息(如果你安装了不同的JDK发行版,细节可能会有所不同):
openjdk version "1.8.0_392"
OpenJDK Runtime Environment (build 1.8.0_392-8u392-ga-1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.392-b08, mixed mode)
安装完所需依赖后,你可以运行prepare_mcp.py
脚本来构建MCP-Reborn。开始之前请确保你有稳定的网络连接。
python prepare_mcp.py
然后你可以将JARVIS-1作为Python包安装。
pip install -e .
下载权重
JARVIS-1依赖于STEVE-I的权重。你可以从脚本下载权重。
然后你需要在jarvis/steveI/path.py
文件中设置权重路径。
使用方法
你首先需要设置环境变量TMPDIR
和OPENAI_API_KEY
。
export TMPDIR=/tmp
export OPENAI_API_KEY="sk-******"
使用动态记忆学习(即将推出)
然后你可以运行以下命令启动JARVIS-1智能体。
python open_jarvis.py --task iron_pickaxe --timeout 10
最后,你可以在弹出的窗口中看到JARVIS-1智能体玩《我的世界》。 你也可以运行以下命令在无头模式下启动JARVIS-1智能体。
xfvb-run -a python open_jarvis.py --task iron_pickaxe --timeout 10
使用固定记忆进行离线评估
python offline_evaluation.py
或
xvfb-run -a python offline_evaluation.py
与原始JARVIS-1的区别
- 移除了
self-check
模块以提高规划效率。 - 当前
assets/memory.json
文件中的多模态记忆不完整。我们移除了多模态状态
和动作
序列,这将在未来发布。 多模态描述器
和多模态检索
尚未发布。所以你目前只能体验JARVIS-1的语言模型部分。
待办事项
- 发布
多模态描述器
以使JARVIS-1能够理解视觉世界。我们计划在huggingface上上传多模态记忆
。 - 发布
learning.py
以实现具有不断增长记忆的自我改进JARVIS-1。
相关项目
JARVIS-1建立在《我的世界》中的几个项目之上。以下是一些你可能感兴趣的相关项目:
- STEVE-1是一个针对《我的世界》的指令调优视频预训练(VPT)模型。我们在JARVIS-1中将其作为控制器的一部分使用。
- Minedojo是一个基于流行的《我的世界》游戏构建的模拟器套件,包含数千个开放式和语言提示任务,用于具身智能体研究。
- MC-TextWorld是一个《我的世界》的文本世界环境。它被设计为文本智能体的基准测试。我们在JARVIS-1的早期版本中使用它来积累语言记忆。
查看我们的论文!
我们的论文可在Arxiv上获取。如果你发现JARVIS-1对你的研究有用,请引用我们的论文:
@article{wang2023jarvis1,
title = {JARVIS-1: Open-World Multi-task Agents with Memory-Augmented Multimodal Language Models},
author = {Zihao Wang and Shaofei Cai and Anji Liu and Yonggang Jin and Jinbing Hou and Bowei Zhang and Haowei Lin and Zhaofeng He and Zilong Zheng and Yaodong Yang and Xiaojian Ma and Yitao Liang},
year = {2023},
journal = {arXiv preprint arXiv: 2311.05997}
}