| #!/bin/bash |
| |
| set -euo pipefail |
| source /etc/network_turbo 2>/dev/null || true |
| source /root/autodl-tmp/covt_repro/scripts/_common_env.sh |
|
|
| STAGE1_MERGED=$BASE/covt_data/output/merged/stage1_merged |
| OUTPUT_DIR=$BASE/covt_data/output/lora_stage234 |
| mkdir -p $OUTPUT_DIR |
|
|
| export MASTER_PORT=22813 |
| export CUDA_VISIBLE_DEVICES=0 |
|
|
| NUM_DEVICES=1 |
| BATCH_PER_DEVICE=4 |
| GLOBAL_BATCH_SIZE=8 |
| GRAD_ACCUM_STEPS=$((GLOBAL_BATCH_SIZE / (BATCH_PER_DEVICE * NUM_DEVICES))) |
|
|
| STAGE_0_STEP=0 |
| STAGE_1_STEP=6000 |
| STAGE_2_STEP=12000 |
| VQA_ONLY_STAGE=16000 |
| MAX_STEPS=10000 |
|
|
| cd $COVT_CODE/train |
|
|
| deepspeed \ |
| --num_gpus 1 \ |
| --master_port $MASTER_PORT \ |
| src/training/train.py \ |
| --use_liger True \ |
| --lora_enable True \ |
| --vision_lora True \ |
| --use_dora False \ |
| --lora_namespan_exclude '["embed_tokens", "lm_head", "dino", "sam", "depth", "SD", "internvit", "pidinet", "siglip", "metaclip"]' \ |
| --lora_rank 16 \ |
| --lora_alpha 32 \ |
| --lora_dropout 0.01 \ |
| --num_lora_modules -1 \ |
| --model_id $STAGE1_MERGED \ |
| --model_path $STAGE1_MERGED \ |
| --anchor_model_id '["sam", "depth", "dino"]' \ |
| --data_path $DATA_DIR/dataset/CoVT-Dataset \ |
| --image_folder $DATA_DIR/dataset/CoVT-Dataset \ |
| --remove_unused_columns False \ |
| --freeze_vision_tower True \ |
| --freeze_llm True \ |
| --tune_merger False \ |
| --bf16 True \ |
| --fp16 False \ |
| --disable_flash_attn2 False \ |
| --output_dir "$OUTPUT_DIR" \ |
| --resume_from_checkpoint True \ |
| --max_steps $MAX_STEPS \ |
| --per_device_train_batch_size $BATCH_PER_DEVICE \ |
| --gradient_accumulation_steps $GRAD_ACCUM_STEPS \ |
| --image_min_pixels $IMAGE_MIN_PIXELS \ |
| --image_max_pixels $IMAGE_MAX_PIXELS \ |
| --image_resized_width $IMAGE_RESIZE_W \ |
| --image_resized_height $IMAGE_RESIZE_H \ |
| --learning_rate 5e-5 \ |
| --projection_layer_lr 1e-5 \ |
| --weight_decay 0.1 \ |
| --warmup_ratio 0.05 \ |
| --lr_scheduler_type "cosine" \ |
| --logging_steps 1 \ |
| --tf32 True \ |
| --gradient_checkpointing True \ |
| --lazy_preprocess True \ |
| --save_strategy "steps" \ |
| --save_steps 1000 \ |
| --dataloader_num_workers 0 \ |
| --deepspeed $SCRIPTS_DIR/zero2_pro6000.json \ |
| --report_to tensorboard \ |
| --run_name "sft_phase2" \ |
| --training_stage "full" \ |
| --stage_0_step $((STAGE_0_STEP * BATCH_PER_DEVICE)) \ |
| --stage_1_step $((STAGE_1_STEP * BATCH_PER_DEVICE)) \ |
| --stage_2_step $((STAGE_2_STEP * BATCH_PER_DEVICE)) \ |
| --vqa_only_stage $VQA_ONLY_STAGE \ |
| 2>&1 | tee $OUTPUT_DIR/sft_phase2.log |
|
|