Steven668866's picture
training scripts (sft_phase2.sh, deepspeed config, env)
915d2ca verified
Raw
History Blame Contribute Delete
2.59 kB
#!/bin/bash
# C3 Phase 2 SFT: 10000 opt-steps from stage1_merged, stage_0=0/1=24000/2=48000/vqa=64000
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