项目概述
Dynalang 是一个创新的人工智能项目,旨在通过多模态世界模型利用多种语言类型来解决任务。该项目的核心在于使用语言来预测未来情境,从而促进智能体在不同环境中进行有效决策与行为。
主页格子(HomeGrid)
在 HomeGrid 环境中,用户可以通过安装相应的依赖快速启动并运行示例训练脚本。它支持多种任务模式,如 homegrid_task
、homegrid_future
、homegrid_dynamics
和 homegrid_corrections
,让用户能够在不同的情景下训练与测试人工智能模型。
部署方法
-
安装 HomeGrid 环境:
pip install homegrid
-
运行示例脚本:
sh scripts/run_homegrid.sh homegrid_task EXP_NAME GPU_IDS SEED
信使环境(Messenger)
在 Messenger 环境中,用户需要安装特定的系统依赖和 Messenger 环境本身。完成这些安装步骤后,用户可以下载预嵌入的语言数据并在此基础上进行训练。
安装步骤
-
安装信使环境的依赖项:
sudo apt-get install \ libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev \ libsdl1.2-dev libsmpeg-dev subversion libportmidi-dev ffmpeg \ libswscale-dev libavformat-dev libavcodec-dev libfreetype6-dev
-
克隆 Messenger 环境并安装:
git clone https://github.com/ahjwang/messenger-emma pip install -e messenger-emma
-
从谷歌云端硬盘下载预嵌入的语言数据,并放入指定的数据目录。
-
运行训练示例脚本:
sh scripts/run_messenger_s1.sh EXP_NAME GPU_IDS SEED
虚拟导航(VLN)
虚拟导航(VLN)模块要求用户安装一个较早版本的 Habitat 模拟器,同时还需下载 Matterport3D 和 Room-to-Room 数据集来进行模拟场景的准备。
部署方法
-
安装 VLN 所需的依赖。
-
克隆 VLN-CE 和 Habitat-lab:
git clone https://github.com/jlin816/VLN-CE VLN_CE git clone https://github.com/jlin816/habitat-lab habitat_lab
-
下载并解压需要的场景数据到指定文件夹。
-
下载并准备 Room-to-Room 数据集。
-
运行用于训练的示例脚本:
sh scripts/run_vln.sh EXP_NAME GPU_IDS SEED
语言房间(LangRoom)
LangRoom 环境通过特定分支运行,支持同时执行动作和语言输出。用户需要切换到 langroom
分支并安装对应的环境,然后运行示例训练脚本。
部署方法
-
切换到 LangRoom 分支并进行安装。
git checkout langroom pip install langroom
-
运行训练示例脚本:
sh run_langroom.sh EXP_NAME GPU_IDS SEED
文本预训练与微调
此模块提供对语言模型的文本数据进行预训练和微调的能力,通过使用 TinyStories 数据集来优化智能体在各种语言任务上的表现。
部署方法
-
安装额外的依赖:
pip install datasets
-
运行训练脚本以开展预训练及微调:
sh scripts/pretrain_text.sh EXP_NAME GPU_IDS SEED roneneldan/TinyStories /PATH/TO/EVAL/REPLAY/EPISODES
训练配置建议
为了实现最优的训练效果,用户可以参考项目中的训练脚本,使用多个 GPU 来管理模型的训练进程。同时,通过 parallel
脚本可以提高训练的速度,实现更快的迭代。
致谢
本项目参考并改编自 DreamerV3 项目。
引用
如果您在科研工作中使用了本项目,请参考以下引用格式:
@article{lin2023learning,
title={Learning to Model the World with Language},
author={Jessy Lin and Yuqing Du and Olivia Watkins and Danijar Hafner and Pieter Abbeel and Dan Klein and Anca Dragan},
year={2023},
eprint={2308.01399},
archivePrefix={arXiv},
}