微调baichuan2-7b遇到的显存坑
問題描述:
微調(diào)baichuan2-7b模型,驗(yàn)證一輪后繼續(xù)訓(xùn)練第一個iteration顯存大幅增加
項(xiàng)目鏈接:
https://github.com/wp931120/baichuan_sft_lora
具體描述:
由于某些原因,筆者是在transformers4.30.2、torch2.0.1,accelerate==0.22版本上進(jìn)行實(shí)驗(yàn)。
在訓(xùn)練過程中,發(fā)現(xiàn)顯存溢出,考慮是句子長度問題,將1024設(shè)置為512。
然而訓(xùn)練還是顯存溢出,通過調(diào)試分析,在評估驗(yàn)證集之前,顯存大概占用11G左右,在評估過程中,顯存依然保持11G左右,然而評估一結(jié)束,繼續(xù)訓(xùn)練時,顯存大幅增加,變?yōu)?0G左右,后面不管怎么訓(xùn)練和評估,顯存基本上都維持在20G。
然而根據(jù)項(xiàng)目作者的實(shí)驗(yàn),明明12G左右的顯存就夠。
為此,后經(jīng)群里大佬提示,考慮釋放torch緩存或者更新transformers版本。
1、嘗試各種方式在評估之后釋放顯存依然無效。
2、由于某些原因無法更新transformers版本,暫無法驗(yàn)證。
由于作者在原始代碼上的更改并不多,遂懷疑是否是由于基座大模型(baichuan2-7b)的原因?qū)е嘛@存增加,因此將基座大模型換成chatglm2-6b,將數(shù)據(jù)處理的代碼稍作修改后進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)模型在評估后繼續(xù)訓(xùn)練顯存沒有大幅增加。
至此,雖然不清楚為什么baichuan-7b在當(dāng)前環(huán)境無法正常訓(xùn)練,可能的原因是當(dāng)前版本的transformers不太足夠支持baichuan-7b的訓(xùn)練,對chatglm2-6b訓(xùn)練是足夠的。
注釋:
卡2是chatglm2-6b在qlora訓(xùn)練模式下的顯存占用,卡3是baichuan2-7b在qlora訓(xùn)練模式下的顯存占用。
總結(jié)
以上是生活随笔為你收集整理的微调baichuan2-7b遇到的显存坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入 K8s 网络原理(一)- Flan
- 下一篇: Qt+FFmpeg仿VLC接收RTSP流