Repositori ini berisi kode untuk makalah Belajar Memodelkan Dunia dengan Bahasa. Kami memperkenalkan Dynalang, agen yang memanfaatkan beragam jenis bahasa untuk menyelesaikan tugas dengan menggunakan bahasa untuk memprediksi masa depan melalui model dunia multimodal.
Untuk informasi lebih lanjut, lihat:
Instal dependensi:
pip install -e .
Instal lingkungan HomeGrid dan jalankan contoh skrip pelatihan dengan nama tugas ( homegrid_task
, homegrid_future
, homegrid_dynamics
, atau homegrid_corrections
):
pip install homegrid
sh scripts/run_homegrid.sh homegrid_task EXP_NAME GPU_IDS SEED
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
git clone https://github.com/ahjwang/messenger-emma
pip install -e messenger-emma
Unduh kalimat yang sudah tersemat dari Google Drive dan tempatkan file pkl
ke dynalang/embodied/envs/data
.
Jalankan contoh skrip pelatihan untuk s1, s2, atau s3:
sh scripts/run_messenger_s1.sh EXP_NAME GPU_IDS SEED
conda create -n dynalang-vln python=3.8
pip install " jax[cuda11_cudnn82]==0.4.8 " -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
pip install torch torchvision
conda env update -f env_vln.yml
conda install -c aihabitat -c conda-forge habitat-sim=0.1.7 headless
git clone https://github.com/jlin816/VLN-CE VLN_CE
git clone https://github.com/jlin816/habitat-lab habitat_lab
conda create -n py27 python=2.7
conda activate py27
python scripts/download_mp.py --task habitat -o VLN_CE/data/scene_datasets/mp3d/
cd VLN_CE/data/scene_datasets
unzip mp3d/v1/tasks/mp3d_habitat.zip
conda deactivate
Adegan sekarang harus diisi ke dalam direktori di bawah VLN_CE/data/scene_datasets/mp3d/{scene_dir}/...
.
mkdir -p VLN_CE/data/datasets
cd VLN_CE/data/datasets
gdown https://drive.google.com/uc ? id=1kQ_at68wiK2vAmlWbjJ4EDrLtaM0nfkR
unzip R2R_VLNCE_v1-3_preprocessed.zip
Unduh kalimat yang sudah tersemat dari Google Drive dan tempatkan file pkl
ke dynalang/embodied/envs/data
.
Jalankan contoh skrip pelatihan:
sh scripts/run_vln.sh EXP_NAME GPU_IDS SEED
LangRoom harus dijalankan dari cabang langroom
, yang berisi perubahan untuk mendukung ruang tindakan kamus LangRoom untuk bergerak dan berbicara secara bersamaan. Instal lingkungan LangRoom dan jalankan contoh skrip pelatihan:
git checkout langroom
pip install langroom
sh run_langroom.sh EXP_NAME GPU_IDS SEED
Instal dependensi tambahan dan jalankan contoh skrip pelatihan untuk berlatih di TinyStories. Secara default, skrip menginisialisasi model dengan ruang observasi dan tindakan tugas Messenger S2 dan memantau kehilangan pada buffer replay saat pelatihan. Anda harus meneruskan jalur ke direktori .../episodes/
(berisi potongan .npz
) dari agen Messenger S2 sebelumnya jika Anda ingin melakukan hal yang sama.
pip install datasets
sh scripts/pretrain_text.sh EXP_NAME GPU_IDS SEED roneneldan/TinyStories /PATH/TO/EVAL/REPLAY/EPISODES
Untuk memuat model dunia yang telah dilatih sebelumnya ke dalam agen untuk disempurnakan, jalankan skrip kereta dengan tanda berikut ( load_wm_ckpt
hanya memuat bobot model dunia dan menginisialisasi agen lainnya dari awal):
python dynalang/train.py
--load_wm_ckpt True
--run.from_checkpoint /path/to/pretraining/checkpoint.pkl
...
sh run_messenger_s3.sh EXP_NAME 0,1,2,3 SEED --jax.train_devices 0,1,2,3 --jax.policy_devices 0
.parallel
untuk mempercepat pelatihan. Lihat scripts/run_vln.sh
sebagai contoh.Repo ini diadaptasi dari 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},
}