微调baichuan2-7b遇到的显存坑

问题描述:

微调baichuan2-7b模型,验证一轮后继续训练第一个iteration显存大幅增加

项目链接:
https://github.com/wp931120/baichuan_sft_lora

具体描述:

由于某些原因,笔者是在transformers4.30.2、torch2.0.1,accelerate==0.22版本上进行实验。

在训练过程中,发现显存溢出,考虑是句子长度问题,将1024设置为512。

然而训练还是显存溢出,通过调试分析,在评估验证集之前,显存大概占用11G左右,在评估过程中,显存依然保持11G左右,然而评估一结束,继续训练时,显存大幅增加,变为20G左右,后面不管怎么训练和评估,显存基本上都维持在20G。

然而根据项目作者的实验,明明12G左右的显存就够。

为此,后经群里大佬提示,考虑释放torch缓存或者更新transformers版本。

1、尝试各种方式在评估之后释放显存依然无效。

2、由于某些原因无法更新transformers版本,暂无法验证。

由于作者在原始代码上的更改并不多,遂怀疑是否是由于基座大模型(baichuan2-7b)的原因导致显存增加,因此将基座大模型换成chatglm2-6b,将数据处理的代码稍作修改后进行实验,发现模型在评估后继续训练显存没有大幅增加

至此,虽然不清楚为什么baichuan-7b在当前环境无法正常训练,可能的原因是当前版本的transformers不太足够支持baichuan-7b的训练,对chatglm2-6b训练是足够的。

注释:

卡2是chatglm2-6b在qlora训练模式下的显存占用,卡3是baichuan2-7b在qlora训练模式下的显存占用。

相关推荐
哥布林学者3 小时前
吴恩达深度学习课程四:计算机视觉 第四周:卷积网络应用 (一) 人脸识别
深度学习·ai
_XU4 小时前
AI工具如何重塑我的开发日常
前端·人工智能·深度学习
人工智能培训6 小时前
图神经网络初探(1)
人工智能·深度学习·知识图谱·群体智能·智能体
Das18 小时前
【机器学习】01_模型选择与评估
人工智能·算法·机器学习
吾在学习路9 小时前
故事型总结:Swin Transformer 是如何打破 Vision Transformer 壁垒的?
人工智能·深度学习·transformer
囊中之锥.9 小时前
《机器学习SVM从零到精通:图解最优超平面与软间隔实战》
算法·机器学习·支持向量机
光羽隹衡9 小时前
集成学习之随机森林
随机森林·机器学习·集成学习
啊巴矲9 小时前
小白从零开始勇闯人工智能:机器学习初级篇(随机森林)
人工智能·机器学习
格林威10 小时前
跨设备图像拼接:统一色彩偏差的8个核心策略,附OpenCV+Halcon实战代码!
人工智能·数码相机·opencv·机器学习·计算机视觉·视觉检测·工业相机
Hello.Reader10 小时前
Flink ML KNN 入门基于 Table API 的近邻分类
机器学习·分类·flink