3. 作用:梯度检查点技术有以下几个作用: 减少内存压力:通过推迟部分计算和存储中间结果,梯度检查点技术降低了在反向传播过程中所需的内存量。这使得可以在有限的硬件资源下训练更大的模型。 支持大批量训练:使用大批量数据进行训练可以加快收敛速度和稳定性,但可能会导致内存问题。梯度检查点允许在大批量训练中有效...
当然不同环境和版本会有差异,但是大体上不会根本上出入,关于其中的实现,大家可以去查看. 说到底这个函数只是为了节约内存的作用,所以去掉这个,对于上述问题解决是可行,但是具体为什么加了这个之后,chatGLM3微调会出现问题,这个会在另一篇文章进行深究, 在参阅资料发现, 还有很多节约显存的方法,接下来进行一一介绍: 3...
作用 降低显存占用,但会延长训练时间。 介绍 模型在正向传播时往往需要存储激活值,以供反向传播时使用。由于网络中大量的激活值需要存储,从而消耗了显存。Gradient Checkpointing技术则在正向传播时,不存储当前节点的激活值,而是记录该激活值的计算方式,在反向传播时重新计算该节点的激活值,从而起到降低显存占用的作用。...
为方便说明,我们假设模型输入为(32, 768),这里的 32 表示batch_size,模型输出为(32, 768),使用 4 个GPU训练。nn.DataParallel起到的作用是将这 32 个样本拆成 4 份,发送给 4 个GPU 分别做 forward,然后生成 4 个大小为(8, 768)的输出,然后再将这 4 个输出都收集到cuda:0上并合并成(32, 768)。