当前位置: 首页 > news >正文

使用PEFT库将原始模型与LoRA权重合并

使用PEFT库将原始模型与LoRA权重合并

步骤如下:
  • 基础模型加载:需保持与LoRA训练时相同的模型配置
  • merge_and_unload():该方法会执行权重合并并移除LoRA层
  • 保存格式:合并后的模型保存为标准HuggingFace格式,可直接用于推理
  • 代码如下:

import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizerdef merge_and_save_model(base_model_path, lora_path, output_path):# 1. 加载基础模型和tokenizerprint(f"Loading base model from {base_model_path}")base_model = AutoModelForCausalLM.from_pretrained(base_model_path,torch_dtype=torch.bfloat16,device_map="auto",trust_remote_code=True)tokenizer = AutoTokenizer.from_pretrained(base_model_path,trust_remote_code=True)# 2. 加载LoRA适配器print(f"Loading LoRA adapter from {lora_path}")lora_model = PeftModel.from_pretrained(base_model,lora_path,torch_dtype=torch.float16)# 3. 合并权重并卸载适配器print("Merging LoRA weights with base model")merged_model = lora_model.merge_and_unload()# 4. 保存合并后的模型print(f"Saving merged model to {output_path}")merged_model.save_pretrained(output_path)tokenizer.save_pretrained(output_path)print("Merge completed successfully!")# 使用示例
if __name__ == "__main__":merge_and_save_model(base_model_path= 基础模型路径lora_path= lora训练后的权重output_path= 合并后模型的输出路径)

相关文章:

  • C++ asio网络编程(6)利用C11模拟伪闭包实现连接的安全回收
  • web3 前端常见错误类型以及错误捕获处理
  • WPS 调整多级编号
  • 【漫话机器学习系列】260.在前向神经网络中初始权重(Initializing Weights In Feedforward Neural Networks)
  • 驱动-Linux定时-timer_list
  • 嵌软面试每日一阅----通信协议篇(二)之TCP
  • ProceedingJoinPoint的认识
  • free void* 指令
  • 第九讲 | 模板进阶
  • manuskript开源程序是面向作家的开源工具
  • 游戏代码混淆的作用与应用分析
  • gRPC为什么高性能
  • RabbitMQ高级篇-MQ的可靠性
  • 2025-5-14Vue3快速上手
  • Git-学习笔记(粗略版)
  • 互联网大厂Java求职面试:构建高并发直播平台的架构设计与优化
  • pycharm中qthread中的run函数debug不上的问题
  • Ubnutu ADB 无法识别设备的解决方法
  • 第六章: SEO与交互指标 二
  • 解决Mawell1.29.2启动SQLException: You have an error in your SQL syntax问题
  • 广西:坚决拥护党中央对蓝天立进行审查调查的决定
  • 再现五千多年前“古国时代”:凌家滩遗址博物馆今开馆
  • 牛市早报|持续推进城市更新行动意见印发,证监会强化上市公司募资监管
  • 刘强东坐镇京东一线:管理层培训1800人次,最注重用户体验
  • 押井守在30年前创造的虚拟世界何以比当下更超前?
  • 男子恶意遗弃幼子获刑,最高法发布涉未成年人家庭保护典型案例