ChatGLM2 大模型微调过程中遇到的一些坑及解决方法(更新中)

1. 模型下载问题

OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like bert-base-uncased is not the path to a directory containing a file named config.json.
Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.

       模型默认是从huggingface上下载的,需要科学上网。挂上梯子后即可下载,注意模型都帮你较大,会消耗很多流量。

2. 模型保存地址

       下载后,会占用C盘大量空间,对于重复下载的模型文件,可以进行删除。以下是其存储路径。

Windows系统
C:\Users\你的用户名\.cache\huggingface
Linux系统
       ~/.cache/huggingface/
3. 模型无法量化     

        默认情况下,模型以 FP16 精度加载,运行上述代码需要大概 13GB 显存。如果你的 GPU 显存有限,可以尝试以量化方式加载模型,使用方法如下:

model = AutoModel.from_pretrained("THUDM/chatglm2-6b-int4",trust_remote_code=True).cuda()
peft_config = LoraConfig(
    task_type=TaskType.CAUSAL_LM, inference_mode=False,
    r=8,
    lora_alpha=32, lora_dropout=0.1,
)

model = get_peft_model(model, peft_config)

        出现以下错误:

ValueError: Target module QuantizedLinear() is not supported. Currently, only `torch.nn.Linear` and `Conv1D` are supported.

       原因:以int4量化加载的模型是不支持进行微调的。

4. 分词器

       以chatglm为例,有“chatglm2-6b” "chatglm2-6b-int8" "chatglm2-6b-int4" 三个版本,但是分词器tokenizer是共用的,不受模型量化加载方式改变。所以我们在加载tokenizer的时候,只需设置就可以了:

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
5. int-8量化的模型无法下载

       在chatglm第一版里面,是提供int4 int8和fp16,三个版本的文件的,但是在chatglm2里,可以看到只给了fp16和int4两个版本的文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

过了那么多1024节才知道……

各位大佬好啊,相信程序员们都知道1024节,那么咱程序员一般会采取什么样的方式来度过程序员节呢?那我们就继续往下看哦,小编包您满意! 先来了解一下历史吧!1024节的起源可以追溯到2009年,当时俄…

windows排除扫描文件夹

搜索防火墙和网络保护 点击病毒和威胁防护 往下拉,找到排除项 添加排除项

【在飞书捷径中用HTTP请求】

在飞书捷径的请求体中的变量,注意外面要有个双引号。

转型做视频了,博客就是稿子,继续坚持写博客,同时发布视频,能写博客说明思路清晰了,能再讲明白,理解就更透彻了,紧跟上时代发展。

1,今天特别记录下,B站给开通了《合集》功能 最近使用视频制作了几个视频。播放量还不错,最好的已经到了 2.6K了。 然后粉丝也涨到了 200个。 添加链接描述 紧跟时代:从写博客到录视频,粉丝大涨,突破200个&…

扩散模型实战(十一):剖析Stable Diffusion Pipeline各个组件

