| | from transformers import AutoModelForCausalLM, AutoTokenizer |
| | from peft import PeftModel |
| | import torch |
| |
|
| | import os |
| | import argparse |
| |
|
| | def get_args(): |
| | parser = argparse.ArgumentParser() |
| | parser.add_argument("--base_model_name_or_path", type=str, default="bigcode/large-model") |
| | parser.add_argument("--peft_model_path", type=str, default="/") |
| | parser.add_argument("--push_to_hub", action="store_true", default=True) |
| |
|
| | return parser.parse_args() |
| |
|
| | def main(): |
| | args = get_args() |
| | |
| | base_model = AutoModelForCausalLM.from_pretrained( |
| | args.base_model_name_or_path, |
| | return_dict=True, |
| | torch_dtype=torch.float16 |
| | ) |
| |
|
| | model = PeftModel.from_pretrained(base_model, args.peft_model_path) |
| | model = model.merge_and_unload() |
| |
|
| | device = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
| | tokenizer = AutoTokenizer.from_pretrained(args.base_model_name_or_path) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | model.save_pretrained(f"{args.peft_model_path}-merged") |
| | tokenizer.save_pretrained(f"{args.peft_model_path}-merged") |
| | print(f"Model saved to {args.peft_model_path}-merged") |
| | |
| | if __name__ == "__main__" : |
| | main() |