Repositori ini menyediakan implementasi resmi untuk Kloning Pemikiran: Belajar Berpikir sambil Bertindak dengan Meniru Pemikiran Manusia. Kloning Pemikiran (TC) adalah kerangka pembelajaran imitasi baru yang meningkatkan kemampuan agen, Keamanan AI, dan Interpretabilitas dengan melatih agen untuk berpikir seperti manusia . Repositori ini mengimplementasikan TC pada simulasi domain gridworld 2D BabyAI yang dapat diamati sebagian dengan kumpulan data pemikiran manusia sintetik. Periksa juga utas tweet perkenalan.
Buat lingkungan dengan python-venv atau conda. Contoh dengan python-venv ditampilkan di sini:
python3 -m venv thoughtcloning
source thoughtcloning/bin/activate
Repositori ini telah diuji dengan Python 3.9.10 dan PyTorch 1.7.1+cu110. Kode ini mungkin tidak kompatibel dengan versi gym, numpy, atau gym-minigrid yang lebih tinggi.
git clone https://github.com/ShengranHu/Thought-Cloning.git
cd Thought-Cloning
pip3 install --upgrade pip
pip3 install --editable .
Catatan: jalankan pip3 install --editable .
lagi jika direktori proyek diubah sesudahnya.
Ubah direktori keluaran di storage_dir
di /babyai/utils/__init__.py. Tetapkan path-to-thought-cloning
ke jalur proyek Kloning Pikiran Anda.
Kumpulan data pemikiran manusia sintetik di BossLevel , bobot model TC yang dilatih, dan lingkungan yang dikumpulkan untuk menguji kinerja di luar distribusi tersedia di Google Drive.
Untuk mereproduksi kumpulan data pemikiran sintetik, Anda dapat menggunakan skrip scripts/make_agent_demos.py
dengan perintah berikut:
scripts/make_agent_demos.py --episodes <NUM_OF_EPISODES> --env <ENV_NAME> --noise-rate 0.01
Untuk mereproduksi hasil kinerja utama yang disajikan pada Gambar 3 makalah kami, gunakan perintah berikut:
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
Untuk setiap eksperimen, Anda dapat mengubah argumen group_name
menjadi log grup dan keluaran model ke dalam folder tertentu.
Untuk mereproduksi hasil evaluasi zero-shot yang disajikan pada Gambar 4(a) makalah kami, gunakan perintah berikut:
scripts/evaluate_levels.py --env BabyAI-BossLevel-v0 --model <NAME_OF_MODEL> --testing-levels-path <PATH_TO_TESTING_LEVELS_PICKLE>
Implementasi kami didasarkan pada BabyAI 1.1 (domain dan dasar Pembelajaran Imitasi), dan-visdial (encoder Transformator Komponen Tingkat Atas), dan visdial-rl (dekoder RNN Komponen Tingkat Atas).
Jika Anda merasa proyek ini bermanfaat, mohon pertimbangkan untuk mengutip:
@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}
}