推荐阅读列表: 扩散模型实战(一):基本原理介绍 扩散模型实战(二):扩散模型的发展 扩散模型实战(三):扩散模型的应用 扩散模型实战(四&#xff…

Linux下安装go

正式环境: 1、找到linux 版本go包 (Downloads - The Go Programming Language) 2、下载 wget https://dl.google.com/go/go1.17.5.linux-amd64.tar.gz3、解压到/usr/local (官方推荐) tar -C /usr/local -zxvf go1…

火狐挂代理访问问题Software is preventing Firefox from safely connecting to this site

1、报错 Software is preventing Firefox from safely connecting to this site2、解决步骤 火狐浏览器访问http://burp,右上角有下载按钮下载下来证书文件 在 Firefox 中设置证书颁发机构 (CA) 验证

小程序中打印机纸张都支持哪些尺寸?

在小程序中添加打印机功能是一项非常实用的功能,它可以让用户方便地将小程序中的内容打印出来。然而,当用户想要打印内容时,他们可能会关心打印纸张支持哪些尺寸。打印机分为四种打印机:小票、标签、发货单和电子面单。下面具体介…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大关键点分析

数字化时代银行网点厅堂营销需要抓住以下5大关键点: 1、精准识别客户:在数字化时代,银行网点厅堂营销的关键在于精准识别客户。通过利用大数据和人工智能技术,银行可以分析客户的行为和需求,从而更好地了解客户&#…

7 进制数字转换

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/base-7/description/ 给定一个整…

关于Unity Time.deltaTime的理解和使用

Unity中的Time.deltaTime是一个表示上一帧到当前帧所用时间的浮点数。 它可以让Unity应用程序能够以平滑的方式在不同的帧率下运行。 要深刻理解Time.deltaTime,首先得了解Unity引擎得工作原理。 Unity引擎以每秒帧数(FPS)的形式运行。 比…

《洛谷深入浅出基础篇》P3916 图的遍历——逆向搜索

上链接: P3916 图的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3916上题干: 题目描述 给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到…

Java --- JVM之垃圾回收相关知识概念

目录 一、System.gc() 二、内存溢出与内存泄漏 2.1、内存溢出 2.2、内存泄漏 三、Stop the world 四、垃圾回收的并行与并发 4.1、并发 4.2、并行 4.3、并行 vs 并发 4.4、垃圾回收的并发与并行 五、安全点与安全区域 5.1、安全点 5.2、安全区域 六、引用 6.1…

缓存穿透、缓存雪崩、缓存击穿问题的解决思路

一、缓存穿透 缓存穿透 :缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。 常见的解决方案有两种: 缓存空对象 优点:实现简单,维护方便 缺点&am…

C语言回文数(1106:回文数(函数专题))

题目描述 一个正整数&#xff0c;如果从左向 右读&#xff08;称之为正序数&#xff09;和从右向左读&#xff08;称之为倒序数&#xff09;是一样的&#xff0c;这样的数就叫回文数。输入两个整数m和n&#xff08;m<n)&#xff0c;输出区间[m&#xff0c;n]之间的回文数。 …

高压开关柜无线测温系统

高压开关柜无线测温系统是一种用于监测高压开关柜内部温度的系统。依托电易云-智慧电力物联网&#xff0c;它采用无线通信技术&#xff0c;实现对开关柜内部温度的实时监测和数据传输。下面我将为您介绍高压开关柜无线测温系统的组成、原理、功能以及优势。 一、系统组成 高压开…

麒麟KYSEC使用方法02-开启及关闭exectl

原文链接&#xff1a;麒麟KYSEC使用方法02-开启及关闭exectl hello&#xff0c;大家好啊&#xff0c;今天给大家带来麒麟KYLINOS的kysec使用方法系列文章第二篇内容----使用命令开启及关闭exectl&#xff0c;可执行程序策略有三种模式&#xff0c;off/enforing/warning&#xf…

win11,安装python,pip,和opencv

1,安装python 在应用商店&#xff0c;输入python&#xff0c;下载安装 2&#xff0c;安装pip 在cmd中&#xff0c;输入pip install SomePackage&#xff0c;安装某一个版本的pip 3,安装opencv 在cmd中&#xff0c;输入 pip3 install opencv-contrib-python -i https://pyp…

设计循环队列(c语言)

前言 在上一篇文章中我们了解了关于循环队列的基本特性&#xff1a; 1、当rear front时&#xff0c;表示队列为空 2、当rear 1 front时&#xff0c;表示队列已满 当我们需要实现循环队列时&#xff0c;通常会选择使用链表或数组来存储队列中的元素。而使用数组来实现循环队…

[点云分割] 平面分割

一、介绍 SACSegmentation&#xff08;Sample Consensus Segmentation&#xff09;是PCL中的一个分割算法&#xff0c;用于从点云中识别出具有相同几何形状的模型。该算法使用采样一致性&#xff08;Sample Consensus&#xff09;方法&#xff0c;通过迭代地随机采样一组数据点…