微调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訓練模式下的顯存占用。
總結
以上是生活随笔為你收集整理的微调baichuan2-7b遇到的显存坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入 K8s 网络原理(一)- Flan
- 下一篇: 抖音上超好听的神曲音乐,Python教你