首页 > 其他分享 >lora_adapter 模型和原模型合并成一个模型

lora_adapter 模型和原模型合并成一个模型

时间:2024-05-31 10:46:07浏览次数:19  
标签:name 模型 base path model lora adapter pretrained

lora 部分合并到原模型参数上

import torch
from peft import PeftModel
from transformers import AutoTokenizer, AutoModelForCausalLM, LlamaTokenizer
from transformers.generation.utils import GenerationConfig

 
def apply_lora(model_name_or_path, output_path, lora_path):
    print(f"Loading the base model from {model_name_or_path}")
    base_tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, use_fast=False, trust_remote_code=True)
    base = AutoModelForCausalLM.from_pretrained(model_name_or_path, device_map="cuda:0", torch_dtype=torch.bfloat16, trust_remote_code=True)
    # base.generation_config = GenerationConfig.from_pretrained(model_name_or_path)

    print(f"Loading the LoRA adapter from {lora_path}")
 
    lora_model = PeftModel.from_pretrained(
        base,
        lora_path,
        torch_dtype=torch.float16,
    )
 
    print("Applying the LoRA")
    model = lora_model.merge_and_unload()
 
    print(f"Saving the target model to {output_path}")
    model.save_pretrained(output_path)
    base_tokenizer.save_pretrained(output_path)


if __name__ == "__main__":
    lora_path = "/data2/xinyuuliu/LLaMA-Factory/saves/qwen/lora/orpo"
    model_path = "/data2/xinyuuliu/Qwen1.5-7B-Chat"
    output = "/data2/xinyuuliu/LLaMA-Factory/saves/qwen/lora/orpo/lora_merge"

    apply_lora(model_path,output,lora_path)

 

标签:name,模型,base,path,model,lora,adapter,pretrained
From: https://www.cnblogs.com/LiuXinyu12378/p/18224016

相关文章

  • 大模型备案全网最详细说明【+附件】
    大模型备案安全评估流程详细说明,见下图:大模型安全评估流程图算法备案安全评估流程详细说明,见下图:算法安全评估流程图大模型备案,大模型算法备案一、大模型算法备案的强制性二、生成式人工智能(大语言模型)安全评估要点三、大模型备案必备材料+重点说明四、线......
  • 【算法】范围尝试模型、已有字符串添加最少字符使其成为回文字符串
    1.概述给定一个字符串str,如果可以在str的任意位置添加宇符,请返回在添加字符最少的情況下,让str整体都是回文字符串的一种结果。【举例】str="ABA"str本身就是回文串,不需要添加字符,所以返回"ABA"str="AB"可以在’A'之前添加’B'使str整体都是回文串,故可以返回"BAB"......
  • 【高质量】2024数学建模国赛高质量模型代码(后续会更新)
    您的点赞收藏是我继续更新的最大动力!一定要点击如下的卡片,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=p7NSXMsx84bWyAk6hpFRbl3kgrdQxMAw&authKey=m9IkEKrLi8iEwumJoLC9c5NkUODKjR3UL%2B3JDTZsdxQKXBI2WrDn9Tqfq9YqG......
  • Java-IO-IO模型
    参考:UNIX下的五种IO模型10分钟看懂,JavaNIO底层原理Linux五种网络IO模式(阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO)1.什么是IO根据冯.诺依曼结构,计算机结构分为5大部分:运算器、控制器、存储器、输入设备、输出设备。操作系统为了保证稳定性和安全性,一个进......
  • Python信贷风控模型:梯度提升Adaboost,XGBoost,SGD, GBOOST, SVC,随机森林, KNN预测金
    原文链接:http://tecdat.cn/?p=26184 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于信贷风控模型的研究报告,包括一些图形和统计输出。在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何......
  • 模型节点操作学习笔记(Appendix)实验1 -- Tflite int8 删除最后的Round节点 (持续更新)
    背景如下:我要删除Round节点,同时看了一下,Dequantize和Quantize也是没有必要的。所以最好一起删除。原始项目地址:PINTO0309/hand-gesture-recognition-using-onnx:ThisisahandgesturerecognitionprogramthatreplacestheentireMediaPipeprocesswithONNX.Simultane......
  • 大模型中用到的归一化方法总结
    大模型中的归一化主要是为了解决LLM训练不稳定的问题LLM中归一化方法可以按照归一化方法来分,主要分为LayerNorm,BatchNorm,RMSNorm以及DeepNorm按照归一化位置来分类,包括postNorm和preNorm1.BatchNormBatchNorm主要对数据的一定的特征维度在batch数据中进行归一,一般来说应用......
  • 模型节点操作学习笔记(1)--SavedModel详解
    参考:使用SavedModel格式 | TensorFlowCore(google.cn) (持续更新)   SavedModel是一个包含序列化签名和运行这些签名所需的状态的目录,其中包含变量值和词汇表。$ls{mobilenet_save_path}assetsfingerprint.pbsaved_model.pbvariablesassets目......
  • USP技术提升大语言模型的零样本学习能力
     大语言模型(LLMs)在零样本和少样本学习能力上取得了显著进展,这通常通过上下文学习(in-contextlearning,ICL)和提示(prompting)来实现。然而,零样本性能通常较弱,因为缺乏指导和难以应用现有的自动提示设计方法。论文提出了一种名为UniversalSelf-AdaptivePrompting(USP)的自动提示......
  • 【软件测试】软件测试概念 | 测试用例 | BUG | 开发模型 | 测试模型 | 生命周期
    文章目录一、什么是软件测试1.什么是软件测试2.软件测试和调试的区别测试人员需要的素养二、软件测试概念1.需求1.需求的定义2.测试人员眼中的需求2.测试用例1.测试用例概念3.BUG软件错误4、开发模型和测试模型1.软件的生命周期2.开发模型1.瀑布模型2.螺旋模型3.......