关于微调所占用GPU内存的问题
您好,请问微调过程中是哪些因素占用了大量GPU内存?明明模型参数和输入的批数据都不大。
max_length, train_group_size, 以及batch size。如果占用过多,可以参考https://github.com/FlagOpen/FlagEmbedding/tree/master/examples/finetune#3-train 开启deepspeed和gradient
请问能具体介绍下训练过程中哪些变量会占用较多内存吗?在测试中,我发现程序在后向传播会出现OOM。
请问batch size大小会对微调模型的performance有影响吗?在数据量为5W左右时,batch size取多少合适?
请问能具体介绍下训练过程中哪些变量会占用较多内存吗?在测试中,我发现程序在后向传播会出现OOM。
主要是模型的中间结果,使用gradient checkpointing能大幅降低显存
请问batch size大小会对微调模型的performance有影响吗?在数据量为5W左右时,batch size取多少合适?
会有一定的影响。在使用难负样本的情况下,建议总的batch size可以开到128, 256的样子。
请问能具体介绍下训练过程中哪些变量会占用较多内存吗?在测试中,我发现程序在后向传播会出现OOM。
主要是模型的中间结果,使用gradient checkpointing能大幅降低显存
对于中间结果占用大量内存这一点,请问能提供论文或其它资料吗?我很想知道具体原因
请问能具体介绍下训练过程中哪些变量会占用较多内存吗?在测试中,我发现程序在后向传播会出现OOM。
主要是模型的中间结果,使用gradient checkpointing能大幅降低显存
对于中间结果占用大量内存这一点,请问能提供论文或其它资料吗?我很想知道具体原因
可参考DeepSpeed或者Megatron的论文,激活值显存。可以用激活值重计算解决
想请教一下,为何开启DeepSpeed之后没有显存上的节省,ZeRO1/2/3都没有效果,是因为模型本身原因不支持吗?但是ZeRO1/2应该只有优化器和梯度相关
想请教一下,为何开启DeepSpeed之后没有显存上的节省,ZeRO1/2/3都没有效果,是因为模型本身原因不支持吗?但是ZeRO1/2应该只有优化器和梯度相关
支持的。可以确认一下是否真开启了DeepSpeed,ZeRO2目前是无法使用的 。另外,优化器所占空间不大,所以可能节省不太明显。