(新手亲测有效)在消费级GPU上本地LoRA微调chatGLM-6B(FP16)

        在新手在消费级GPU上本地部署chatGLM-6B-CSDN博客文章中介绍了本地部署chatGLM-6B的过程,本文在此基础上实现对chatGLM-6B(FP16)的LoRA本地微调。

        硬件、软件环境的需求,如下所示,具体部署方式请参考如下:

一、硬件要求

        1、理论需求

        硬盘空间:可用空间不小于40G;
        显存要求:本人选用的ChatGLM-6B是FP16精度的,运行代码需要不少于14G的显存;后续要进行进一步的LoRA微调的话,显存最好不小于24G。如果硬件条件受限的话,可以考虑下载INT8或INT4量化后的ChatGLM-6B模型。

2、本人配置

        本人针对FP16精度的ChatGLM-6B进行部署,暂未尝试INT8、INT4量化模型。

        GPU:NVIDIA GeForce RTX 3090

        CPU:Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz

二、软件环境

        1、本人配置

        ubuntu20.04

        python 3.10.13

        numpy==1.26.3

        cuda:11.3

        torch==2.1.2+cu121

        transformers==4.37.1

        peft==0.3.0

三、微调过程

       微调过程,参考文章LLM - ChatGLM-6B Lora 微调与推理_chatglm2-6b训练lora-CSDN博客,作为一个新手小白的我,按照这篇文章成功完成了在消费级GPU上本地LoRA微调chatGLM-6B。

四、过程中的bug解决

        1、在用显存24G的3090采用LoRA微调ChatGLM-6B(FP16)时报错torch.OutOfMemoryError:CUDA out of Memory.

        解决办法详见:(新手亲测有效)bug解决:在用显存24G的3090采用LoRA微调ChatGLM-6B(FP16)时报错torch.OutOfMemoryError:CUDA out of Memory._chatglm2-6b cuda out of memory-CSDN博客文章浏览阅读358次,点赞9次,收藏8次。在解决了alueError: Attempting to unscale FP16 gradients. 和 AttributeError: 'ChatGLMTokenizer' object has no attribute 'sp_tokenizer'. Did you mean: '_tokenize'?这两个bug后,在GPU0上运行时,不再有torch.OutOfMemoryError:CUDA out of Memory.报错。_chatglm2-6b cuda out of memoryhttps://blog.csdn.net/weixin_41784510/article/details/135916265?spm=1001.2014.3001.5501

        2、ValueError: Attempting to unscale FP16 gradients. 反复出现的问题

        解决办法详见:(新手亲测有效)bug解决:ValueError: Attempting to unscale FP16 gradients. 反复出现的问题。-CSDN博客文章浏览阅读849次,点赞25次,收藏16次。在运用LoRA对ChatGLM-6B(FP16)大语音模型时,遇到了bug1:ValueError: Attempting to unscale FP16 gradients. 和 bug2: AttributeError: 'ChatGLMTokenizer' object has no attribute 'sp_tokenizer'. Did you mean: '_tokenize'? ,经过一波挫折后,终于解决,把解决的途径总结分享给大家。https://blog.csdn.net/weixin_41784510/article/details/135914663      朋友们,点赞收藏,不迷路啊!

  • 64
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要对 chatglm2-6b 进行微调以适应 LORA(低功耗广域网)环境,可以按照以下步骤进行操作: 1. 首先,执行 chatglm2_6b_lora.py 脚本来启动微调过程。可以使用命令行输入以下命令:`python chatglm2_6b_lora.py`。 2. 接下来,修改配置文件中的几个值。可以使用以下命令在配置文件中替换一些字符串: ``` sed -i 's/THUDM\/chatglm2-6b--//g' ./chatglm2_6b_lora/config.json sed -i 's/THUDM\/chatglm2-6b/\.\.\/chatglm2_6b_lora/g' ./chatglm2_6b_lora/config.json sed -i 's/THUDM\/chatglm2-6b--//g' ./chatglm2_6b_lora/tokenizer_config.json sed -i 's/THUDM\/ChatGLM2-6B/\.\.\/chatglm2_6b_lora/g' ./chatglm2_6b_lora/modeling_chatglm.py sed -i 's/THUDM\/chatglm2-6b/\.\.\/chatglm2_6b_lora/g' ./chatglm2_6b_lora/modeling_chatglm.py ``` 这些命令将修改配置文件中的一些路径,以使其适应 LORA 微调环境。 3. 最后,调用导出的模型进行微调。具体操作可以参考 ChatGLM-Efficient-Tuning 项目的 README 文件,首先克隆该项目的仓库,然后创建并激活一个新的 Python 环境,安装所需的依赖,并根据提供的数据集说明进行微调。可以使用以下命令执行这一步骤: ``` git clone https://github.com/hiyouga/ChatGLM-Efficient-Tuning.git conda create -n chatglm_etuning python=3.10 conda activate chatglm_etuning cd ChatGLM-Efficient-Tuning pip install -r requirements.txt ``` 然后,根据项目提供的数据集说明进行微调。 通过按照上述步骤进行操作,您可以对 chatglm2-6b 进行 LORA 微调。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [修改 ChatGLM2-6B 自我认知的 Lora 微调教程](https://blog.csdn.net/engchina/article/details/131492403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值