Welcome to the world of Dynalang! This exciting project explores the fascinating intersection of language and artificial intelligence, enabling agents to predict future events in a multimodal environment. In this guide, we will walk you through the steps to get started with Dynalang, from installation to running training scripts, and provide troubleshooting tips along the way.
Getting Started
To kick off your Dynalang adventure, you’ll need to install the necessary dependencies first. This process is as easy as pie—just follow these simple steps!
pip install -e .
Setting Up Different Environments
Dynalang has various environments you can set up. Here’s how to get started with each:
1. HomeGrid
The HomeGrid environment simulates a household setting. To install:
pip install homegrid
sh scripts/run_homegrid.sh homegrid_task EXP_NAME GPU_IDS SEED
2. Messenger
This environment requires additional dependencies. To proceed:
- Install dependencies:
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
sh scripts/run_messenger_s1.sh EXP_NAME GPU_IDS SEED
3. VLN
For training in the VLN environment, follow these instructions:
- Install dependencies with a conda YAML file:
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
sh scripts/run_vln.sh EXP_NAME GPU_IDS SEED
4. LangRoom
LangRoom requires execution from a specific branch:
git checkout langroom
pip install langroom
sh run_langroom.sh EXP_NAME GPU_IDS SEED
5. Text Pretraining and Fine-tuning
To train on TinyStories, install additional dependencies:
pip install datasets
sh scripts/pretrain_text.sh EXP_NAME GPU_IDS SEED roneneldan/TinyStories PATH_TO_EVAL_REPLAY_EPISODES
Running and Configuring Training
When setting up for training:
- Utilize multiple GPUs for better performance:
sh run_messenger_s3.sh EXP_NAME 0,1,2,3 SEED --jax.train_devices 0,1,2,3 --jax.policy_devices 0
Understanding the Code: An Analogy
Imagine creating a recipe book for a chef who wants to be the best at preparing international cuisines. The code you see here acts like that recipe book, where each section provides specific instructions for various dishes (or environments).
- The books start with the necessary ingredients (dependencies) to begins cooking (installing).
- Different international cuisines correspond to different environments (HomeGrid, Messenger, VLN, and LangRoom) where unique preparation methods (training scripts) are outlined.
- Just as a chef might need to adjust cooking times and methods based on the tools they have (GPU configurations), programmers must do the same with their training settings to perfect their recipe!
Troubleshooting
If you run into issues while setting up or running your scripts, here are a few troubleshooting ideas:
- Make sure that all dependencies are installed correctly by revisiting the installation instructions.
- Ensure you have the right versions of Python and libraries, as inconsistency might lead to errors.
- Check the naming conventions for your environment variables (like EXP_NAME, GPU_IDS, and SEED) to prevent call errors in scripts.
- For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Conclusion
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.
Now, dive into Dynalang, and may your journey to mastering language models be rewarding!