run_seq2seq_verbose.bash (3353B)
1 #!/usr/bin/env bash 2 # -*- coding:utf-8 -*- 3 4 EXP_ID=$(date +%F-%H-%M-$RANDOM) 5 export CUDA_VISIBLE_DEVICES="0" 6 export batch_size="16" 7 export model_name=t5-base 8 export data_name=one_ie_ace2005_subtype 9 export lr=5e-5 10 export task_name="event" 11 export seed="421" 12 export lr_scheduler=constant_with_warmup 13 export label_smoothing="0" 14 export epoch=30 15 export decoding_format='tree' 16 export eval_steps=500 17 export warmup_steps=0 18 export constraint_decoding='--constraint_decoding' 19 20 OPTS=$(getopt -o b:d:m:i:t:s:l:f: --long batch:,device:,model:,data:,task:,seed:,lr:,lr_scheduler:,label_smoothing:,epoch:,format:,eval_steps:,warmup_steps:,wo_constraint_decoding -n 'parse-options' -- "$@") 21 22 if [ $? != 0 ]; then 23 echo "Failed parsing options." >&2 24 exit 1 25 fi 26 27 eval set -- "$OPTS" 28 29 while true; do 30 case "$1" in 31 -b | --batch) 32 batch_size="$2" 33 shift 34 shift 35 ;; 36 -d | --device) 37 CUDA_VISIBLE_DEVICES="$2" 38 shift 39 shift 40 ;; 41 -m | --model) 42 model_name="$2" 43 shift 44 shift 45 ;; 46 -i | --data) 47 data_name="$2" 48 shift 49 shift 50 ;; 51 -t | --task) 52 task_name="$2" 53 shift 54 shift 55 ;; 56 -s | --seed) 57 seed="$2" 58 shift 59 shift 60 ;; 61 -l | --lr) 62 lr="$2" 63 shift 64 shift 65 ;; 66 -f | --format) 67 decoding_format="$2" 68 shift 69 shift 70 ;; 71 --lr_scheduler) 72 lr_scheduler="$2" 73 shift 74 shift 75 ;; 76 --label_smoothing) 77 label_smoothing="$2" 78 shift 79 shift 80 ;; 81 --epoch) 82 epoch="$2" 83 shift 84 shift 85 ;; 86 --eval_steps) 87 eval_steps="$2" 88 shift 89 shift 90 ;; 91 --warmup_steps) 92 warmup_steps="$2" 93 shift 94 shift 95 ;; 96 --wo_constraint_decoding) 97 constraint_decoding="" 98 shift 99 ;; 100 --) 101 shift 102 break 103 ;; 104 *) 105 echo "$1" not recognize. 106 exit 107 ;; 108 esac 109 done 110 111 # google/mt5-base -> google_mt5-base 112 model_name_log=$(echo ${model_name} | sed -s "s/\//_/g") 113 114 model_folder=models/CF_${EXP_ID}_${model_name_log}_${decoding_format}_${data_name}_${lr_scheduler}_lr${lr}_ls${label_smoothing}_${batch_size}_wu${warmup_steps} 115 data_folder=data/text2${decoding_format}/${data_name} 116 117 export TOKENIZERS_PARALLELISM=false 118 119 output_dir=${model_folder} 120 121 CUDA_VISIBLE_DEVICES=${CUDA_VISIBLE_DEVICES} python3.8 run_seq2seq.py \ 122 --do_train --do_eval --do_predict ${constraint_decoding} \ 123 --label_smoothing_sum=False \ 124 --use_fast_tokenizer=False \ 125 --evaluation_strategy steps \ 126 --predict_with_generate \ 127 --metric_for_best_model eval_UCDP-aggregate-acc \ 128 --save_total_limit 1 \ 129 --load_best_model_at_end \ 130 --max_source_length=512 \ 131 --max_target_length=128 \ 132 --num_train_epochs=${epoch} \ 133 --task=${task_name} \ 134 --train_file=${data_folder}/train.json \ 135 --validation_file=${data_folder}/val.json \ 136 --test_file=${data_folder}/test.json \ 137 --event_schema=${data_folder}/event.schema \ 138 --per_device_train_batch_size=${batch_size} \ 139 --per_device_eval_batch_size=$((batch_size * 4)) \ 140 --output_dir=${output_dir} \ 141 --logging_dir=${output_dir}_log \ 142 --model_name_or_path=${model_name} \ 143 --learning_rate=${lr} \ 144 --lr_scheduler_type=${lr_scheduler} \ 145 --label_smoothing_factor=${label_smoothing} \ 146 --eval_steps ${eval_steps} \ 147 --decoding_format ${decoding_format} \ 148 --warmup_steps ${warmup_steps} \ 149 --source_prefix="${task_name}: " \ 150 --seed=${seed}