From 2e95835b2901da29851c09680d2139463c2139a0 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 16:24:26 +0000 Subject: [PATCH 01/48] change save path --- tests/deltatuner/cicd/run_denas_lora.sh | 14 ++++++++------ tests/deltatuner/cicd/run_denas_ssf.sh | 14 ++++++++------ tests/deltatuner/cicd/run_lora.sh | 14 ++++++++------ tests/deltatuner/cicd/run_ssf.sh | 14 ++++++++------ 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/tests/deltatuner/cicd/run_denas_lora.sh b/tests/deltatuner/cicd/run_denas_lora.sh index 6b165109c..c508ea892 100644 --- a/tests/deltatuner/cicd/run_denas_lora.sh +++ b/tests/deltatuner/cicd/run_denas_lora.sh @@ -7,9 +7,11 @@ pip uninstall wandb -y cd /home/vmagent/app/e2eaiok -mkdir -p log models - DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" + +mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune mpt-7b with denas-lora python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -28,13 +30,13 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_total_limit 1 \ --log_level info \ --save_strategy epoch \ - --output_dir models/mpt_denas-lora_model \ + --output_dir $MODEL_SAVE_PATH"/mpt-7b_denas-lora" \ --peft lora \ --delta lora \ --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ --trust_remote_code True \ --no_cuda \ - 2>&1 | tee log/mpt-denas-lora-run-1epoch.log + 2>&1 | tee $LOG_PATH"/mpt-7b_denas-lora-1epoch.log" # fine-tune llama2-7b with denas-lora python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -53,10 +55,10 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_total_limit 1 \ --log_level info \ --save_strategy epoch \ - --output_dir models/llama2_denas-lora_model \ + --output_dir $MODEL_SAVE_PATH"/llama2-7b_denas-lora" \ --peft lora \ --delta lora \ --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ --trust_remote_code True \ --no_cuda \ - 2>&1 | tee log/llama2-denas-lora-run-1epoch.log + 2>&1 | tee $LOG_PATH"/llama2-7b-denas-lora-1epoch.log" diff --git a/tests/deltatuner/cicd/run_denas_ssf.sh b/tests/deltatuner/cicd/run_denas_ssf.sh index 07c4aef89..f68d1c20e 100644 --- a/tests/deltatuner/cicd/run_denas_ssf.sh +++ b/tests/deltatuner/cicd/run_denas_ssf.sh @@ -6,9 +6,11 @@ pip uninstall wandb -y cd /home/vmagent/app/e2eaiok -mkdir -p log - DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" + +mkdir -p $LOG_PATH $MODEL_SAVE_PATH #run mpt with ssf and denas, bf16 python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -29,11 +31,11 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16" \ + --output_dir $MODEL_SAVE_PATH"/mpt-7b-ssf-allmodules-denas" \ --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ --delta ssf \ --denas True \ - 2>&1 | tee "log/mpt-7b-ssf-allmodules-denas-bf16-run-1epoch.log" + 2>&1 | tee $LOG_PATH"/mpt-7b-ssf-allmodules-denas-1epoch.log" #run llama with ssf and denas, bf16 python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -54,8 +56,8 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16" \ + --output_dir $MODEL_SAVE_PATH"/llama2-7b-ssf-denas" \ --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ --delta ssf \ --denas True \ - 2>&1 | tee log/llama2-7b-ssf-denas-bf16-1epoch.log \ No newline at end of file + 2>&1 | tee $LOG_PATH"/llama2-7b-ssf-denas-1epoch.log" \ No newline at end of file diff --git a/tests/deltatuner/cicd/run_lora.sh b/tests/deltatuner/cicd/run_lora.sh index 8db7a6f86..f7d0a7c9a 100644 --- a/tests/deltatuner/cicd/run_lora.sh +++ b/tests/deltatuner/cicd/run_lora.sh @@ -7,9 +7,11 @@ pip uninstall wandb -y cd /home/vmagent/app/e2eaiok -mkdir -p log models - DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" + +mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune mpt-7b with denas-lora python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -28,13 +30,13 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_total_limit 1 \ --log_level info \ --save_strategy epoch \ - --output_dir models/mpt_lora_model \ + --output_dir $MODEL_SAVE_PATH"/mpt-7b_lora" \ --peft lora \ --denas False \ --debugs \ --trust_remote_code True \ --no_cuda \ - 2>&1 | tee log/mpt-lora-run-1epoch.log + 2>&1 | tee $LOG_PATH"/mpt-7b-lora-1epoch.log" # fine-tune llama2-7b with denas-lora python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -53,10 +55,10 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_total_limit 1 \ --log_level info \ --save_strategy epoch \ - --output_dir models/llama2_lora_model \ + --output_dir $MODEL_SAVE_PATH"/llama2-7b_lora" \ --peft lora \ --denas False \ --debugs \ --trust_remote_code True \ --no_cuda \ - 2>&1 | tee log/llama2-lora-run-1epoch.log + 2>&1 | tee $LOG_PATH"/llama2-7b-lora-1epoch.log" diff --git a/tests/deltatuner/cicd/run_ssf.sh b/tests/deltatuner/cicd/run_ssf.sh index 4bb1800e9..82c69d0fc 100644 --- a/tests/deltatuner/cicd/run_ssf.sh +++ b/tests/deltatuner/cicd/run_ssf.sh @@ -6,9 +6,11 @@ pip uninstall wandb -y cd /home/vmagent/app/e2eaiok -mkdir -p log - DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" + +mkdir -p $LOG_PATH $MODEL_SAVE_PATH #run mpt with ssf, bf16 python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -29,11 +31,11 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-bf16" \ + --output_dir $MODEL_SAVE_PATH"/mpt-7b-ssf-allmodules" \ --delta ssf \ --denas False \ --debugs \ - 2>&1 | tee log/mpt-ssf-run-allmodules-bf16-1epoch.log + 2>&1 | tee $LOG_PATH"/mpt-7b-ssf-allmodules-1epoch.log" #run llama2 with ssf, bf16 python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -54,8 +56,8 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-bf16" \ + --output_dir $MODEL_SAVE_PATH"/llama2-7b-ssf" \ --delta ssf \ --denas False \ --debugs \ - 2>&1 | tee log/llama2-7b-ssf-bf16-1epoch.log \ No newline at end of file + 2>&1 | tee $LOG_PATH"/llama2-7b-ssf-1epoch.log" \ No newline at end of file From 8b3912bef517ace88973079ad3b2811d0721c7d1 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 17:00:56 +0000 Subject: [PATCH 02/48] simplify test code --- tests/deltatuner/cicd/run_denas_lora.sh | 81 ++++++++++--------------- tests/deltatuner/cicd/run_denas_ssf.sh | 42 ++++--------- tests/deltatuner/cicd/run_lora.sh | 79 ++++++++++-------------- tests/deltatuner/cicd/run_ssf.sh | 42 ++++--------- 4 files changed, 87 insertions(+), 157 deletions(-) diff --git a/tests/deltatuner/cicd/run_denas_lora.sh b/tests/deltatuner/cicd/run_denas_lora.sh index c508ea892..35226069d 100644 --- a/tests/deltatuner/cicd/run_denas_lora.sh +++ b/tests/deltatuner/cicd/run_denas_lora.sh @@ -13,52 +13,35 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH -# fine-tune mpt-7b with denas-lora -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path $DATA_PATH"/mpt-7b" \ - --train_file $DATA_PATH"/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --do_train \ - --do_eval \ - --validation_split_percentage 30 \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --output_dir $MODEL_SAVE_PATH"/mpt-7b_denas-lora" \ - --peft lora \ - --delta lora \ - --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ - --trust_remote_code True \ - --no_cuda \ - 2>&1 | tee $LOG_PATH"/mpt-7b_denas-lora-1epoch.log" - -# fine-tune llama2-7b with denas-lora -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path $DATA_PATH"/Llama-2-7b-hf" \ - --train_file $DATA_PATH"/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --do_train \ - --do_eval \ - --validation_split_percentage 30 \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --output_dir $MODEL_SAVE_PATH"/llama2-7b_denas-lora" \ - --peft lora \ - --delta lora \ - --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ - --trust_remote_code True \ - --no_cuda \ - 2>&1 | tee $LOG_PATH"/llama2-7b-denas-lora-1epoch.log" +# fine-tune with denas-lora +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_denas-lora" + log_save_path=$LOG_PATH"/"${model_name}"_denas-lora-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ + --train_file $DATA_PATH"/alpaca_data.json" \ + --dataset_concatenation \ + --per_device_train_batch_size 8 \ + --per_device_eval_batch_size 8 \ + --gradient_accumulation_steps 1 \ + --do_train \ + --do_eval \ + --validation_split_percentage 30 \ + --learning_rate 1e-4 \ + --num_train_epochs 1 \ + --logging_steps 100 \ + --save_total_limit 1 \ + --log_level info \ + --save_strategy epoch \ + --output_dir $model_save_path \ + --peft lora \ + --delta lora \ + --denas True \ + --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ + --trust_remote_code True \ + --no_cuda \ + 2>&1 | tee $log_save_path +done diff --git a/tests/deltatuner/cicd/run_denas_ssf.sh b/tests/deltatuner/cicd/run_denas_ssf.sh index f68d1c20e..e62794cc2 100644 --- a/tests/deltatuner/cicd/run_denas_ssf.sh +++ b/tests/deltatuner/cicd/run_denas_ssf.sh @@ -12,9 +12,15 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH -#run mpt with ssf and denas, bf16 -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ +# fine-tune with denas-ssf +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_denas-ssf" + log_save_path=$LOG_PATH"/"${model_name}"_denas-ssf-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ --per_device_train_batch_size 8 \ @@ -31,33 +37,9 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir $MODEL_SAVE_PATH"/mpt-7b-ssf-allmodules-denas" \ + --output_dir $model_save_path \ --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ --delta ssf \ --denas True \ - 2>&1 | tee $LOG_PATH"/mpt-7b-ssf-allmodules-denas-1epoch.log" - -#run llama with ssf and denas, bf16 -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir $MODEL_SAVE_PATH"/llama2-7b-ssf-denas" \ - --debugs --max_epochs 1 --population_num 1 --crossover_num 1 --mutation_num 1 --select_num 1 \ - --delta ssf \ - --denas True \ - 2>&1 | tee $LOG_PATH"/llama2-7b-ssf-denas-1epoch.log" \ No newline at end of file + 2>&1 | tee $log_save_path +done diff --git a/tests/deltatuner/cicd/run_lora.sh b/tests/deltatuner/cicd/run_lora.sh index f7d0a7c9a..923463ecb 100644 --- a/tests/deltatuner/cicd/run_lora.sh +++ b/tests/deltatuner/cicd/run_lora.sh @@ -13,52 +13,35 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH -# fine-tune mpt-7b with denas-lora -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path $DATA_PATH"/mpt-7b" \ - --train_file $DATA_PATH"/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --do_train \ - --do_eval \ - --validation_split_percentage 30 \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --output_dir $MODEL_SAVE_PATH"/mpt-7b_lora" \ - --peft lora \ - --denas False \ - --debugs \ - --trust_remote_code True \ - --no_cuda \ - 2>&1 | tee $LOG_PATH"/mpt-7b-lora-1epoch.log" -# fine-tune llama2-7b with denas-lora -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path $DATA_PATH"/Llama-2-7b-hf" \ - --train_file $DATA_PATH"/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --do_train \ - --do_eval \ - --validation_split_percentage 30 \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --output_dir $MODEL_SAVE_PATH"/llama2-7b_lora" \ - --peft lora \ - --denas False \ - --debugs \ - --trust_remote_code True \ - --no_cuda \ - 2>&1 | tee $LOG_PATH"/llama2-7b-lora-1epoch.log" +# fine-tune with lora +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"-lora" + log_save_path=$LOG_PATH"/"${model_name}"-lora-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ + --train_file $DATA_PATH"/alpaca_data.json" \ + --dataset_concatenation \ + --per_device_train_batch_size 8 \ + --per_device_eval_batch_size 8 \ + --gradient_accumulation_steps 1 \ + --do_train \ + --do_eval \ + --validation_split_percentage 30 \ + --learning_rate 1e-4 \ + --num_train_epochs 1 \ + --logging_steps 100 \ + --save_total_limit 1 \ + --log_level info \ + --save_strategy epoch \ + --output_dir $model_save_path \ + --peft lora \ + --denas False \ + --debugs \ + --trust_remote_code True \ + --no_cuda \ + 2>&1 | tee $log_save_path +done diff --git a/tests/deltatuner/cicd/run_ssf.sh b/tests/deltatuner/cicd/run_ssf.sh index 82c69d0fc..24cd49ee5 100644 --- a/tests/deltatuner/cicd/run_ssf.sh +++ b/tests/deltatuner/cicd/run_ssf.sh @@ -12,9 +12,15 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH -#run mpt with ssf, bf16 -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ +# fine-tune with ssf +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_denas-lora" + log_save_path=$LOG_PATH"/"${model_name}"_denas-lora-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ --per_device_train_batch_size 8 \ @@ -31,33 +37,9 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir $MODEL_SAVE_PATH"/mpt-7b-ssf-allmodules" \ + --output_dir $model_save_path \ --delta ssf \ --denas False \ --debugs \ - 2>&1 | tee $LOG_PATH"/mpt-7b-ssf-allmodules-1epoch.log" - -#run llama2 with ssf, bf16 -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir $MODEL_SAVE_PATH"/llama2-7b-ssf" \ - --delta ssf \ - --denas False \ - --debugs \ - 2>&1 | tee $LOG_PATH"/llama2-7b-ssf-1epoch.log" \ No newline at end of file + 2>&1 | tee $log_save_path +done From a3675996e97b43cf20101b96e587d7d2880fbe73 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 17:04:13 +0000 Subject: [PATCH 03/48] rename path --- tests/deltatuner/cicd/run_ssf.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf.sh b/tests/deltatuner/cicd/run_ssf.sh index 24cd49ee5..f1c3cbc0d 100644 --- a/tests/deltatuner/cicd/run_ssf.sh +++ b/tests/deltatuner/cicd/run_ssf.sh @@ -17,8 +17,8 @@ model_name_list="mpt-7b Llama-2-7b-hf" for model_name in $model_name_list do model_name_or_path=${DATA_PATH}"/"${model_name} - model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_denas-lora" - log_save_path=$LOG_PATH"/"${model_name}"_denas-lora-1epoch.log" + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_ssf" + log_save_path=$LOG_PATH"/"${model_name}"_ssf-1epoch.log" python example/instruction_tuning_pipeline/finetune_clm.py \ --model_name_or_path $model_name_or_path \ --train_file "$DATA_PATH/alpaca_data.json" \ From c94b91c665546d745a3386c39326333b42563c36 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 21:14:35 +0000 Subject: [PATCH 04/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 45 ++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/deltatuner/cicd/run_ssf_model.sh diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh new file mode 100644 index 000000000..f1c3cbc0d --- /dev/null +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -0,0 +1,45 @@ +set -x + +cd /home/vmagent/app/e2eaiok/e2eAIOK/deltatuner +pip install -e . +pip uninstall wandb -y + +cd /home/vmagent/app/e2eaiok + +DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" + +mkdir -p $LOG_PATH $MODEL_SAVE_PATH + +# fine-tune with ssf +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_ssf" + log_save_path=$LOG_PATH"/"${model_name}"_ssf-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ + --train_file "$DATA_PATH/alpaca_data.json" \ + --dataset_concatenation \ + --per_device_train_batch_size 8 \ + --per_device_eval_batch_size 8 \ + --gradient_accumulation_steps 1 \ + --validation_split_percentage 30 \ + --do_train \ + --do_eval \ + --learning_rate 1e-4 \ + --num_train_epochs 1 \ + --logging_steps 100 \ + --save_total_limit 1 \ + --log_level info \ + --save_strategy epoch \ + --trust_remote_code True \ + --no_cuda \ + --output_dir $model_save_path \ + --delta ssf \ + --denas False \ + --debugs \ + 2>&1 | tee $log_save_path +done From 5599d3e5d5c3d03876ff6de6cd35ee791e17ac26 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 21:23:13 +0000 Subject: [PATCH 05/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index f1c3cbc0d..f67d1531b 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -2,7 +2,6 @@ set -x cd /home/vmagent/app/e2eaiok/e2eAIOK/deltatuner pip install -e . -pip uninstall wandb -y cd /home/vmagent/app/e2eaiok @@ -13,10 +12,10 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf -model_name_list="mpt-7b Llama-2-7b-hf" +model_name_list="mosaicml/mpt-7b" for model_name in $model_name_list do - model_name_or_path=${DATA_PATH}"/"${model_name} + model_name_or_path=${model_name} model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_ssf" log_save_path=$LOG_PATH"/"${model_name}"_ssf-1epoch.log" python example/instruction_tuning_pipeline/finetune_clm.py \ @@ -36,7 +35,6 @@ do --log_level info \ --save_strategy epoch \ --trust_remote_code True \ - --no_cuda \ --output_dir $model_save_path \ --delta ssf \ --denas False \ From 00802a0c6c3f9cdd8cbd3709fe324fe592706524 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 21:32:29 +0000 Subject: [PATCH 06/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index f67d1531b..18ed9e010 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -16,8 +16,9 @@ model_name_list="mosaicml/mpt-7b" for model_name in $model_name_list do model_name_or_path=${model_name} - model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_ssf" - log_save_path=$LOG_PATH"/"${model_name}"_ssf-1epoch.log" + short_model_name=`echo $model_name | cut -d/ -f2` + model_save_path=${MODEL_SAVE_PATH}"/"${short_model_name}"_ssf" + log_save_path=$LOG_PATH"/"${short_model_name}"_ssf-1epoch.log" python example/instruction_tuning_pipeline/finetune_clm.py \ --model_name_or_path $model_name_or_path \ --train_file "$DATA_PATH/alpaca_data.json" \ From 65e9d2ef9b80d19c78cfc0ac271f62a58dfdc10b Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 21:42:45 +0000 Subject: [PATCH 07/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 18ed9e010..a5204a6b5 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -12,6 +12,7 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf +# gpt2 EleutherAI/gpt-j-6b model_name_list="mosaicml/mpt-7b" for model_name in $model_name_list do @@ -40,5 +41,7 @@ do --delta ssf \ --denas False \ --debugs \ + --fp16 \ 2>&1 | tee $log_save_path + # rm -rf ~/.cache done From 9864a9e398e6d883e7621710fea6605867a2536c Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 21:44:00 +0000 Subject: [PATCH 08/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index a5204a6b5..4a3593f5d 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -13,7 +13,7 @@ mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf # gpt2 EleutherAI/gpt-j-6b -model_name_list="mosaicml/mpt-7b" +model_name_list="gpt2" for model_name in $model_name_list do model_name_or_path=${model_name} From de75cc62685267802f7cc521622c303224d70ba9 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 21:50:22 +0000 Subject: [PATCH 09/48] bug fix --- e2eAIOK/deltatuner/deltatuner/utils/config.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/e2eAIOK/deltatuner/deltatuner/utils/config.py b/e2eAIOK/deltatuner/deltatuner/utils/config.py index 1b3fea166..64d34c058 100644 --- a/e2eAIOK/deltatuner/deltatuner/utils/config.py +++ b/e2eAIOK/deltatuner/deltatuner/utils/config.py @@ -1,11 +1,13 @@ import enum from dataclasses import field from typing import List, Optional, Tuple, Union +from peft.utils import TRANSFORMERS_MODELS_TO_LORA_TARGET_MODULES_MAPPING class DeltaTunerType(str, enum.Enum): SSF = "SSF" -TRANSFORMERS_MODELS_TO_SSF_TARGET_MODULES_MAPPING = { +TRANSFORMERS_MODELS_TO_SSF_TARGET_MODULES_MAPPING = TRANSFORMERS_MODELS_TO_LORA_TARGET_MODULES_MAPPING +TRANSFORMERS_MODELS_TO_SSF_TARGET_MODULES_MAPPING.update({ "llama": ["q_proj", "v_proj"], "mpt": ["Wqkv","out_proj","up_proj","down_proj"] -} \ No newline at end of file +}) \ No newline at end of file From 7e5a391ff7c19b7bcbbfccb80389074d4ea1d45a Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 21:59:55 +0000 Subject: [PATCH 10/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 4a3593f5d..6567e1c3c 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -12,8 +12,8 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf -# gpt2 EleutherAI/gpt-j-6b -model_name_list="gpt2" +# gpt2 EleutherAI/gpt-j-6b EleutherAI/gpt-neo-125m +model_name_list="EleutherAI/gpt-neo-125m" for model_name in $model_name_list do model_name_or_path=${model_name} From 688816ce035668b77488ef09b27ee9e85b8f5394 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 22:04:29 +0000 Subject: [PATCH 11/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 6567e1c3c..6108d83b5 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -12,8 +12,8 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf -# gpt2 EleutherAI/gpt-j-6b EleutherAI/gpt-neo-125m -model_name_list="EleutherAI/gpt-neo-125m" +# gpt2 EleutherAI/gpt-j-6b EleutherAI/gpt-neo-125m bigscience/bloom facebook/opt-125m +model_name_list="facebook/opt-125m" for model_name in $model_name_list do model_name_or_path=${model_name} From cf0646abd42abb908340ec6e64ee3b5cca926c6f Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 22:10:11 +0000 Subject: [PATCH 12/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 6108d83b5..3350b74d2 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -12,7 +12,8 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf -# gpt2 EleutherAI/gpt-j-6b EleutherAI/gpt-neo-125m bigscience/bloom facebook/opt-125m +# gpt2 EleutherAI/gpt-j-6b bigscience/bloom facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b +# EleutherAI/gpt-j-6b bigscience/bloom tiiuae/falcon-7b model_name_list="facebook/opt-125m" for model_name in $model_name_list do @@ -43,5 +44,5 @@ do --debugs \ --fp16 \ 2>&1 | tee $log_save_path - # rm -rf ~/.cache + # rm -rf ~/.cache/huggingface done From 2ab3e3ccc11916e0a0587d72ac0e763d2458a86d Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 22:10:17 +0000 Subject: [PATCH 13/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 3350b74d2..253427813 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -44,5 +44,5 @@ do --debugs \ --fp16 \ 2>&1 | tee $log_save_path - # rm -rf ~/.cache/huggingface + # rm -rf ~/.cache/huggingface/hub done From 74a885a146397fcbf7f958a6924286324f1b8bcb Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 22:14:48 +0000 Subject: [PATCH 14/48] add --- example/instruction_tuning_pipeline/finetune_clm.py | 1 + tests/deltatuner/cicd/run_ssf_model.sh | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 6da81f8fc..8c92010f5 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -532,6 +532,7 @@ def main(): trust_remote_code=True if model_args.trust_remote_code else None, torch_dtype=model_dtype, low_cpu_mem_usage=True, + load_in_8bit=True, ) else: raise ValueError( diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 253427813..7978806d9 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -14,7 +14,8 @@ mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf # gpt2 EleutherAI/gpt-j-6b bigscience/bloom facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b # EleutherAI/gpt-j-6b bigscience/bloom tiiuae/falcon-7b -model_name_list="facebook/opt-125m" +# mosaicml/mpt-7b +model_name_list="mosaicml/mpt-7b" for model_name in $model_name_list do model_name_or_path=${model_name} From 889a251e997c954428b866f61dd230b8273486dc Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Sun, 8 Oct 2023 22:16:55 +0000 Subject: [PATCH 15/48] restore --- example/instruction_tuning_pipeline/finetune_clm.py | 1 - 1 file changed, 1 deletion(-) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 8c92010f5..6da81f8fc 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -532,7 +532,6 @@ def main(): trust_remote_code=True if model_args.trust_remote_code else None, torch_dtype=model_dtype, low_cpu_mem_usage=True, - load_in_8bit=True, ) else: raise ValueError( From 27894af92ca10e83d4320a4f739b81887a0bc450 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 08:21:18 +0000 Subject: [PATCH 16/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 7978806d9..23890d37b 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -13,9 +13,9 @@ mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf # gpt2 EleutherAI/gpt-j-6b bigscience/bloom facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b -# EleutherAI/gpt-j-6b bigscience/bloom tiiuae/falcon-7b +# EleutherAI/gpt-j-6b bigscience/bloom-560m tiiuae/falcon-7b # mosaicml/mpt-7b -model_name_list="mosaicml/mpt-7b" +model_name_list="bigscience/bloom-560m" for model_name in $model_name_list do model_name_or_path=${model_name} From a4973af3325f07ddddaea5624bd309f9a3092d1c Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 08:54:57 +0000 Subject: [PATCH 17/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 23890d37b..1a3b09400 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -12,10 +12,10 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf -# gpt2 EleutherAI/gpt-j-6b bigscience/bloom facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b -# EleutherAI/gpt-j-6b bigscience/bloom-560m tiiuae/falcon-7b +# gpt2 EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b +# EleutherAI/gpt-j-6b tiiuae/falcon-7b openerotica/falcon-7b-GPTQ # mosaicml/mpt-7b -model_name_list="bigscience/bloom-560m" +model_name_list="openerotica/falcon-7b-GPTQ" for model_name in $model_name_list do model_name_or_path=${model_name} From 5026c47b19aafc06ceac035bc3a977608d1b7e64 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 08:59:30 +0000 Subject: [PATCH 18/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 1a3b09400..9d3a63231 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -13,9 +13,9 @@ mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf # gpt2 EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b -# EleutherAI/gpt-j-6b tiiuae/falcon-7b openerotica/falcon-7b-GPTQ +# EleutherAI/gpt-j-6b tiiuae/falcon-7b TheBloke/falcon-7b-instruct-GPTQ # mosaicml/mpt-7b -model_name_list="openerotica/falcon-7b-GPTQ" +model_name_list="TheBloke/falcon-7b-instruct-GPTQ" for model_name in $model_name_list do model_name_or_path=${model_name} From 4215353a55b2d012a36f0b7bf798794193c48ca3 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 10:26:41 +0000 Subject: [PATCH 19/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 9d3a63231..f11516de8 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -15,7 +15,7 @@ mkdir -p $LOG_PATH $MODEL_SAVE_PATH # gpt2 EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b # EleutherAI/gpt-j-6b tiiuae/falcon-7b TheBloke/falcon-7b-instruct-GPTQ # mosaicml/mpt-7b -model_name_list="TheBloke/falcon-7b-instruct-GPTQ" +model_name_list="" for model_name in $model_name_list do model_name_or_path=${model_name} From e06ef20c8ee82959de9124f37158a58f51d2e4a0 Mon Sep 17 00:00:00 2001 From: Yu-Zhou Date: Mon, 9 Oct 2023 20:30:53 +0800 Subject: [PATCH 20/48] Dtuner models (#7) * bug fix --- e2eAIOK/deltatuner/deltatuner/utils/config.py | 6 ++- tests/deltatuner/cicd/run_ssf_model.sh | 49 +++++++++++++++++++ 2 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 tests/deltatuner/cicd/run_ssf_model.sh diff --git a/e2eAIOK/deltatuner/deltatuner/utils/config.py b/e2eAIOK/deltatuner/deltatuner/utils/config.py index 1b3fea166..64d34c058 100644 --- a/e2eAIOK/deltatuner/deltatuner/utils/config.py +++ b/e2eAIOK/deltatuner/deltatuner/utils/config.py @@ -1,11 +1,13 @@ import enum from dataclasses import field from typing import List, Optional, Tuple, Union +from peft.utils import TRANSFORMERS_MODELS_TO_LORA_TARGET_MODULES_MAPPING class DeltaTunerType(str, enum.Enum): SSF = "SSF" -TRANSFORMERS_MODELS_TO_SSF_TARGET_MODULES_MAPPING = { +TRANSFORMERS_MODELS_TO_SSF_TARGET_MODULES_MAPPING = TRANSFORMERS_MODELS_TO_LORA_TARGET_MODULES_MAPPING +TRANSFORMERS_MODELS_TO_SSF_TARGET_MODULES_MAPPING.update({ "llama": ["q_proj", "v_proj"], "mpt": ["Wqkv","out_proj","up_proj","down_proj"] -} \ No newline at end of file +}) \ No newline at end of file diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh new file mode 100644 index 000000000..e18a7746a --- /dev/null +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -0,0 +1,49 @@ +set -x + +cd /home/vmagent/app/e2eaiok/e2eAIOK/deltatuner +pip install -e . + +cd /home/vmagent/app/e2eaiok + +DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" + +mkdir -p $LOG_PATH $MODEL_SAVE_PATH + +# fine-tune with ssf +# gpt2 EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b +# EleutherAI/gpt-j-6b tiiuae/falcon-7b +# mosaicml/mpt-7b +model_name_list="tiiuae/falcon-7b" +for model_name in $model_name_list +do + model_name_or_path=${model_name} + short_model_name=`echo $model_name | cut -d/ -f2` + model_save_path=${MODEL_SAVE_PATH}"/"${short_model_name}"_ssf" + log_save_path=$LOG_PATH"/"${short_model_name}"_ssf-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ + --train_file "$DATA_PATH/alpaca_data.json" \ + --dataset_concatenation \ + --per_device_train_batch_size 8 \ + --per_device_eval_batch_size 8 \ + --gradient_accumulation_steps 1 \ + --validation_split_percentage 30 \ + --do_train \ + --do_eval \ + --learning_rate 1e-4 \ + --num_train_epochs 1 \ + --logging_steps 100 \ + --save_total_limit 1 \ + --log_level info \ + --save_strategy epoch \ + --trust_remote_code True \ + --output_dir $model_save_path \ + --delta ssf \ + --denas False \ + --debugs \ + --no_cuda \ + 2>&1 | tee $log_save_path + # rm -rf ~/.cache/huggingface/hub +done From 4f7594e33363a0633166a64fa377d71629033161 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 18:19:13 +0000 Subject: [PATCH 21/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index f11516de8..44749a105 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -13,7 +13,7 @@ mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf # gpt2 EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b -# EleutherAI/gpt-j-6b tiiuae/falcon-7b TheBloke/falcon-7b-instruct-GPTQ +# EleutherAI/gpt-j-6b tiiuae/falcon-7b # mosaicml/mpt-7b model_name_list="" for model_name in $model_name_list @@ -43,7 +43,7 @@ do --delta ssf \ --denas False \ --debugs \ - --fp16 \ + --no_cuda \ 2>&1 | tee $log_save_path # rm -rf ~/.cache/huggingface/hub done From 000b629ce92a09a83008bcc6c1b12379b19a100e Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 18:19:22 +0000 Subject: [PATCH 22/48] add --- tests/deltatuner/cicd/run_ssf_model.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index 44749a105..e18a7746a 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -15,7 +15,7 @@ mkdir -p $LOG_PATH $MODEL_SAVE_PATH # gpt2 EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b # EleutherAI/gpt-j-6b tiiuae/falcon-7b # mosaicml/mpt-7b -model_name_list="" +model_name_list="tiiuae/falcon-7b" for model_name in $model_name_list do model_name_or_path=${model_name} From 6ab47c822295747b9bbfaca45d794ac933abb508 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 19:11:57 +0000 Subject: [PATCH 23/48] update readme --- e2eAIOK/deltatuner/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/e2eAIOK/deltatuner/README.md b/e2eAIOK/deltatuner/README.md index b6d6d5b40..3c503e1b8 100644 --- a/e2eAIOK/deltatuner/README.md +++ b/e2eAIOK/deltatuner/README.md @@ -84,10 +84,10 @@ Please refer to [example page](https://github.com/intel/e2eAIOK/tree/main/exampl | Model | LoRA | SSF | |--------------| ---- | ---- | | GPT-2 | ✅ | | -| GPT-J | ✅ | | -| Bloom | ✅ | | -| OPT | ✅ | | -| GPT-Neo | ✅ | | -| Falcon | ✅ | | +| GPT-J | ✅ | ✅ | +| Bloom | ✅ | ✅ | +| OPT | ✅ | ✅ | +| GPT-Neo | ✅ | ✅ | +| Falcon | ✅ | ✅ | | LLaMA | ✅ | ✅ | | MPT | ✅ | ✅ | From f406be10ba49e7e48b2358b1e296c7566f3599a4 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 19:18:15 +0000 Subject: [PATCH 24/48] delete --- .../deltatuner/finetune/ssf/llama2-7b-lora.sh | 24 ------------------- tests/deltatuner/finetune/ssf/mpt-7b-full.sh | 23 ------------------ tests/deltatuner/finetune/ssf/mpt-7b-lora.sh | 24 ------------------- 3 files changed, 71 deletions(-) delete mode 100755 tests/deltatuner/finetune/ssf/llama2-7b-lora.sh delete mode 100755 tests/deltatuner/finetune/ssf/mpt-7b-full.sh delete mode 100755 tests/deltatuner/finetune/ssf/mpt-7b-lora.sh diff --git a/tests/deltatuner/finetune/ssf/llama2-7b-lora.sh b/tests/deltatuner/finetune/ssf/llama2-7b-lora.sh deleted file mode 100755 index 662074530..000000000 --- a/tests/deltatuner/finetune/ssf/llama2-7b-lora.sh +++ /dev/null @@ -1,24 +0,0 @@ -DATA_PATH="/home/data" - -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-lora" \ - --peft lora \ - --denas False \ - | tee llama2-7b-lora-1epoch.log diff --git a/tests/deltatuner/finetune/ssf/mpt-7b-full.sh b/tests/deltatuner/finetune/ssf/mpt-7b-full.sh deleted file mode 100755 index 27211fc0d..000000000 --- a/tests/deltatuner/finetune/ssf/mpt-7b-full.sh +++ /dev/null @@ -1,23 +0,0 @@ -DATA_PATH="/home/data" - -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-full" \ - | tee mpt-lora-run-1epoch.log diff --git a/tests/deltatuner/finetune/ssf/mpt-7b-lora.sh b/tests/deltatuner/finetune/ssf/mpt-7b-lora.sh deleted file mode 100755 index 8b9e695f3..000000000 --- a/tests/deltatuner/finetune/ssf/mpt-7b-lora.sh +++ /dev/null @@ -1,24 +0,0 @@ -DATA_PATH="/home/data" - -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-lora" \ - --peft lora \ - | tee mpt-lora-run-1epoch.log From ed478985f28164b37f7666b0d14c7ef4cf7925c4 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 19:44:39 +0000 Subject: [PATCH 25/48] update test scripts --- tests/deltatuner/finetune/run_denas_lora.sh | 92 ++++++++++---------- tests/deltatuner/finetune/run_denas_ssf.sh | 47 +++++++++++ tests/deltatuner/finetune/run_lora.sh | 93 ++++++++++----------- tests/deltatuner/finetune/run_ssf.sh | 47 +++++++++++ 4 files changed, 179 insertions(+), 100 deletions(-) create mode 100644 tests/deltatuner/finetune/run_denas_ssf.sh create mode 100644 tests/deltatuner/finetune/run_ssf.sh diff --git a/tests/deltatuner/finetune/run_denas_lora.sh b/tests/deltatuner/finetune/run_denas_lora.sh index 801f4e6da..0904bb613 100644 --- a/tests/deltatuner/finetune/run_denas_lora.sh +++ b/tests/deltatuner/finetune/run_denas_lora.sh @@ -1,56 +1,48 @@ #!/bin/bash set -x -mkdir -p log models -# fine-tune mpt-7b with denas-lora -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "/home/vmagent/app/dataset/mpt-7b" \ - --train_file "/home/vmagent/app/dataset/stanford_alpaca/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --do_train \ - --do_eval \ - --validation_split_percentage 30 \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --output_dir models/mpt_denas-lora_model \ - --peft lora \ - --delta lora \ - --trust_remote_code True \ - --no_cuda \ - --bf16 True 2>&1 | tee log/mpt-denas-lora-run-1epoch.log +DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" -# fine-tune llama2-7b with denas-lora -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "/home/vmagent/app/dataset/Llama-2-7b-hf" \ - --train_file "/home/vmagent/app/dataset/stanford_alpaca/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --do_train \ - --do_eval \ - --validation_split_percentage 30 \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --output_dir models/llama2_denas-lora_model \ - --peft lora \ - --delta lora \ - --trust_remote_code True \ - --no_cuda \ - --bf16 True 2>&1 | tee log/llama2-denas-lora-run-1epoch.log +mkdir -p $LOG_PATH $MODEL_SAVE_PATH +# fine-tune with denas-lora +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_denas-lora" + log_save_path=$LOG_PATH"/"${model_name}"_denas-lora-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ + --train_file $DATA_PATH"/alpaca_data.json" \ + --dataset_concatenation \ + --per_device_train_batch_size 8 \ + --per_device_eval_batch_size 8 \ + --gradient_accumulation_steps 1 \ + --do_train \ + --do_eval \ + --validation_split_percentage 30 \ + --learning_rate 1e-4 \ + --num_train_epochs 1 \ + --logging_steps 100 \ + --save_total_limit 1 \ + --log_level info \ + --save_strategy epoch \ + --output_dir $model_save_path \ + --peft lora \ + --delta lora \ + --denas True \ + --trust_remote_code True \ + --no_cuda \ + 2>&1 | tee $log_save_path +done -# used for assign target modules to lora -# --lora_target_modules q_proj v_proj k_proj o_proj up_proj down_proj \ -# --lora_target_modules Wqkv out_proj up_proj down_proj \ \ No newline at end of file +########################## advanced options ########################## +# note 0: used for assign target modules + # llama: --lora_target_modules q_proj v_proj k_proj o_proj up_proj down_proj \ + # mpt: --lora_target_modules Wqkv out_proj up_proj down_proj \ +# note 1: used for 4th Xeon or later (SPR etc.): --bf16 --no_cuda +# note 2: used for 3th Xeon or before (ICX etc.): --no_cuda +# note 3: used for GPU server: --fp16 \ No newline at end of file diff --git a/tests/deltatuner/finetune/run_denas_ssf.sh b/tests/deltatuner/finetune/run_denas_ssf.sh new file mode 100644 index 000000000..e1b68ab04 --- /dev/null +++ b/tests/deltatuner/finetune/run_denas_ssf.sh @@ -0,0 +1,47 @@ +set -x + +DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" + +mkdir -p $LOG_PATH $MODEL_SAVE_PATH + +# fine-tune with denas-ssf +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_denas-ssf" + log_save_path=$LOG_PATH"/"${model_name}"_denas-ssf-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ + --train_file "$DATA_PATH/alpaca_data.json" \ + --dataset_concatenation \ + --per_device_train_batch_size 8 \ + --per_device_eval_batch_size 8 \ + --gradient_accumulation_steps 1 \ + --validation_split_percentage 30 \ + --do_train \ + --do_eval \ + --learning_rate 1e-4 \ + --num_train_epochs 1 \ + --logging_steps 100 \ + --save_total_limit 1 \ + --log_level info \ + --save_strategy epoch \ + --trust_remote_code True \ + --no_cuda \ + --output_dir $model_save_path \ + --delta ssf \ + --denas True \ + 2>&1 | tee $log_save_path +done + + +########################## advanced options ########################## +# note 0: used for assign target modules + # llama: --ssf_target_module q_proj v_proj k_proj o_proj up_proj down_proj \ + # mpt: --ssf_target_module Wqkv out_proj up_proj down_proj \ +# note 1: used for 4th Xeon or later (SPR etc.): --bf16 --no_cuda +# note 2: used for 3th Xeon or before (ICX etc.): --no_cuda +# note 3: used for GPU server: --fp16 \ No newline at end of file diff --git a/tests/deltatuner/finetune/run_lora.sh b/tests/deltatuner/finetune/run_lora.sh index ba4b331ae..91a8bf5b4 100644 --- a/tests/deltatuner/finetune/run_lora.sh +++ b/tests/deltatuner/finetune/run_lora.sh @@ -1,56 +1,49 @@ #!/bin/bash set -x -mkdir -p log models -# fine-tune mpt-7b with lora -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "/home/vmagent/app/dataset/mpt-7b" \ - --train_file "/home/vmagent/app/dataset/stanford_alpaca/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --do_train \ - --do_eval \ - --validation_split_percentage 30 \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --output_dir models/mpt_lora_model \ - --peft lora \ - --denas False \ - --trust_remote_code True \ - --no_cuda \ - --bf16 True 2>&1 | tee log/mpt-lora-run-1epoch.log +DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" -# fine-tune llama2-7b with lora -python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "/home/vmagent/app/dataset/Llama-2-7b-hf" \ - --train_file "/home/vmagent/app/dataset/stanford_alpaca/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --do_train \ - --do_eval \ - --validation_split_percentage 30 \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --output_dir models/llama2_lora_model \ - --peft lora \ - --denas False \ - --trust_remote_code True \ - --no_cuda \ - --bf16 True 2>&1 | tee log/llama2-lora-run-1epoch.log +mkdir -p $LOG_PATH $MODEL_SAVE_PATH -# used for assign target modules to lora -# --lora_target_modules q_proj v_proj k_proj o_proj up_proj down_proj \ -# --lora_target_modules Wqkv out_proj up_proj down_proj \ \ No newline at end of file +# fine-tune with lora +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"-lora" + log_save_path=$LOG_PATH"/"${model_name}"-lora-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ + --train_file $DATA_PATH"/alpaca_data.json" \ + --dataset_concatenation \ + --per_device_train_batch_size 8 \ + --per_device_eval_batch_size 8 \ + --gradient_accumulation_steps 1 \ + --do_train \ + --do_eval \ + --validation_split_percentage 30 \ + --learning_rate 1e-4 \ + --num_train_epochs 1 \ + --logging_steps 100 \ + --save_total_limit 1 \ + --log_level info \ + --save_strategy epoch \ + --output_dir $model_save_path \ + --peft lora \ + --denas False \ + --trust_remote_code True \ + --no_cuda \ + 2>&1 | tee $log_save_path +done + + +########################## advanced options ########################## +# note 0: used for assign target modules + # llama: --lora_target_modules q_proj v_proj k_proj o_proj up_proj down_proj \ + # mpt: --lora_target_modules Wqkv out_proj up_proj down_proj \ +# note 1: used for 4th Xeon or later (SPR etc.): --bf16 --no_cuda +# note 2: used for 3th Xeon or before (ICX etc.): --no_cuda +# note 3: used for GPU server: --fp16 diff --git a/tests/deltatuner/finetune/run_ssf.sh b/tests/deltatuner/finetune/run_ssf.sh new file mode 100644 index 000000000..c9732c0ff --- /dev/null +++ b/tests/deltatuner/finetune/run_ssf.sh @@ -0,0 +1,47 @@ +set -x + +DATA_PATH="/home/vmagent/app/data" +LOG_PATH=$DATA_PATH"/dtuner_test/log" +MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" + +mkdir -p $LOG_PATH $MODEL_SAVE_PATH + +# fine-tune with ssf +model_name_list="mpt-7b Llama-2-7b-hf" +for model_name in $model_name_list +do + model_name_or_path=${DATA_PATH}"/"${model_name} + model_save_path=${MODEL_SAVE_PATH}"/"${model_name}"_ssf" + log_save_path=$LOG_PATH"/"${model_name}"_ssf-1epoch.log" + python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path $model_name_or_path \ + --train_file "$DATA_PATH/alpaca_data.json" \ + --dataset_concatenation \ + --per_device_train_batch_size 8 \ + --per_device_eval_batch_size 8 \ + --gradient_accumulation_steps 1 \ + --validation_split_percentage 30 \ + --do_train \ + --do_eval \ + --learning_rate 1e-4 \ + --num_train_epochs 1 \ + --logging_steps 100 \ + --save_total_limit 1 \ + --log_level info \ + --save_strategy epoch \ + --trust_remote_code True \ + --no_cuda \ + --output_dir $model_save_path \ + --delta ssf \ + --denas False \ + 2>&1 | tee $log_save_path +done + + +########################## advanced options ########################## +# note 0: used for assign target modules + # llama: --ssf_target_module q_proj v_proj k_proj o_proj up_proj down_proj \ + # mpt: --ssf_target_module Wqkv out_proj up_proj down_proj \ +# note 1: used for 4th Xeon or later (SPR etc.): --bf16 --no_cuda +# note 2: used for 3th Xeon or before (ICX etc.): --no_cuda +# note 3: used for GPU server: --fp16 \ No newline at end of file From 8abbc58269ec6219d7bb8f7696464c196bef2c57 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 20:00:36 +0000 Subject: [PATCH 26/48] update --- .../llama2-7b-ssf-denas.sh} | 28 ++-- .../mpt-7b-ssf-allmodules-denas.sh | 0 .../mpt-7b-ssf-allmodules.sh | 0 .../finetune/{ssf => merge_model}/readme.md | 2 +- .../finetune/ssf/llama2-7b-ssf-allmodules.sh | 135 --------------- .../finetune/ssf/llama2-7b-ssf-denas.sh | 157 ------------------ tests/deltatuner/finetune/ssf/mpt-7b-ssf.sh | 51 ------ 7 files changed, 13 insertions(+), 360 deletions(-) rename tests/deltatuner/finetune/{ssf/llama2-7b-ssf.sh => merge_model/llama2-7b-ssf-denas.sh} (67%) rename tests/deltatuner/finetune/{ssf => merge_model}/mpt-7b-ssf-allmodules-denas.sh (100%) rename tests/deltatuner/finetune/{ssf => merge_model}/mpt-7b-ssf-allmodules.sh (100%) rename tests/deltatuner/finetune/{ssf => merge_model}/readme.md (99%) delete mode 100755 tests/deltatuner/finetune/ssf/llama2-7b-ssf-allmodules.sh delete mode 100755 tests/deltatuner/finetune/ssf/llama2-7b-ssf-denas.sh delete mode 100755 tests/deltatuner/finetune/ssf/mpt-7b-ssf.sh diff --git a/tests/deltatuner/finetune/ssf/llama2-7b-ssf.sh b/tests/deltatuner/finetune/merge_model/llama2-7b-ssf-denas.sh similarity index 67% rename from tests/deltatuner/finetune/ssf/llama2-7b-ssf.sh rename to tests/deltatuner/finetune/merge_model/llama2-7b-ssf-denas.sh index 39299cf36..5a1627cd9 100755 --- a/tests/deltatuner/finetune/ssf/llama2-7b-ssf.sh +++ b/tests/deltatuner/finetune/merge_model/llama2-7b-ssf-denas.sh @@ -1,5 +1,8 @@ DATA_PATH="/home/data" + + +#merge python instruction_tuning_pipeline/finetune_clm.py \ --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ --train_file "$DATA_PATH/alpaca_data.json" \ @@ -8,7 +11,6 @@ python instruction_tuning_pipeline/finetune_clm.py \ --per_device_eval_batch_size 8 \ --gradient_accumulation_steps 1 \ --validation_split_percentage 30 \ - --do_train \ --do_eval \ --learning_rate 1e-4 \ --num_train_epochs 1 \ @@ -18,32 +20,26 @@ python instruction_tuning_pipeline/finetune_clm.py \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf" \ + --output_dir "$DATA_PATH/llama2-7b-ssf-denas-merge" \ --delta ssf \ - --denas False \ - | tee llama2-7b-ssf-1epoch.log + --resume_peft "$DATA_PATH/llama2-7b-ssf-denas" \ + --save_merged_model True \ + --denas "$DATA_PATH/llama2-7b-ssf-denas/best_model_structure.txt" \ + -#bf16 +#evaluate merged model python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ + --model_name_or_path "$DATA_PATH/llama2-7b-ssf-denas-merge/merged_model" \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ - --per_device_train_batch_size 8 \ --per_device_eval_batch_size 8 \ --gradient_accumulation_steps 1 \ --validation_split_percentage 30 \ - --do_train \ --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ --logging_steps 100 \ --save_total_limit 1 \ --log_level info \ - --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-bf16" \ - --delta ssf \ - --bf16 True \ - --denas False \ - | tee llama2-7b-ssf-bf16-1epoch.log \ No newline at end of file + --output_dir "$DATA_PATH/llama2-7b-ssf-denas-merge/eval_merge" \ + diff --git a/tests/deltatuner/finetune/ssf/mpt-7b-ssf-allmodules-denas.sh b/tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules-denas.sh similarity index 100% rename from tests/deltatuner/finetune/ssf/mpt-7b-ssf-allmodules-denas.sh rename to tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules-denas.sh diff --git a/tests/deltatuner/finetune/ssf/mpt-7b-ssf-allmodules.sh b/tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules.sh similarity index 100% rename from tests/deltatuner/finetune/ssf/mpt-7b-ssf-allmodules.sh rename to tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules.sh diff --git a/tests/deltatuner/finetune/ssf/readme.md b/tests/deltatuner/finetune/merge_model/readme.md similarity index 99% rename from tests/deltatuner/finetune/ssf/readme.md rename to tests/deltatuner/finetune/merge_model/readme.md index 25bcbd9c4..58e2b8555 100644 --- a/tests/deltatuner/finetune/ssf/readme.md +++ b/tests/deltatuner/finetune/merge_model/readme.md @@ -1,4 +1,4 @@ -# Run Deltatuner with ssf +# Run Deltatuner with Merged model ## Llama2-7b diff --git a/tests/deltatuner/finetune/ssf/llama2-7b-ssf-allmodules.sh b/tests/deltatuner/finetune/ssf/llama2-7b-ssf-allmodules.sh deleted file mode 100755 index 7077fda90..000000000 --- a/tests/deltatuner/finetune/ssf/llama2-7b-ssf-allmodules.sh +++ /dev/null @@ -1,135 +0,0 @@ -DATA_PATH="/home/data" - -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-allmodules" \ - --ssf_target_modules q_proj v_proj k_proj o_proj up_proj down_proj \ - --delta ssf \ - --denas False \ - | tee llama2-7b-ssf-allmodules-1epoch.log - -#bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-allmodules-bf16" \ - --ssf_target_modules q_proj v_proj k_proj o_proj up_proj down_proj \ - --delta ssf \ - --bf16 True \ - --denas False \ - | tee llama2-7b-ssf-allmodules-bf16-1epoch.log - -#merge -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-allmodules-merge" \ - --ssf_target_modules q_proj v_proj k_proj o_proj up_proj down_proj \ - --delta ssf \ - --resume_peft "$DATA_PATH/llama2-7b-ssf-allmodules" \ - --save_merged_model True - -#merge, bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-allmodules-bf16-merge" \ - --ssf_target_modules q_proj v_proj k_proj o_proj up_proj down_proj \ - --delta ssf \ - --resume_peft "$DATA_PATH/llama2-7b-ssf-allmodules-bf16" \ - --save_merged_model True \ - --bf16 True - -#evaluate merged model -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/llama2-7b-ssf-allmodules-merge/merged_model" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-allmodules-merge/eval_merged" \ - --debugs - -#evaluate merged model, bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/llama2-7b-ssf-allmodules-bf16-merge/merged_model" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-allmodules-bf16-merge/eval_merged" \ - --bf16 True \ - --debugs \ No newline at end of file diff --git a/tests/deltatuner/finetune/ssf/llama2-7b-ssf-denas.sh b/tests/deltatuner/finetune/ssf/llama2-7b-ssf-denas.sh deleted file mode 100755 index aa6fb3704..000000000 --- a/tests/deltatuner/finetune/ssf/llama2-7b-ssf-denas.sh +++ /dev/null @@ -1,157 +0,0 @@ -DATA_PATH="/home/data" - -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas" \ - --delta ssf \ - --denas True \ - | tee llama2-7b-ssf-denas-1epoch.log - -#bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16" \ - --delta ssf \ - --denas True \ - --bf16 True \ - | tee llama2-7b-ssf-denas-bf16-1epoch.log - -#evaluate model, bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16/eval" \ - --delta ssf \ - --bf16 True \ - --resume_peft "$DATA_PATH/llama2-7b-ssf-denas-bf16" \ - --denas "$DATA_PATH/llama2-7b-ssf-denas-bf16/best_model_structure.txt" \ - --debugs - -#merge -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-merge" \ - --delta ssf \ - --resume_peft "$DATA_PATH/llama2-7b-ssf-denas" \ - --save_merged_model True \ - --denas "$DATA_PATH/llama2-7b-ssf-denas/best_model_structure.txt" \ - --debugs - -#merge, bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge" \ - --delta ssf \ - --bf16 True \ - --resume_peft "$DATA_PATH/llama2-7b-ssf-denas-bf16" \ - --save_merged_model True \ - --denas "$DATA_PATH/llama2-7b-ssf-denas-bf16/best_model_structure.txt" \ - --debugs - -#evaluate merged model -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/llama2-7b-ssf-denas-merge/merged_model" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-merge/eval_merge" \ - --debugs - -#evaluate merged model, bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge/merged_model" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --trust_remote_code True \ - --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge/eval_merge" \ - --bf16 True \ - --debugs \ No newline at end of file diff --git a/tests/deltatuner/finetune/ssf/mpt-7b-ssf.sh b/tests/deltatuner/finetune/ssf/mpt-7b-ssf.sh deleted file mode 100755 index f4d301b45..000000000 --- a/tests/deltatuner/finetune/ssf/mpt-7b-ssf.sh +++ /dev/null @@ -1,51 +0,0 @@ -DATA_PATH="/home/data" - -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf" \ - --denas False \ - --delta ssf \ - | tee mpt-ssf-run-1epoch.log - -# bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-bf16" \ - --delta ssf \ - --bf16 True \ - --denas False \ - | tee mpt-ssf-run-1epoch.log \ No newline at end of file From 2c4ce9cfda1d461061184d286585e4fa3d262a46 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Mon, 9 Oct 2023 20:55:28 +0000 Subject: [PATCH 27/48] support direct eval after merging model --- .../instruction_tuning_pipeline/finetune_clm.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 6da81f8fc..97210d4a8 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -710,6 +710,14 @@ def concatenate_data(dataset, max_seq_length): model = deltatuner.optimize(model, tokenizer, algo=finetune_args.delta, deltatuning_args=deltatuner_args) logger.info("***deltatuner optimized model parameter***") model.print_trainable_parameters() + + if finetune_args.save_merged_model: + if isinstance(model, PeftModel): + model = model.merge_and_unload() + saved_dir = os.path.join(training_args.output_dir, "merged_model") + os.makedirs(saved_dir, exist_ok=True) + torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) + print(f"Save merged model to {saved_dir}") if finetune_args.debugs: if training_args.do_train: @@ -771,12 +779,6 @@ def concatenate_data(dataset, max_seq_length): trainer.log_metrics("eval", metrics) trainer.save_metrics("eval", metrics) - if finetune_args.save_merged_model: - if isinstance(model, PeftModel): - merged_model = model.merge_and_unload() - os.makedirs(os.path.join(training_args.output_dir,"merged_model"),exist_ok=True) - torch.save(merged_model.state_dict(),os.path.join(training_args.output_dir,"merged_model","pytorch_model.bin")) - print(f"Save merged model to {training_args.output_dir}") def profile_model(model, train_dataset, data_collator, args): from transformers import get_scheduler From 7515ccce1764dead2b2bede187bb11e043ecb7e9 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 13:12:43 +0000 Subject: [PATCH 28/48] update --- .../instruction_tuning_pipeline/finetune_clm.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 97210d4a8..29581d4c3 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -710,14 +710,6 @@ def concatenate_data(dataset, max_seq_length): model = deltatuner.optimize(model, tokenizer, algo=finetune_args.delta, deltatuning_args=deltatuner_args) logger.info("***deltatuner optimized model parameter***") model.print_trainable_parameters() - - if finetune_args.save_merged_model: - if isinstance(model, PeftModel): - model = model.merge_and_unload() - saved_dir = os.path.join(training_args.output_dir, "merged_model") - os.makedirs(saved_dir, exist_ok=True) - torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) - print(f"Save merged model to {saved_dir}") if finetune_args.debugs: if training_args.do_train: @@ -765,6 +757,14 @@ def concatenate_data(dataset, max_seq_length): training_args.output_dir, state_dict=unwrapped_model.state_dict() ) + if finetune_args.save_merged_model: + if isinstance(model, PeftModel): + model = model.merge_and_unload() + saved_dir = os.path.join(training_args.output_dir, "merged_model") + os.makedirs(saved_dir, exist_ok=True) + torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) + print(f"Save merged model to {saved_dir}") + # Evaluation if training_args.do_eval: logger.info("*** Evaluate ***") From 1c0edbf250cd3a14c962d84ef87b74db5096a674 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 14:51:23 +0000 Subject: [PATCH 29/48] update --- example/instruction_tuning_pipeline/finetune_clm.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 29581d4c3..569063ec7 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -762,9 +762,10 @@ def concatenate_data(dataset, max_seq_length): model = model.merge_and_unload() saved_dir = os.path.join(training_args.output_dir, "merged_model") os.makedirs(saved_dir, exist_ok=True) - torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) + os.system(f"cp {model_args.model_name_or_path}/* {saved_dir}") print(f"Save merged model to {saved_dir}") - + torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) + # Evaluation if training_args.do_eval: logger.info("*** Evaluate ***") From 25ac3b413f51ecb9bda4585c5a127b4ac7926eda Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 15:38:52 +0000 Subject: [PATCH 30/48] ssf load previous config --- .../deltatuner/tuner/deltatuner_ssf.py | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py b/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py index 48cff341b..09507a499 100644 --- a/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py +++ b/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py @@ -80,6 +80,48 @@ class SSFConfig(PeftConfig): def __post_init__(self): self.peft_type = DeltaTunerType.SSF + @classmethod + def from_pretrained(cls, pretrained_model_name_or_path: str, subfolder: Optional[str] = None, **kwargs): + r""" + This method loads the configuration of your adapter model from a directory. + + Args: + pretrained_model_name_or_path (`str`): + The directory or the Hub repository id where the configuration is saved. + kwargs (additional keyword arguments, *optional*): + Additional keyword arguments passed along to the child class initialization. + """ + path = ( + os.path.join(pretrained_model_name_or_path, subfolder) + if subfolder is not None + else pretrained_model_name_or_path + ) + + hf_hub_download_kwargs, class_kwargs, _ = cls._split_kwargs(kwargs) + + if os.path.isfile(os.path.join(path, CONFIG_NAME)): + config_file = os.path.join(path, CONFIG_NAME) + else: + try: + config_file = hf_hub_download( + pretrained_model_name_or_path, CONFIG_NAME, subfolder=subfolder, **hf_hub_download_kwargs + ) + except Exception: + raise ValueError(f"Can't find '{CONFIG_NAME}' at '{pretrained_model_name_or_path}'") + + loaded_attributes = cls.from_json_file(config_file) + + config_cls = cls + + config = config_cls(**class_kwargs) + + for key, value in loaded_attributes.items(): + if hasattr(config, key): + setattr(config, key, value) + + return config + + class DeltaSSFSearchSpace: @classmethod def generate_search_space(cls, model, denas_config): From 4e9fa1fe5e6755d111954219d5f357749bf790d4 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 16:18:31 +0000 Subject: [PATCH 31/48] automatic fill deltaargs --- e2eAIOK/deltatuner/deltatuner/deltatuner_model.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py index 8d6baefaa..2b072d7e0 100644 --- a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py +++ b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py @@ -1,4 +1,5 @@ import os +import errno import torch import json import inspect @@ -219,6 +220,12 @@ def from_pretrained( from .mapping import DELTATUNER_TYPE_TO_CONFIG_MAPPING, MODEL_TYPE_TO_DELTATUNER_MODEL_MAPPING denas_config = kwargs.pop("denas_config", None) + best_structure_file = os.path.join(model_id, "best_model_structure.txt") + if os.path.isfile(best_structure_file): + denas_config.denas = best_structure_file + else: + raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), best_structure_file) + # load the config if config is None: peft_type_name = PeftConfig._get_peft_type( From 1f47d9f3012714b0e7d135686505f1c43a98becf Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 16:42:02 +0000 Subject: [PATCH 32/48] update config --- .../deltatuner/deltatuner/deltatuner_model.py | 3 +-- .../finetune_clm.py | 21 +++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py index 2b072d7e0..d11a4d23c 100644 --- a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py +++ b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py @@ -1,5 +1,4 @@ import os -import errno import torch import json import inspect @@ -224,7 +223,7 @@ def from_pretrained( if os.path.isfile(best_structure_file): denas_config.denas = best_structure_file else: - raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), best_structure_file) + denas_config.denas = False # load the config if config is None: diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 569063ec7..de5edd06c 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -700,12 +700,7 @@ def concatenate_data(dataset, max_seq_length): if finetune_args.delta: if finetune_args.resume_peft != "": - if finetune_args.delta == "ssf": - peft_config = SSFConfig(target_modules=deltatuner_args.ssf_target_modules, - bias="none", - task_type="CAUSAL_LM", - ) - model = DeltaTunerModel.from_pretrained(model, finetune_args.resume_peft, config=peft_config, denas_config=deltatuner_args) + model = DeltaTunerModel.from_pretrained(model, finetune_args.resume_peft, denas_config=deltatuner_args) else: model = deltatuner.optimize(model, tokenizer, algo=finetune_args.delta, deltatuning_args=deltatuner_args) logger.info("***deltatuner optimized model parameter***") @@ -765,6 +760,20 @@ def concatenate_data(dataset, max_seq_length): os.system(f"cp {model_args.model_name_or_path}/* {saved_dir}") print(f"Save merged model to {saved_dir}") torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) + if finetune_args.delta == 'ssf' + pre_train_config_file = os.path.join(saved_dir, "config.json") + with open(pre_train_config_file, "r") as file: + config_json = json.load(file) + adapter_config_file = os.path.join(finetune_args.resume_peft, "adapter_config.json") + with open(adapter_config_file, "r") as file: + adapter_config_json = json.load(file) + config_json['target_modules'] = adapter_config_json['target_modules'] + + best_structure_file = os.path.join(finetune_args.resume_peft, "best_model_structure.txt") + if os.path.isfile(best_structure_file): + with open(best_structure_file, "r") as file: + best_structure_json = json.loads(file.readline().strip()) + config_json['best_model_structure'] = best_structure_json # Evaluation if training_args.do_eval: From cfc85c30842f5b9d69d00b94950b7f04d056be53 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 20:49:16 +0000 Subject: [PATCH 33/48] copy code to merged dir --- example/instruction_tuning_pipeline/finetune_clm.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index de5edd06c..3dded651f 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -292,6 +292,10 @@ class FinetuneArguments: default=False, metadata={"help": "save merged model"}, ) + merge_model_code_dir: Optional[str] = field( + default="", + metadata={"help": "the code path of base model with enable bias on target modules for ssf algo"}, + ) PROMPT_DICT = { "prompt_with_input": ( @@ -757,7 +761,10 @@ def concatenate_data(dataset, max_seq_length): model = model.merge_and_unload() saved_dir = os.path.join(training_args.output_dir, "merged_model") os.makedirs(saved_dir, exist_ok=True) + print(f"copy base model config to {saved_dir}") os.system(f"cp {model_args.model_name_or_path}/* {saved_dir}") + print(f"copy merged model code to {saved_dir}") + os.system(f"cp {finetune_args.merge_model_code_dir}/* {saved_dir}") print(f"Save merged model to {saved_dir}") torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) if finetune_args.delta == 'ssf' From 104c211f1cad0b1b804c3d59a7f1483d14583b4f Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 20:56:43 +0000 Subject: [PATCH 34/48] add test --- .../mpt-7b-ssf-allmodules-denas.sh | 120 ------------------ .../merge_model/mpt-7b-ssf-allmodules.sh | 98 -------------- .../deltatuner/finetune/merge_model/readme.md | 3 +- ...ama2-7b-ssf-denas.sh => ssf-merge-test.sh} | 23 ++-- 4 files changed, 10 insertions(+), 234 deletions(-) delete mode 100755 tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules-denas.sh delete mode 100755 tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules.sh rename tests/deltatuner/finetune/merge_model/{llama2-7b-ssf-denas.sh => ssf-merge-test.sh} (60%) diff --git a/tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules-denas.sh b/tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules-denas.sh deleted file mode 100755 index 251152050..000000000 --- a/tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules-denas.sh +++ /dev/null @@ -1,120 +0,0 @@ -DATA_PATH="/home/data" - -#bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16" \ - --delta ssf \ - --ssf_target_modules Wqkv out_proj up_proj down_proj \ - --bf16 True \ - --denas True \ - | tee "mpt-7b-ssf-allmodules-denas-bf16-run-1epoch.log" - -#merge -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge" \ - --delta ssf \ - --ssf_target_modules Wqkv out_proj up_proj down_proj \ - --resume_peft "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16" \ - --save_merged_model True \ - --denas "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16/best_model_structure.txt" \ - --debugs - -#merge,bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge" \ - --delta ssf \ - --ssf_target_modules Wqkv out_proj up_proj down_proj \ - --bf16 True \ - --resume_peft "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16" \ - --save_merged_model True \ - --denas "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16/best_model_structure.txt" \ - --debugs - -#evaluate merged model -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge/merged_model" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge/eval_merge" \ - --debugs - -#evaluate merged model, bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge/merged_model" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge/eval_merge" \ - --bf16 True \ - --debugs \ No newline at end of file diff --git a/tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules.sh b/tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules.sh deleted file mode 100755 index ff9f34385..000000000 --- a/tests/deltatuner/finetune/merge_model/mpt-7b-ssf-allmodules.sh +++ /dev/null @@ -1,98 +0,0 @@ -DATA_PATH="/home/data" - -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules" \ - --delta ssf \ - --denas False \ - --ssf_target_modules Wqkv out_proj up_proj down_proj \ - | tee mpt-ssf-run-allmodules-1epoch.log - -# bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_train \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-bf16" \ - --delta ssf \ - --denas False \ - --ssf_target_modules Wqkv out_proj up_proj down_proj \ - --bf16 True \ - | tee mpt-ssf-run-allmodules-bf16-1epoch.log - -# merge, bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_train_batch_size 8 \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --save_strategy epoch \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-bf16-merge" \ - --delta ssf \ - --ssf_target_modules Wqkv out_proj up_proj down_proj \ - --bf16 True \ - --resume_peft "$DATA_PATH/mpt-7b-ssf-allmodules-bf16" \ - --save_merged_model True - -#evaluate merged model, bf16 -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b-ssf-allmodules-bf16-merge/merged_model" \ - --train_file "$DATA_PATH/alpaca_data.json" \ - --dataset_concatenation \ - --per_device_eval_batch_size 8 \ - --gradient_accumulation_steps 1 \ - --validation_split_percentage 30 \ - --do_eval \ - --logging_steps 100 \ - --save_total_limit 1 \ - --log_level info \ - --trust_remote_code True \ - --tokenizer_name "$DATA_PATH/gpt-neox-20b" \ - --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-bf16-merge/eval_merged" \ - --bf16 True \ - --debugs diff --git a/tests/deltatuner/finetune/merge_model/readme.md b/tests/deltatuner/finetune/merge_model/readme.md index 58e2b8555..dba41f0c9 100644 --- a/tests/deltatuner/finetune/merge_model/readme.md +++ b/tests/deltatuner/finetune/merge_model/readme.md @@ -1,6 +1,5 @@ -# Run Deltatuner with Merged model +## Run Deltatuner with Merged model -## Llama2-7b ### 1. Finetune the model If use Denas, can use command: diff --git a/tests/deltatuner/finetune/merge_model/llama2-7b-ssf-denas.sh b/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh similarity index 60% rename from tests/deltatuner/finetune/merge_model/llama2-7b-ssf-denas.sh rename to tests/deltatuner/finetune/merge_model/ssf-merge-test.sh index 5a1627cd9..1acd03e39 100755 --- a/tests/deltatuner/finetune/merge_model/llama2-7b-ssf-denas.sh +++ b/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh @@ -1,45 +1,40 @@ DATA_PATH="/home/data" - -#merge +# merge model python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ + --model_name_or_path "$DATA_PATH/mpt-7b" \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ - --per_device_train_batch_size 8 \ --per_device_eval_batch_size 8 \ --gradient_accumulation_steps 1 \ --validation_split_percentage 30 \ --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ - --logging_steps 100 \ --save_total_limit 1 \ --log_level info \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-merge" \ + --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge" \ --delta ssf \ - --resume_peft "$DATA_PATH/llama2-7b-ssf-denas" \ + --resume_peft "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16" \ --save_merged_model True \ - --denas "$DATA_PATH/llama2-7b-ssf-denas/best_model_structure.txt" \ + --debugs -#evaluate merged model +# evaluate merged model python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/llama2-7b-ssf-denas-merge/merged_model" \ + --model_name_or_path "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge/merged_model" \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ --per_device_eval_batch_size 8 \ --gradient_accumulation_steps 1 \ --validation_split_percentage 30 \ --do_eval \ - --logging_steps 100 \ --save_total_limit 1 \ --log_level info \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-merge/eval_merge" \ + --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge/eval_merge" \ + --debugs From 1b65756d82aba5626569ef4fa2342fe7793d9514 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 21:15:18 +0000 Subject: [PATCH 35/48] update readme for merge model --- .../deltatuner/finetune/merge_model/readme.md | 19 ++++++------------- .../finetune/merge_model/ssf-merge-test.sh | 1 + 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/tests/deltatuner/finetune/merge_model/readme.md b/tests/deltatuner/finetune/merge_model/readme.md index dba41f0c9..517c8a45e 100644 --- a/tests/deltatuner/finetune/merge_model/readme.md +++ b/tests/deltatuner/finetune/merge_model/readme.md @@ -27,7 +27,6 @@ python instruction_tuning_pipeline/finetune_clm.py \ --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16" \ --delta ssf \ --denas True \ - --bf16 True \ | tee llama2-7b-ssf-denas-bf16-1epoch.log ``` @@ -39,13 +38,10 @@ python instruction_tuning_pipeline/finetune_clm.py \ --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ - --per_device_train_batch_size 8 \ --per_device_eval_batch_size 8 \ --gradient_accumulation_steps 1 \ --validation_split_percentage 30 \ --do_eval \ - --learning_rate 1e-4 \ - --num_train_epochs 1 \ --logging_steps 100 \ --save_total_limit 1 \ --log_level info \ @@ -54,22 +50,18 @@ python instruction_tuning_pipeline/finetune_clm.py \ --no_cuda \ --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge" \ --delta ssf \ - --bf16 True \ --resume_peft "$DATA_PATH/llama2-7b-ssf-denas-bf16" \ --save_merged_model True \ - --denas "$DATA_PATH/llama2-7b-ssf-denas-bf16/best_model_structure.txt" \ + --merge_model_code_dir "instruction_tuning_pipeline/models/llama2-ssf" \ --debugs ``` -### 3. Evaluate merged model As ssf will enable bias, while the default Llama2 disable all the bias, to enable the full parameters of the adapter, we need to change the model definition. -First copy the updated model codes with the merged weights. -```shell -cp instruction_tuning_pipeline/models/llama2-ssf/* $DATA_PATH/llama2-7b-ssf-denas-bf16-merge/merged_model -``` +First, specify the `merge_model_code_dir` args, it will copy the updated model codes with the merged weights. -Then update the "best_model_structure" and "target_modules" setting in config.json. if not enable denas and not change "target_modules" default settings, can skip correpsonding setting. +Then it will automatically update the "best_model_structure" and "target_modules" setting in `config.json`. if "denas" or "target_modules" are not enabled/changed, it will skip the corresponding setting. +The changed `config.json` looks like this: ```shell ... "best_model_structure": {"num_hidden_layers": [1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1]}, # change to your best structure, skip to keep default @@ -77,6 +69,8 @@ Then update the "best_model_structure" and "target_modules" setting in config.js ... ``` +### 3. Evaluate merged model + Finally we can directly evalute the merged model. ```shell python instruction_tuning_pipeline/finetune_clm.py \ @@ -93,5 +87,4 @@ python instruction_tuning_pipeline/finetune_clm.py \ --trust_remote_code True \ --no_cuda \ --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge/eval_merge" \ - --bf16 True ``` \ No newline at end of file diff --git a/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh b/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh index 1acd03e39..4b19fb5d7 100755 --- a/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh +++ b/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh @@ -19,6 +19,7 @@ python instruction_tuning_pipeline/finetune_clm.py \ --delta ssf \ --resume_peft "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16" \ --save_merged_model True \ + --merge_model_code_dir instruction_tuning_pipeline/models/llama2-ssf \ --debugs From 87ea5a949f2b752a1a75abebc7508f58b86fccc8 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Tue, 10 Oct 2023 21:18:22 +0000 Subject: [PATCH 36/48] bug fix --- example/instruction_tuning_pipeline/finetune_clm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 3dded651f..8954e0c00 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -767,7 +767,7 @@ def concatenate_data(dataset, max_seq_length): os.system(f"cp {finetune_args.merge_model_code_dir}/* {saved_dir}") print(f"Save merged model to {saved_dir}") torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) - if finetune_args.delta == 'ssf' + if finetune_args.delta == 'ssf': pre_train_config_file = os.path.join(saved_dir, "config.json") with open(pre_train_config_file, "r") as file: config_json = json.load(file) From 080665a45575080bd327ae989341e16b2073d4c0 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 09:59:27 +0000 Subject: [PATCH 37/48] check the code file existence --- example/instruction_tuning_pipeline/finetune_clm.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 8954e0c00..0a8f05fce 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -20,6 +20,7 @@ import datasets import logging import os +import errno import sys import transformers from transformers.modeling_utils import unwrap_model @@ -763,11 +764,14 @@ def concatenate_data(dataset, max_seq_length): os.makedirs(saved_dir, exist_ok=True) print(f"copy base model config to {saved_dir}") os.system(f"cp {model_args.model_name_or_path}/* {saved_dir}") - print(f"copy merged model code to {saved_dir}") - os.system(f"cp {finetune_args.merge_model_code_dir}/* {saved_dir}") print(f"Save merged model to {saved_dir}") torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) if finetune_args.delta == 'ssf': + if os.path.exists(finetune_args.merge_model_code_dir): + print(f"copy merged model code to {saved_dir}") + os.system(f"cp {finetune_args.merge_model_code_dir}/* {saved_dir}") + else: + raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), finetune_args.merge_model_code_dir) pre_train_config_file = os.path.join(saved_dir, "config.json") with open(pre_train_config_file, "r") as file: config_json = json.load(file) From baa5980908beb8ae5bb886fbac2448e49f690c8d Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 10:07:36 +0000 Subject: [PATCH 38/48] update readme --- example/instruction_tuning_pipeline/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/example/instruction_tuning_pipeline/README.md b/example/instruction_tuning_pipeline/README.md index 59b047b25..6c2779a0e 100644 --- a/example/instruction_tuning_pipeline/README.md +++ b/example/instruction_tuning_pipeline/README.md @@ -125,6 +125,10 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --bf16 True 2>&1 | tee log/mpt-lora-run-1epoch.log ``` +- If you are using 4th Xeon or later (SPR etc.), please specify the `--bf16 --no_cuda` args; +- If you are using 3th Xeon or before (ICX etc.): please specify the `--no_cuda` args; +- If you are using GPU server: please specify the `--fp16` args. + ## Evaluate the model For model evaluation, we follow the same method in [open_llm_leaderboard](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard), which evaluate 4 key benchmarks in the [Eleuther AI Language Model Evaluation Harness](https://github.com/EleutherAI/lm-evaluation-harness). From 2476b2490202b8b7cd932543cb7ba4187dd2fada Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 10:15:45 +0000 Subject: [PATCH 39/48] update model name list --- tests/deltatuner/cicd/run_ssf_model.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/deltatuner/cicd/run_ssf_model.sh b/tests/deltatuner/cicd/run_ssf_model.sh index e18a7746a..a4e954abd 100644 --- a/tests/deltatuner/cicd/run_ssf_model.sh +++ b/tests/deltatuner/cicd/run_ssf_model.sh @@ -12,10 +12,8 @@ MODEL_SAVE_PATH=$DATA_PATH"/dtuner_test/models" mkdir -p $LOG_PATH $MODEL_SAVE_PATH # fine-tune with ssf -# gpt2 EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b -# EleutherAI/gpt-j-6b tiiuae/falcon-7b -# mosaicml/mpt-7b -model_name_list="tiiuae/falcon-7b" +# mosaicml/mpt-7b gpt2 EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b +model_name_list="EleutherAI/gpt-j-6b bigscience/bloom-560m facebook/opt-125m EleutherAI/gpt-neo-125m tiiuae/falcon-7b" for model_name in $model_name_list do model_name_or_path=${model_name} From 4707706fed188e9c6cd2b99bb4526812cbac6a25 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 12:56:19 +0000 Subject: [PATCH 40/48] refine test scripts --- .../finetune/merge_model/ssf-merge-test.sh | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh b/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh index 4b19fb5d7..22b5cfeb4 100755 --- a/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh +++ b/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh @@ -1,9 +1,9 @@ -DATA_PATH="/home/data" +DATA_PATH="/home/vmagent/app/data" # merge model -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b" \ +python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path "$DATA_PATH/Llama-2-7b-hf" \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ --per_device_eval_batch_size 8 \ @@ -15,17 +15,18 @@ python instruction_tuning_pipeline/finetune_clm.py \ --save_strategy epoch \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge" \ + --output_dir "$DATA_PATH/dtuner_test/models/llama2-7b-ssf-denas-bf16-merge" \ --delta ssf \ - --resume_peft "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16" \ + --resume_peft "$DATA_PATH/dtuner_test/models/llama2-7b-ssf-denas-bf16" \ --save_merged_model True \ - --merge_model_code_dir instruction_tuning_pipeline/models/llama2-ssf \ + --merge_model_code_dir $DATA_PATH"/dtuner_test/ssf_models_code/llama-7b-ssf" \ + --bf16 True \ --debugs # evaluate merged model -python instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge/merged_model" \ +python example/instruction_tuning_pipeline/finetune_clm.py \ + --model_name_or_path "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge/merged_model" \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ --per_device_eval_batch_size 8 \ @@ -36,6 +37,6 @@ python instruction_tuning_pipeline/finetune_clm.py \ --log_level info \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/mpt-7b-ssf-allmodules-denas-bf16-merge/eval_merge" \ + --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge/eval_merge" \ --debugs From 2ba20c2161dc78e7f7ed437719c030a054ee0e8c Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 13:00:55 +0000 Subject: [PATCH 41/48] bug fix --- e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py b/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py index 09507a499..73f070c1d 100644 --- a/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py +++ b/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py @@ -1,3 +1,4 @@ +import os import math import re import warnings From ffa86cee21880b0e26205a20ddf8c661107fcbb8 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 13:18:20 +0000 Subject: [PATCH 42/48] bug fix --- e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py b/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py index 73f070c1d..2a8716695 100644 --- a/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py +++ b/e2eAIOK/deltatuner/deltatuner/tuner/deltatuner_ssf.py @@ -92,6 +92,8 @@ def from_pretrained(cls, pretrained_model_name_or_path: str, subfolder: Optional kwargs (additional keyword arguments, *optional*): Additional keyword arguments passed along to the child class initialization. """ + from peft.utils import CONFIG_NAME + path = ( os.path.join(pretrained_model_name_or_path, subfolder) if subfolder is not None From 96663ddba7f5fac5b7c0e1cc52bb0c90f7cb6684 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 14:17:38 +0000 Subject: [PATCH 43/48] allow tokenizer to be None --- e2eAIOK/deltatuner/deltatuner/deltatuner.py | 4 ++-- e2eAIOK/deltatuner/deltatuner/deltatuner_model.py | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/e2eAIOK/deltatuner/deltatuner/deltatuner.py b/e2eAIOK/deltatuner/deltatuner/deltatuner.py index f6a3adbf3..2c172d98b 100644 --- a/e2eAIOK/deltatuner/deltatuner/deltatuner.py +++ b/e2eAIOK/deltatuner/deltatuner/deltatuner.py @@ -39,9 +39,9 @@ def optimize(model, tokenizer, algo: str="auto", adapter_name: str="default", de if isinstance(peft_config, LoraConfig) or isinstance(peft_config, SSFConfig): if peft_config.task_type not in MODEL_TYPE_TO_DELTATUNER_MODEL_MAPPING: - model = DeltaTunerModel(model, tokenizer, peft_config, adapter_name, deltatuning_args) + model = DeltaTunerModel(model, peft_config, adapter_name, deltatuning_args, tokenizer) else: - model = MODEL_TYPE_TO_DELTATUNER_MODEL_MAPPING[peft_config.task_type](model, tokenizer, peft_config, adapter_name, deltatuning_args) + model = MODEL_TYPE_TO_DELTATUNER_MODEL_MAPPING[peft_config.task_type](model, peft_config, adapter_name, deltatuning_args, tokenizer) return model else: raise NotImplementedError("Current algorithm {} is not supported in deltatuner. ".format(algo)) \ No newline at end of file diff --git a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py index d11a4d23c..29c94f8e6 100644 --- a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py +++ b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py @@ -52,7 +52,7 @@ def setup_seed(seed): torch.manual_seed(seed) class DeltaTunerModel(PeftModel, torch.nn.Module): - def __init__(self, model, tokenizer: AutoTokenizer, peft_config: PeftConfig, adapter_name: str = "default", denas_config: DeltaTunerArguments = None): + def __init__(self, model, peft_config: PeftConfig, adapter_name: str = "default", denas_config: DeltaTunerArguments = None, tokenizer: AutoTokenizer = None): torch.nn.Module.__init__(self) self.base_model = model self.tokenizer = tokenizer @@ -104,7 +104,8 @@ def _init_denas_params_(self): self.denas_config.model_id = self.base_model.config._name_or_path self.denas_config.tokenizer = self.tokenizer self.denas_config.max_param_limits = sum(param.numel() for param in self.base_model.parameters() if param.requires_grad) / 10.**6 if self.denas_config.max_param_limits is None else self.denas_config.max_param_limits - self.denas_config.budget_latency_max = network_latency(self.base_model, self.tokenizer, batch_size=self.denas_config.batch_size) if self.denas_config.budget_latency_max is not None else self.denas_config.budget_latency_max + if self.tokenizer: + self.denas_config.budget_latency_max = network_latency(self.base_model, self.tokenizer, batch_size=self.denas_config.batch_size) if self.denas_config.budget_latency_max is not None else self.denas_config.budget_latency_max def search(self, denas_config, super_net, search_space): setup_seed(denas_config.random_seed) @@ -382,7 +383,7 @@ def load_adapter(self, model_id: str, adapter_name: str, is_trainable: bool = Fa return load_result class DelatunerModelForCausalLM(DeltaTunerModel): - def __init__(self, model: PeftModel, tokenizer: AutoTokenizer, peft_config: PeftConfig, adapter_name: str = "default", denas_config: DeltaTunerArguments = None): + def __init__(self, model: PeftModel, peft_config: PeftConfig, adapter_name: str = "default", denas_config: DeltaTunerArguments = None, tokenizer: AutoTokenizer = None): super().__init__(model, tokenizer, peft_config, adapter_name, denas_config) self.base_model_prepare_inputs_for_generation = self.base_model.prepare_inputs_for_generation From 9e8fa7f474fb01703ec672aa77110e0a3011edec Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 14:20:24 +0000 Subject: [PATCH 44/48] bug fix --- e2eAIOK/deltatuner/deltatuner/deltatuner_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py index 29c94f8e6..5f45e7b44 100644 --- a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py +++ b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py @@ -384,7 +384,7 @@ def load_adapter(self, model_id: str, adapter_name: str, is_trainable: bool = Fa class DelatunerModelForCausalLM(DeltaTunerModel): def __init__(self, model: PeftModel, peft_config: PeftConfig, adapter_name: str = "default", denas_config: DeltaTunerArguments = None, tokenizer: AutoTokenizer = None): - super().__init__(model, tokenizer, peft_config, adapter_name, denas_config) + super().__init__(model, peft_config, adapter_name, denas_config, tokenizer) self.base_model_prepare_inputs_for_generation = self.base_model.prepare_inputs_for_generation def forward( From 044494890d31767e8a4ac37198691b946fd5c9e5 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 14:36:11 +0000 Subject: [PATCH 45/48] bug fix --- e2eAIOK/deltatuner/deltatuner/deltatuner_model.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py index 5f45e7b44..917c55f18 100644 --- a/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py +++ b/e2eAIOK/deltatuner/deltatuner/deltatuner_model.py @@ -222,7 +222,8 @@ def from_pretrained( best_structure_file = os.path.join(model_id, "best_model_structure.txt") if os.path.isfile(best_structure_file): - denas_config.denas = best_structure_file + denas_config.denas = True + denas_config.best_model_structure = best_structure_file else: denas_config.denas = False From ea75c6d557c646f8b978599cd641249a7091167e Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 14:41:29 +0000 Subject: [PATCH 46/48] fix import --- example/instruction_tuning_pipeline/finetune_clm.py | 1 + 1 file changed, 1 insertion(+) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 0a8f05fce..61c28edb7 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -20,6 +20,7 @@ import datasets import logging import os +import json import errno import sys import transformers From dd1c8cfaeacecf80e887c0c3c394fd3b7e3f3ce4 Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 14:51:36 +0000 Subject: [PATCH 47/48] update path --- tests/deltatuner/finetune/merge_model/ssf-merge-test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh b/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh index 22b5cfeb4..7fd55b5bf 100755 --- a/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh +++ b/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh @@ -26,7 +26,7 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ # evaluate merged model python example/instruction_tuning_pipeline/finetune_clm.py \ - --model_name_or_path "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge/merged_model" \ + --model_name_or_path $DATA_PATH"/dtuner_test/models/llama2-7b-ssf-denas-bf16-merge/merged_model" \ --train_file "$DATA_PATH/alpaca_data.json" \ --dataset_concatenation \ --per_device_eval_batch_size 8 \ @@ -37,6 +37,6 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --log_level info \ --trust_remote_code True \ --no_cuda \ - --output_dir "$DATA_PATH/llama2-7b-ssf-denas-bf16-merge/eval_merge" \ + --output_dir $DATA_PATH"/dtuner_test/models/llama2-7b-ssf-denas-bf16-merge/eval_merge" \ --debugs From aac1c2e5305c600354f866cc016dc489f979e58b Mon Sep 17 00:00:00 2001 From: zhouyu5 Date: Wed, 11 Oct 2023 15:49:26 +0000 Subject: [PATCH 48/48] move merge testing scripts --- example/instruction_tuning_pipeline/finetune_clm.py | 2 ++ tests/deltatuner/{finetune => }/merge_model/readme.md | 0 tests/deltatuner/{finetune => }/merge_model/ssf-merge-test.sh | 1 + 3 files changed, 3 insertions(+) rename tests/deltatuner/{finetune => }/merge_model/readme.md (100%) rename tests/deltatuner/{finetune => }/merge_model/ssf-merge-test.sh (98%) diff --git a/example/instruction_tuning_pipeline/finetune_clm.py b/example/instruction_tuning_pipeline/finetune_clm.py index 61c28edb7..6740ad098 100755 --- a/example/instruction_tuning_pipeline/finetune_clm.py +++ b/example/instruction_tuning_pipeline/finetune_clm.py @@ -765,6 +765,8 @@ def concatenate_data(dataset, max_seq_length): os.makedirs(saved_dir, exist_ok=True) print(f"copy base model config to {saved_dir}") os.system(f"cp {model_args.model_name_or_path}/* {saved_dir}") + print(f"remove unnecessary file from {model_args.model_name_or_path}") + os.system(f"rm {saved_dir}/*.bin* {saved_dir}/*.safetensors*") print(f"Save merged model to {saved_dir}") torch.save(model.state_dict(), os.path.join(saved_dir, "pytorch_model.bin")) if finetune_args.delta == 'ssf': diff --git a/tests/deltatuner/finetune/merge_model/readme.md b/tests/deltatuner/merge_model/readme.md similarity index 100% rename from tests/deltatuner/finetune/merge_model/readme.md rename to tests/deltatuner/merge_model/readme.md diff --git a/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh b/tests/deltatuner/merge_model/ssf-merge-test.sh similarity index 98% rename from tests/deltatuner/finetune/merge_model/ssf-merge-test.sh rename to tests/deltatuner/merge_model/ssf-merge-test.sh index 7fd55b5bf..f1bfbcefe 100755 --- a/tests/deltatuner/finetune/merge_model/ssf-merge-test.sh +++ b/tests/deltatuner/merge_model/ssf-merge-test.sh @@ -37,6 +37,7 @@ python example/instruction_tuning_pipeline/finetune_clm.py \ --log_level info \ --trust_remote_code True \ --no_cuda \ + --bf16 True \ --output_dir $DATA_PATH"/dtuner_test/models/llama2-7b-ssf-denas-bf16-merge/eval_merge" \ --debugs