微调alpaca-lora遇到的一些问题

news2024/9/23 15:26:11

1、环境简介 

环境:

        系统:Ubuntu

        torch:2.2.1

        python:3.10

        gpu:V100 16g

        peft:0.9.0

使用PEFT中的lora方式微调llama-2-7b-hf,项目地址:alpaca-lora

2、混合精度训练Tensor相互计算会报错

报错内容:

解决方法:

修改 finetune.py 内容

# 修改前
trainer.train(resume_from_checkpoint=resume_from_checkpoint)
# 修改后
with torch.autocast("cuda"): # 加上这行代码,精度自动转换
    trainer.train(resume_from_checkpoint=resume_from_checkpoint)

3、推理加载lora报错:SafetensorError: Error while deserializing header: InvalidHeaderDeserialization

  • peft(版本0.9.0) save_pretrained() 仅保存lora权重(不保存原模型权重)
  • huggingface博客:peft使用
  • huggingface文档:peft参数

推理时,加载lora权重时报错,报错内容为:

SafetensorError: Error while deserializing header: InvalidHeaderDeserialization

删除 finetune.py ​​​​​​​ 中部分代码内容

# 删除原因:该代码是为了将原模型的state_dict替换成仅仅包含lora的权重,新版本peft会自动仅保存lora权重,不会保存原本模型的权重
old_state_dict = model.state_dict
model.state_dict = (
        lambda self, *_, **__: get_peft_model_state_dict(
            self, old_state_dict()
        )
    ).__get__(model, type(model))

# 删除原因:torch.compile 与 peft(0.9.0版本)目前似乎不兼容,开启此代码会导致lora权重文件保存的是空字典,推理时加载lora权重会报错
if torch.__version__ >= "2" and sys.platform != "win32":
    model = torch.compile(model)

4、peft(版本0.9.0) save_pretrained 不保存 adapter_model.bin

lora权重保存结果:

修改 finetune.py 内容,加入参数, safe_serialization=False

# 修改前
model.save_pretrained("保存目录")
# 修改后
model.save_pretrained("保存目录",safe_serialization=False)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1534547.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海外重要行业媒体:知名服务商IntoTheBlock现已集成波场TRON网络分析数据

近日,领先链上分析服务提供商 IntoTheBlock 宣布已将波场 TRON 网络集成至其市场情报套件。该合作引发多家海外加密媒体关注,Crypto Slate、Crypto Briefing等均对此进行了报道,称此次合作意义深远,能帮助数百万用户更深入地了解波场TRON生态系统。 报道表示,波场TRON网络规模大…

中文编程入门(Lua5.4.6中文版)第十一章 Lua 模块与包 参考星争际霸游戏

在遥远的星争际霸世界中,代码模块就如同星际基地中的高科技仓库,储存着各类经过封装优化的战术指令和战略资源。自Lua 5.1版本起,星际编程者们引入了标准化的模块管理系统,使得不同战舰之间能够共享和调用核心战斗算法&#xff0c…

Linux-网络层IP协议、链路层以太网协议解析

目录 网络层:IP协议地址管理路由选择 链路层 网络层: 网络层:负责地址管理与路由选择 — IP协议,地址管理,路由选择 IP协议 数据格式: 4位协议版本:4-ipv4协议版本 4位首部长度:以…

Redis实战:缓存穿透及其解决思路 实战演示

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏Redis实战与进阶 本专栏讲解Redis从原理到实践 …

Python爬虫框架大比拼!从小爬虫到大数据采集|电商大数据采集API接口

在互联网时代,数据是无处不在的黄金。无论你是寻找小规模的数据采集任务还是大规模的网络爬虫项目,Python提供了丰富的爬虫框架供你选择。对于小型爬虫需求,你可能会喜欢使用requests库和Beautiful Soup(bs4库)这样的基本工具,它们…

想当初级爬虫工程师,需要把爬虫学到什么程度?

这篇文章会说说我自己的心得体验,关于爬虫、关于工作,仅供参考。 学到哪种程度 暂且把目标定位初级爬虫工程师,简单列一下吧: (必要部分) 语言选择:一般是了解Python、Java、Golang之一 熟悉…

