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

本文介绍了如何在消费级GPU上部署和微调chatGLM-6B的FP16版本,包括硬件和软件环境设置,以及遇到并解决的torch.OutOfMemoryError和ValueError问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在新手在消费级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      朋友们,点赞收藏,不迷路啊!

要在NVIDIA GeForce RTX 3090 GPU上成功部署并微调ChatGLM-6B模型,首先需要确保你拥有足够了解P-tuning(参数微调)和LoRA(局部响应自适应)技术的基础。这两个技术都是为了优化模型在有限资源下的表现,特别是在处理大型模型时。 参考资源链接:[ChatGLM-6B:从预训练到微调的教程与部署](https://wenku.csdn.net/doc/5h9mofy88r?spm=1055.2569.3001.10343) P-tuning方法通过微调少量参数来适应特定任务,这有助于节省计算资源同时保持模型性能。LoRA则是通过调整模型的权重的子集来实现更高效的训练,它通过引入较少的参数来进行微调,从而减少内存和计算需求。 当使用NVIDIA GeForce RTX 3090进行模型微调时,应利用其强大的计算能力和较高的显存容量。在配置过程中,建议启用mixed precision训练,结合ZeRO优化,这些技术可以进一步提升训练效率并减少内存占用。对于量化,可以考虑将模型参数从FP32转换为FP16或更低位宽的格式,以进一步减小模型大小和加速计算。 在进行实际操作前,务必检查系统是否安装了必要的依赖库,包括PyTorch、transformers等,并确保通过设置pip源从清华大学等国内镜像服务器下载这些依赖,以提高下载速度和可靠性。同时,确保你的系统环境满足模型运行所需的Python版本及其他依赖项的要求。 部署模型后,你可以通过Gradio这样的界面库快速搭建交互式演示界面,将模型的潜力转化为实际可用的应用。整个过程涉及的配置和调试可能会比较复杂,建议参考《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、付费专栏及课程。

余额充值