該存儲庫提供了思想克隆的官方實現:透過模仿人類思維來學習思考和行動。思維克隆(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}
}