README.md

October 10, 2025 ยท View on GitHub

RL phase

We use verl with some modifications in the RL phase to train MMDuet2.

For your reference, code files in ./verl/ are modified from commit 83ebd00 with changes listed in ./changes/verl_patch.diff, and code files in ./sglang/ are modified from commit dcae1f with changes listed in ./changes/sglang_patch.diff.

Training Process

Create conda environment

conda create --name mmduet2_rl python=3.10
conda activate mmduet2_rl
pip install -r requirements.txt

# install apex
git clone https://github.com/NVIDIA/apex.git
cd apex
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" .
cd ..

# install sglang and verl in this project folder
cd sglang
pip install -e .
cd ..

cd verl
pip install -e .
cd ..

Download training data

Follow the instructions in MMDuet2-data to prepare the dataset, and move the rl sub folder to ./data

Train!

  • 2 seconds per frame, max 90 frames:
cd verl
bash ./recipe/proactive/run_scripts/train_grpo-half_multi_half_single_question-2_sec-20s_seg_as_example-max_90_frames.sh
  • 1 second per frame, max 180 frames:
cd verl
bash ./recipe/proactive/run_scripts/train_grpo-half_multi_half_single_question-1_sec-20s_seg_as_example-max_180_frames.sh