C#操作像素替换图片中的指定颜色

待处理的图片,其特征是包含有限数量颜色,不同的颜色相互交叉使用,相同颜色并未完全连贯,需要将图片中的指定颜色替换为另一颜色。虽然很多图片处理工具都支持类似操作,最后还是自己动手编写简单的处理程序。   程序的…

尚硅谷SQL|数据库的创建,修改与删除

DDL:创建和管理表 DDL所有的操作都要慎重,尤其是删除,清空等。 创建数据库--->确认字段--->创建数据表---->插入数据 创建数据库 1.创建数据库:推荐使用方式3 #创建数据库 #方式1,使用的是默认字符集 create databa…

24计算机考研调剂 | (研究所)北京微电子技术研究所

北京微电子技术研究所2024年考研调剂信息 调剂信息 一、招生专业 二、调剂对象 统考科目为思想政治理论、英语(一)、数学(一);本科为电子科学与技术、微电子学、集成电路设计、电子信息工程、通信工程、计算机科学与…

有关Theano和PyTensor库

根据Github里面的介绍,PyTensor是源于Theano, Theano目前应该已经不再开发了,更新都是很多年前。 因此PyTensor在背景介绍中说 PyTensor is a fork of Aesara, which is a fork of Theano. Theano和PyTensor都是计算相关的库,可以…

报数游戏-第12届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第39讲。 报数游戏&#xf…

VMware 替代专题 | 浅析 VMware 与 SmartX 超融合 I/O 路径差异及其影响

不同的超融合软件,其读写机制有一定的差异性,I/O 路径也不尽相同,这使得他们在 I/O 读写效率以及资源占用上都有不同的表现。有兴趣着手构建超融合基础架构的用户,可能会希望了解更多关于 I/O 路径的细节,从而在实施之…

智能商品计划系统:鞋服品牌的未来价值引擎

在数字化浪潮席卷全球的今天,智能商品计划系统正成为鞋服品牌转型升级的重要引擎。那么,什么是智能商品计划系统?它又能给鞋服品牌带来怎样的价值?本文将深入探讨这一话题,为鞋服品牌企业指引方向。 智能商品计划系统…

京东云开发者:DDD 学习与感悟 —— 向屎山冲锋

原文地址:https://mp.weixin.qq.com/s/Hvq1ttBopbxypatVcKcLiA 软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计…

使用QGIS将shp数据导入到数据库

QGIS将shp数据导入到数据库步骤: 1、在QGIS中查看携带地理坐标的数据,可以右键查看数据的属性数据源,可以修改数据使用的编码(防止乱码),如下图 2、选择数据右键Export导出,在导出的页面可以选…

Springboot+vue的高校教师科研管理系统+数据库+报告+免费远程调试

项目介绍: Javaee项目,springboot vue前后端分离项目 本文设计了一个基于Springbootvue的前后端分离的高校教师科研管理系统,采用M(model)V(view)C(controller)三层体系结构&#xf…

09 事务和连接池

文章目录 properties文件连接池service层实现类dao层实现类dao层实现类 连接池类: 创建线程池静态常量,用于放连接。 创建Properties静态常量,用于解析properties文件 静态代码块中,解析properties文件,将解析结果用于创建连接池 …

innovus中path group 的策略和应用(下)

BPG(basic path group)和PG(path group)的异同 INVS默认使用了BPG,但是基于SDC理论下PG(path group)也是天然存在,两者在数据库里边有各自存在的方式,也可以共融共生中&…

100个openharmony开源demo:1.日历

准备用开发者手机写100个开源的demo不知道能不能实现,日拱一卒,期待蜕变。 第一个demo:日历,借鉴了网上的日历算法,自己用arkts写了界面和点击事件,各位可根据此demo写自己的日历选择器等组件。 1.目录结…

【JAVA笔记】IDEA配置本地Maven

文章目录 1 配置本地Maven1.1 Maven下载1.2 Maven安装与配置1.2.1 安装1.2.2 配置1.2.2.1 环境配置1.2.2.2 本地仓库配置 2 IDEA设置本地Maven 1 配置本地Maven 1.1 Maven下载 官网:http://maven.apache.org/下载地址:http://maven.apache.org/downloa…