يحتوي هذا المستودع على الكود الخاص بالمقالة "تعلم نمذجة العالم باستخدام اللغة". نقدم لكم 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. افتراضيًا، يقوم البرنامج النصي بتهيئة نموذج بمساحة المراقبة والإجراء لمهمة Messenger S2 ويراقب الخسارة في المخزن المؤقت لإعادة التشغيل أثناء التدريب. ستحتاج إلى تمرير مسار إلى الدليل .../episodes/
(الذي يحتوي على قطع .npz
) لوكيل Messenger S2 السابق إذا كنت تريد أن تفعل الشيء نفسه.
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},
}