(新手亲测有效)bug解决:在用显存24G的3090采用LoRA微调ChatGLM-6B(FP16)时报错torch.OutOfMemoryError:CUDA out of Memory.

        理论上,ChatGLM-6B(FP16)模型部署运行时需要大约13G的显存空间即可。在采用LoRA对ChatGLM-6B(FP16)进行微调时,显存空间会占用到20G多一点(参考LLM - ChatGLM-6B Lora 微调与推理_chatglm2-6b训练lora-CSDN博客),按照这个情况,显存为24G的3090显卡是足够对其运行的。

        但是,在运行Chatglm_lora_tuning.py时出现的GPU(3090,显存24G)内存溢出(torch.OutOfMemoryError:CUDA out of Memory. Tried to allocate ......)的问题。

        因为,这个bug太过于广泛了,当时本人没有搜索到直接的解决方法,有一些通过将模型进行INT8或INT4量化后,减少对GPU内存的需求进行解决的方法。基于文章开头的理论分析,本人认为不是FP16模型导致的问题,因此,没有通过更换量化模型的方式进行解决。由于本人的电脑有两张GPU,另一张仍然是24G的3090,只是其它应用对其内存占有率较低(相对于GPU0少占用几百兆),采用GPU1运行不再出现该问题,但是出现了ValueError: Attempting to unscale FP16 gradients. 和  AttributeError: 'ChatGLMTokenizer' object has no attribute 'sp_tokenizer'. Did you mean: '_tokenize'?等bug。

        在解决了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.报错。

        解决方法参考:        (新手亲测有效)bug解决:ValueError: Attempting to unscale FP16 gradients. 反复出现的问题。-CSDN博客

     

要对 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、付费专栏及课程。

余额充值