set -x # ==================== DDP Configuration ==================== # 【修改这里】将默认的 8 改为 1 GPUS=${GPUS:-1} NNODES=${NNODES:-1} NODE_RANK=${NODE_RANK:-0} MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} # 建议换个端口,防止之前的僵尸进程占用 29500 PORT=${PORT:-29501} TOTAL_GPUS=$((GPUS * NNODES)) export PYTHONPATH="${PYTHONPATH}:$(pwd)" OUTPUT_DIR="./shell/playground/train_states/SDLM_3B_D4_debug" BASE_MODEL="./shell/playground/ckpt/Qwen2.5-3B" META_JSON="./shell/playground/data/meta/meta_for_debug.json" if [ ! -d "$OUTPUT_DIR" ]; then mkdir -p "$OUTPUT_DIR" fi # number of gpus: 1 # batch size per gpu: 2 # gradient accumulation steps: 1 # total batch size: 2 # num of examples: # epoch: 1 torchrun \ --nnodes=$NNODES \ --node_rank=$NODE_RANK \ --master_addr=$MASTER_ADDR \ --nproc_per_node=$GPUS \ --master_port=$PORT \ sdlm/train/sdlm_train.py \ --model_name_or_path ${BASE_MODEL} \ --conv_style "Qwen-2-5" \ --use_fast_tokenizer False \ --output_dir ${OUTPUT_DIR} \ --meta_path ${META_JSON} \ --overwrite_output_dir True \ --dataloader_num_workers 16 \ --bf16 True \ --num_train_epochs 1 \ --per_device_train_batch_size 2 \ --gradient_accumulation_steps 1 \ --save_strategy "steps" \ --save_steps 800 \ --save_total_limit 10 \ --learning_rate 5e-6 \ --weight_decay 0.01 \ --warmup_ratio 0.03 \ --lr_scheduler_type "constant" \ --logging_steps 1 \ --max_seq_length 5632 \ --do_train True \ --grad_checkpoint True \ --deepspeed "zero_stage1_config.json" \ --report_to "tensorboard" \ --block_size 4 \ --causal_attn False \ --attn_implementation sdpa \ --debug_print True \ 2>&1 | tee -a "${OUTPUT_DIR}/training_log_$(date +%Y%m%d_%H%M%S).txt"