| set -x |
|
|
| |
| |
| GPUS=${GPUS:-1} |
| 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)" |
|
|
| 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 |
|
|
| |
| |
| |
| |
| |
| |
| 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" |