LLM4APR commited on
Commit
56986ea
1 Parent(s): cefa8c9

Upload 2 files

Browse files
Files changed (2) hide show
  1. merge.sh +13 -0
  2. merge_peft_adapters.py +46 -0
merge.sh ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # beam_size=1
2
+ # output_size=1
3
+ # input_dir=/data3/HuangKai/Dataset/TRANSFER_dataset/template_sec
4
+ max_input_size=2048
5
+ model_name=CodeLlama-70b-hf
6
+ output_dir=/mnt/share/huangk/Dataset/Transfer_dataset/RQ2/result_CodeLlama-70B/model_set_pr_2048_LORA
7
+
8
+ # mkdir -p $output_dir
9
+
10
+ python merge_peft_adapters.py \
11
+ --base_model_name_or_path codellama/$model_name \
12
+ --peft_model_path $output_dir/Epoch_1/ \
13
+ --push_to_hub \
merge_peft_adapters.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import AutoModelForCausalLM, AutoTokenizer
2
+ from peft import PeftModel
3
+ import torch
4
+
5
+ import os
6
+ import argparse
7
+
8
+ def get_args():
9
+ parser = argparse.ArgumentParser()
10
+ parser.add_argument("--base_model_name_or_path", type=str, default="bigcode/large-model")
11
+ parser.add_argument("--peft_model_path", type=str, default="/")
12
+ parser.add_argument("--push_to_hub", action="store_true", default=True)
13
+
14
+ return parser.parse_args()
15
+
16
+ def main():
17
+ args = get_args()
18
+
19
+ base_model = AutoModelForCausalLM.from_pretrained(
20
+ args.base_model_name_or_path,
21
+ return_dict=True,
22
+ # torch_dtype=torch.float16
23
+ )
24
+
25
+
26
+ model = PeftModel.from_pretrained(base_model, args.peft_model_path)
27
+ model = model.merge_and_unload()
28
+
29
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
30
+ tokenizer = AutoTokenizer.from_pretrained(args.base_model_name_or_path)
31
+
32
+ # if args.push_to_hub:
33
+ # print(f"Saving to hub ...")
34
+ # model.push_to_hub(f"{args.base_model_name_or_path}-merged", use_temp_dir=False, private=True)
35
+ # tokenizer.push_to_hub(f"{args.base_model_name_or_path}-merged", use_temp_dir=False, private=True)
36
+ # else:
37
+ # model.save_pretrained(f"{args.base_model_name_or_path}-merged")
38
+ # tokenizer.save_pretrained(f"{args.base_model_name_or_path}-merged")
39
+ # print(f"Model saved to {args.base_model_name_or_path}-merged")
40
+
41
+ model.save_pretrained(f"{args.peft_model_path}-merged")
42
+ tokenizer.save_pretrained(f"{args.peft_model_path}-merged")
43
+ print(f"Model saved to {args.peft_model_path}-merged")
44
+
45
+ if __name__ == "__main__" :
46
+ main()