本仓库包含了Motif的PyTorch代码,用于在NetHack游戏中训练AI代理,其奖励函数源自大语言模型的偏好。
作者:Martin Klissarov* & Pierluca D'Oro*, Shagun Sodhani, Roberta Raileanu, Pierre-Luc Bacon, Pascal Vincent, Amy Zhang 和 Mikael Henaff
<p align="center"> <img src="https://github.com/facebookresearch/motif/assets/15056362/2d92344e-7ea8-4c2d-ac70-456077ac0aab" alt="motif"> </p>Motif从NetHack游戏交互数据集中获取带有说明的观察对,引出大语言模型(LLM)对这些对的偏好。它自动地将LLM的常识提炼为奖励函数,用于通过强化学习训练代理。
为便于比较,我们在pickle文件motif_results.pkl
中提供了训练曲线,该文件包含以任务为键的字典。对于每个任务,我们提供了Motif和基线方法在多个种子下的时间步和平均回报列表。
如下图所示,Motif包含三个阶段:
我们通过提供必要的数据集、命令和原始结果,详细说明了每个阶段,以便重现论文中的实验。
<p align="center"> <img src="https://github.com/facebookresearch/motif/assets/15056362/297e16c5-fcd3-42ef-b686-b383b0ec56b3" alt="motif"> </p>我们通过NetHack学习环境评估Motif在具有挑战性、开放式和程序生成的NetHack游戏中的表现。我们研究了Motif如何主要生成符合人类直觉的行为,这些行为可以通过提示修改轻松调整,以及其扩展性。
<p align="center"> <img src="https://github.com/facebookresearch/motif/assets/15056362/1b93c85d-5c99-446a-b8a0-6e6e2b60328e" alt="motif"> </p> <p align="center"> <img src="https://github.com/facebookresearch/motif/assets/15056362/91e683d4-819f-404b-8983-a567e2dc833a" alt="motif"> </p>要安装整个流程所需的依赖项,只需运行pip install -r requirements.txt
。
在第一阶段,我们使用一个带有说明(即游戏中的消息)的观察对数据集,这些观察对是由经过强化学习训练以最大化游戏分数的代理收集的。
我们在本仓库中提供了该数据集。
我们将不同部分存储在motif_dataset_zipped
目录中,可以使用以下命令解压缩。
cat motif_dataset_zipped/motif_dataset_part_* > motif_dataset.zip; unzip motif_dataset.zip; rm motif_dataset.zip
我们提供的数据集包含了Llama 2模型给出的一组偏好,存储在preference/
目录中,使用了论文中描述的不同提示。
包含标注的.npy
文件名遵循模板llama{size}b_msg_{instruction}_{version}
,其中size
是来自集合{7,13,70}
的LLM大小,instruction
是引入给LLM的提示中的指令,来自集合{defaultgoal, zeroknowledge, combat, gold, stairs}