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

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.rhkb.cn/news/281426.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCL点云处理之中值计算(二百三十三)

PCL点云处理之中值计算(二百三十三) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 读取的点云是无序散乱的,点云坐标包括xyz三个维度,以常用的z高程维度为例,计算其高程中值,获取对应的点。 主要涉及到根据高程对点云进行排序的操作,下面是具体的代码和结果。 …

Git版本管理工具

前言: 本文记录学习使用 Git 版本管理工具的学习笔记,通过阅读参考链接中的博文和实际操作,快速的上手使用 Git 工具。 本文参考了引用链接博文里的内容。 引用: Git使用教程-配置管理 git reset详解-CSDN博客 3、Git使用不完全指南&am…

C语言每日一题07

一、题目 二、解析 逻辑与 &&、逻辑或 || 均有“短路”特性: 逻辑与&&“短路”:当逻辑与&&的左操作数为逻辑 “假“ 时,就足以判断该逻辑运算的结果为假了,故右操作数就不再被执行。 逻辑或||“短路”&#xff1a…

python中获取当前项目的目录

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 今天介绍一下,如何在python中获取当前项目所在的目录,而不是运行脚本的目录。 class ProjectPaths:# 初始化时获取当前脚本的路径staticmethoddef get_script_dir():…

Leetcode 994. 腐烂的橘子

心路历程: 一开始以为和刚做过的岛屿问题很像,只不过是把岛屿问题换成BFS去做,然后再加上一些计数的规则。结果做完后发现只能通过一半左右的测试用例,发现有一个逻辑错误在于,当腐烂的橘子位于两端时,可以…

4.1 用源文件写汇编代码

汇编语言 1. 源程序 1.1 伪指令 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行伪指令没有对应的机器指令,最终不被CPU所执行伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作 1.2…

【C++】—— 装饰器模式

目录 (一)什么是装饰器模式 (二)为什么要使用装饰器模式 (三)装饰器模式的实现步奏 (四)代码示例 (五)装饰器模式优缺点 (一)什么…

Codeforces Round 935 (Div. 3)A~E

A. Setting up Camp 题目分析: 有三种人,内向、外向、综合,内向必须独自一个帐篷,外向必须3个人一个帐篷,综合介于1~3人一个帐篷,我们发现非法情况只会存在外向的人凑不成3个人一个帐篷的情况,因外向不够可…

JavaEE--小Demo

目录 下载包 配置 修改文件 pom.xml application.properties 创建文件 HelloApi.java GreetingController.java Greeting.java DemoApplication.java 运行包 运行命令 mvn package cd target dir java -jar demo-0.0.1-SNAPSHOT.jar 浏览器测试结果 下载包 …

为什么大家都在“挺”鸿蒙?

试想某一天,应用软件能够在手机、电视、手表甚至汽车等设备上,实现无缝流转、纵享丝滑。 这不仅是畅想,而是鸿蒙正在布局的“遥遥领先”。 随着HarmonyOS NEXT鸿蒙星河版面向开发者开放申请、鸿蒙原生应用版图的基本成型,这个国…

智慧水务:雨季山区水域水务智能化监控与监测管理方案

一、方案背景 雨季的水务管理对于各区县来说,无疑是一项至关重要的任务。夏季雨水充沛,江河湖泊水位上涨,山洪、上游排水等情况时有发生,给各地的水务设施和防汛工作带来了严峻的挑战。针对区县的各类水域监管场景,需…

如何在edge上安装拓展weTab

1.点解管理拓展 2.点击获取拓展 3.搜索框输入"wetab"并搜索 4.点击获取按钮 5.点击之后跳出弹窗,点击"添加拓展" 6.回到拓展页面,找到wetab拓展,点击右侧启动拓展 7.打开新的界面,wetab已经启动 8.自定义界面 1. 右键图标可以进行删除操作 2.左下角有个设…

ts版本微信小程序在wxml保存文件不刷新页面的解决办法

将project.config.json中的skylineRenderEnable改为false "skylineRenderEnable": false

HTTP协议1

官网学习网址:HTTP | MDN 常规信息 常规请求头信息: 状态码: 200 正常响应 404 未找到资源 500 服务端一场的 3** 重定向 资源缓存 响应头信息: 客户端允许的请求方法类型 Access-Control-Allow-Methods: GET, POST, PUT, DELET…

flutter 局部view更新,dialog更新进度,dialog更新

局部更新有好几种方法,本次使用的是 StatefulBuilder 定义 customState去更新对话框内容 import package:flutter/cupertino.dart; import package:flutter/material.dart;class ProgressDialog {final BuildContext context;BuildContext? dialogContext;double _…

【FAQ】BSV区块链代码库常见问题解答

​​发表时间:2024年2月27日 BSV区块链协会上线了JavaScript和TypeScript SDK(即“标准开发工具包”)。TypeScript SDK旨在为开发者提供新版统一核心代码库,让开发者可以在BSV区块链上便捷地进行开发,尤其是开发那些可…

1.实用Qt:解决绘制圆角边框时,圆角锯齿问题

目录 问题描述 解决方案 方案1: 方案2: 结果示意图 问题描述 做UI的时候,我们很多时候需要给绘制一个圆角边框,初识Qt绘制的童鞋,可能绘制出来的圆角边框很是锯齿,而且粗细不均匀,如下图&…

掌握增长转化漏斗策略的秘诀:打造高效营销之道

在不断发展的销售和营销领域,传统战略通常遵循一条可预测的路径,引导潜在客户通过漏斗,最终实现销售。然而,一种有趣的方法颠覆了这一传统模式:增长漏斗策略。这种创新方法重新规划了客户旅程,强调了培养现…

如何在wps的excel表格里面使用动态gif图

1、新建excel表格,粘贴gif图到表格里面,鼠标右键选择超链接。 找到源文件, 鼠标放到图片上的时候,待有个小手图标,双击鼠标可以放大看到动态gif图。 这种方式需要确保链接的原始文件位置和名称不能变化!&a…

Java中的I/O讲解(超容易理解)(上篇)

如果想观看更多Java内容 可上我的个人主页关注我,地址子逸爱编程-CSDN博客https://blog.csdn.net/a15766649633?spm1000.2115.3001.5343使用工具 IntelliJ IDEA Community Edition 2023.1.4 使用语言 Java8 代码能力快速提升小方法,看完代码自己敲一…