이 저장소에는 언어로 세계를 모델링하는 방법 학습 논문의 코드가 포함되어 있습니다. 다중 모드 세계 모델을 통해 미래를 예측하는 언어를 사용하여 다양한 유형의 언어를 활용하여 작업을 해결하는 에이전트 Dynalang을 소개합니다.
자세한 내용은 다음을 확인하세요.
종속성을 설치합니다.
pip install -e .
HomeGrid 환경을 설치하고 작업 이름( homegrid_task
, homegrid_future
, homegrid_dynamics
또는 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
Google Drive에서 사전 내장된 문장을 다운로드하고 pkl
파일을 dynalang/embodied/envs/data
에 배치합니다.
s1, s2 또는 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
이제 장면은 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
Google Drive에서 사전 내장된 문장을 다운로드하고 pkl
파일을 dynalang/embodied/envs/data
에 배치합니다.
예시 학습 스크립트를 실행합니다.
sh scripts/run_vln.sh EXP_NAME GPU_IDS SEED
LangRoom은 이동과 대화를 동시에 수행할 수 있는 LangRoom의 사전 작업 공간을 지원하기 위한 변경 사항이 포함된 langroom
분기에서 실행되어야 합니다. LangRoom 환경을 설치하고 예제 교육 스크립트를 실행합니다.
git checkout langroom
pip install langroom
sh run_langroom.sh EXP_NAME GPU_IDS SEED
추가 종속성을 설치하고 예제 학습 스크립트를 실행하여 TinyStories를 학습하세요. 기본적으로 스크립트는 메신저 S2 작업의 관찰 및 작업 공간을 사용하여 모델을 초기화하고 훈련하는 동안 재생 버퍼의 손실을 모니터링합니다. 동일한 작업을 수행하려면 이전 Messenger S2 에이전트의 .../episodes/
디렉터리( .npz
청크 포함)에 대한 경로를 전달해야 합니다.
pip install datasets
sh scripts/pretrain_text.sh EXP_NAME GPU_IDS SEED roneneldan/TinyStories /PATH/TO/EVAL/REPLAY/EPISODES
미세 조정을 위해 사전 훈련된 세계 모델을 에이전트에 로드하려면 다음 플래그를 사용하여 훈련 스크립트를 실행하십시오( load_wm_ckpt
세계 모델의 가중치만 로드하고 에이전트의 나머지 부분을 처음부터 초기화합니다).
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
스크립트를 사용할 수 있습니다. 예제는 scripts/run_vln.sh
참조하세요.이 저장소는 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},
}