set -x # ==================== DDP Configuration ==================== GPUS=${GPUS:-8} NNODES=${NNODES:-1} NODE_RANK=${NODE_RANK:-0} MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} PORT=${PORT:-29501} TOTAL_GPUS=$((GPUS * NNODES)) export PYTHONPATH="${PYTHONPATH}:$(pwd)" export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True OUTPUT_DIR="./shell/playground/train_states/Debug_SDLM_7B_D8" BASE_MODEL="./shell/playground/ckpt/Qwen/Qwen2.5-7B" # META_JSON="./shell/playground/data/meta/sft_opc436k_scale_math_1m_smoltalk_1m_tulu_1m.json" META_JSON="./shell/playground/data/meta/sft_3500k_filter.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 4 \ --bf16 True \ --num_train_epochs 1 \ --per_device_train_batch_size 2 \ --gradient_accumulation_steps 2 \ --save_strategy "steps" \ --save_steps 400 \ --save_total_limit 100 \ --learning_rate 5e-6 \ --weight_decay 0.01 \ --warmup_ratio 0.03 \ --lr_scheduler_type "constant" \ --logging_steps 1 \ --max_seq_length 6144 \ --do_train True \ --grad_checkpoint True \ --deepspeed "zero_stage1_config.json" \ --report_to "tensorboard" \ --block_size 8 \ --causal_attn False \ --attn_implementation sdpa \ 2>&1 | tee -a "${OUTPUT_DIR}/training_log_$(date +%Y%m%d_%H%M%S).txt"