(新手亲测有效)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博客

     

在NVIDIA GeForce RTX 3090这样的高性能GPU上进行ChatGLM-6B模型的微调,可以让开发者享受到高效的训练和优化体验。P-tuning(参数微调)和LoRA(局部响应自适应)是提升模型性能的有效策略,特别适合资源受限的环境。下面是配置过程和需要注意的事项: 参考资源链接:[ChatGLM-6B:从预训练到微调的教程与部署](https://wenku.csdn.net/doc/5h9mofy88r?spm=1055.2569.3001.10343) 首先,确保你的RTX 3090驱动和CUDA环境配置正确。这可以通过NVIDIA官方网站获取最新驱动并安装。此外,确保CUDA Toolkit已经安装,并根据需要设置环境变量。 接下来,准备P-tuning或LoRA所需的预训练模型检查点,可以从HuggingFace或GitHub等平台获取。对于P-tuning,需要对模型的特定参数进行微调,这通常涉及对模型的小范围参数进行调整以适应特定任务,而LoRA则是通过调整模型的一部分权重,以实现更快的训练速度和更小的模型大小。 在实际配置过程中,可以通过PyTorch Lightning框架使用ZeRO优化器来进一步优化内存使用,这对于处理大规模模型尤其重要。在运行微调脚本之前,请确保安装了所有必要的依赖库,包括transformers和torch。此外,可以使用`--precision=bf16`来启用混合精度训练,这将有助于提高训练速度和减少内存使用。 配置过程中还需要注意以下几点: - 确保模型参数与你的硬件配置相匹配,特别是内存大小。虽然7GB的内存对于P-tuning和4位量化已足够,但更复杂的策略可能需要更大的内存。 - 在进行微调之前,建议在小规模数据集上进行试,以确保设置无误,并且模型可以正确地训练。 - 使用pip源从清华大学镜像服务器或其他可靠来源安装依赖,以避免下载速度慢和依赖包安装误的问题。 - 在训练过程中,监控GPU的使用情况,包括温度和功耗,确保硬件稳定运行,避免过热或电源供应不足。 完成以上步骤后,你将能够使用NVIDIA GeForce RTX 3090 GPU在你的项目中高效地进行ChatGLM-6B的P-tuning和LoRA微调。建议深入阅读《ChatGLM-6B:从预训练到微调的教程与部署》以获取更多细节和深入理解。这份资源不仅详细介绍了从模型预训练到微调的全过程,还提供了实际操作中的技巧和解决方案,使你能够充分挖掘模型的潜力。 参考资源链接:[ChatGLM-6B:从预训练到微调的教程与部署](https://wenku.csdn.net/doc/5h9mofy88r?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值