该存储库提供了思想克隆的官方实现:通过模仿人类思维来学习思考和行动。思维克隆(TC)是一种新颖的模仿学习框架,通过训练智能体像人类一样思考来增强智能体能力、人工智能安全性和可解释性。该存储库使用合成的人类思维数据集在模拟的部分可观察的 2D 网格世界域 BabyAI 上实现了 TC。另请检查介绍推文线程。
使用 python-venv 或 conda 创建环境。 python-venv 的示例如下所示:
python3 -m venv thoughtcloning
source thoughtcloning/bin/activate
该存储库已使用 Python 3.9.10 和 PyTorch 1.7.1+cu110 进行了测试。该代码可能与更高版本的gym、numpy 或gym-minigrid 不兼容。
git clone https://github.com/ShengranHu/Thought-Cloning.git
cd Thought-Cloning
pip3 install --upgrade pip
pip3 install --editable .
注意:运行pip3 install --editable .
如果之后更改项目目录,请再次执行此操作。
更改 /babyai/utils/__init__.py 中storage_dir
中的输出目录。将path-to-thought-cloning
设置为您的 Thought Cloning 项目的路径。
Google Drive 中提供了BossLevel上的合成人类思维数据集、经过训练的 TC 模型权重以及用于测试分布外性能的收集环境。
要重现综合思想数据集,您可以使用带有以下命令的scripts/make_agent_demos.py
脚本:
scripts/make_agent_demos.py --episodes <NUM_OF_EPISODES> --env <ENV_NAME> --noise-rate 0.01
要重现我们论文图 3 中显示的主要性能结果,请使用以下命令:
scripts/train_tc.py --env BabyAI-BossLevel-v0 --demos <DEMO_NAME> --memory-dim=2048 --recurrence=80 --batch-size=180 --instr-arch=attgru --instr-dim=256 --val-interval 2 --log-interval 2 --lr 5e-4 --epochs 160 --epoch-length 51200 --seed 0 --val-seed 2023 --model <NAME_OF_MODEL> --sg-coef 2 --warm-start --stop-tf 10
对于每个实验,您可以更改group_name
参数以将日志和模型输出分组到特定文件夹中。
要重现我们论文图 4(a) 中所示的零样本评估结果,请使用以下命令:
scripts/evaluate_levels.py --env BabyAI-BossLevel-v0 --model <NAME_OF_MODEL> --testing-levels-path <PATH_TO_TESTING_LEVELS_PICKLE>
我们的实现基于 BabyAI 1.1(领域和模仿学习基线)、dan-visdial(上层组件 Transformer 编码器)和 visdial-rl(上层组件 RNN 解码器)。
如果您发现该项目有用,请考虑引用:
@article{hu2023ThoughtCloning,
title={{Thought Cloning}: Learning to think while acting by imitating human thinking},
author={Hu, Shengran and Clune, Jeff},
journal={Advances in Neural Information Processing Systems},
volume={36},
year={2023}
}