大语言模型参数微调过程(附完整代码)
2024-01-09 14:54:56
这是一个金融领域大模型微调的具体代码执行过程,具体代码可以详见git仓库。
1.配置参数
model_args,data_args,train_args,finetuning_args,generating_args = get_train_args()
2.加载分词tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_path)
3.读取config文件
config = AutoConfig.from_pretrained(model_path)
4.读取模型文件
model = AutoModelForCausalLM.from_pretrainded(model_path,config)
5.对模型初始化适配器
配置lora的参数,尽可能微调模型较少的参数。
model = init_adapter(model,args)
配置模型为训练模式
model = model.train()
6.开始训练模型
trianer = SftTrainer(model,args,tokenizer)
7.合并原始模型的权重与adapter的权重生成自己的模型
model_name_or_path = "your_LLM_model_path"
adapter_name_or_path = "your_lora_model_path"
save_path = "save_model_path"
tokenizer = AutoTokenizer.from_pretrained(
model_name_or_path,
trust_remote_code=True
)
model = AutoModelForCausalLM.from_pretrained(
model_name_or_path,
trust_remote_code=True,
low_cpu_mem_usage=True,
torch_dtype=torch.float16,
device_map="auto"
)
model = PeftModel.from_pretrained(model, adapter_name_or_path)
model = model.merge_and_unload()
tokenizer.save_pretrained(save_path)
model.save_pretrained(save_path)
全部代码
https://gitee.com/iwuzhichao/sft.git
文章来源:https://blog.csdn.net/weixin_44563460/article/details/135476694
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!