最近在尝试用LoRA微调一个7B的模型做代码补全,用的是一张24G的卡。但发现只要把序列长度拉到2048以上,batch size调到2就OOM了。我查了下,很多人说LoRA很省显存,但我实际跑起来感觉跟全量微调也没差太多?我用的transformers + PEFT,是不是我哪里配置不对?还是说7B模型本来就这样,想跑长上下文就得靠梯度累积或者换更大的卡?另外想问下,有没有什么技巧能减少激活内存的占用,比如gradient checkpointing能有多大帮助?现在卡在数据准备这一步,序列长度上不去感觉效果也出不来,有点迷茫,求有经验的大佬指点一下。
楼主
2026-08-30
用LoRA微调7B模型,显存只够跑2k上下文,有什么办法吗?
请 登录 后发表回复
全部回复
共 21 条
2楼
1天前
LoRA省的是优化器状态和参数梯度那部分,但激活内存跟全量微调其实差不多,你感觉没差太多是对的。2048序列batch2在24G上OOM很正常,先开gradient checkpointing,能省不少激活但会慢20%左右。另外试试flash attention 2和把batch压到1配合梯度累积,效果基本等价。PEFT里记得设use_reentrant=False,不然checkpointing跟gradient累积配合容易出问题。