# Multi-modality of InternVideo2 ## Installation Please follow the installation instructions in [INSTALL](./INSTALL.md). >The codebase support using [wandb](https://wandb.ai/) to monitor training. If you want to use wandb, you will need to set up it following [this very short instruction](https://docs.wandb.ai/quickstart#1.-set-up-wandb), and also set `wandb.enable` in the config to be `True`. `wandb.entity` and `wandb.project` should also be set. ## Datasets You can find the dataset instructions in [DATASET](DATASET.md). ## Model ZOO You can find all the models and the scripts in [MODEL_ZOO](./MODEL_ZOO.md). ## Demo of Using InternVideo2 in Your Work We give a short instructions of accessing and utilizing InternVideo2-stage2 in [demo.ipynb](./demo.ipynb). ## Pre-Training We use [InternVL](https://github.com/OpenGVLab/InternVL/) pretrained model as the teacher by default For training, you can simply run the pretraining scripts in `scripts/pretraining` as follows: ```shell bash scripts/pretraining/stage2/1B/run.sh ``` :warning: **Notes:** 1. Set `data_dir` and `your_data_path` like `your_webvid_path` in [data.py](./configs/data.py) before running the scripts. 2. Set `vision_encoder.pretrained` in `vision_encoder.pretrained` in the corresponding config files. 3. Set `--rdzv_endpoint` to your `MASTER_NODE:MASTER_PORT`. You can also use the following commond to automatically set it: ```shell MASTER_NODE=$(scontrol show hostnames "$SLURM_JOB_NODELIST" | head -n 1) ALL_NODES=$(scontrol show hostnames "$SLURM_JOB_NODELIST") MASTER_PORT=$((10000 + $RANDOM % 100)) torchrun --rdzv_endpoint=${MASTER_NODE}:10068 $@ ``` 4. `save_latest=True` will automatically save the latest checkpoint while training. 5. `auto_resume=True` will automatically loaded the best or latest checkpoint while training. ## Zero-shot Evaluation For zero-shot evaluation, you can simply run the pretraining scripts in `scripts/evaluation` as follows: ```shell bash scripts/evaluation/stage2/zero_shot/1B/eval_msrvtt.sh ``` When evaluating, you can choose to turn off deepspeed and the performance will fluctuate slightly from the reported result (around 0.2): ```shell bash scripts/evaluation/stage2/zero_shot/1B/eval_msrvtt_no_deepspeed.sh ``` :warning: **Notes:** 1. Set `pretrained_path=your_model_path` in the running scripts before running the scripts. 2. Set `zero_shot=True` and `evaluate=True` for zero-shot evaluation ## Finetuning Coming soon.