专栏名称: 包包算法笔记
数据挖掘、机器学习、深度学习、Kaggle竞赛分享与交流。
今天看啥  ›  专栏  ›  包包算法笔记

大模型SFT暗藏陷阱?梯度累计有坑

包包算法笔记  · 公众号  ·  · 2024-10-20 10:09
    

文章预览

在LLM的训练时,由于显存不足以支撑起大batch训练,通常大家都会采用一种策略:梯度累计(gradient accumulate)。这种方法允许模型在多个batch的梯度回传累计并求均值之后,再更新一次权重。这样做相当于模拟了一个更大的批量大小,而实际上并没有一次性处理那么多数据。这样做的好处是,它可以减少内存的使用,因为不需要一次性加载所有数据到GPU上,同时也可以享受等价大batch带来的训练的稳定性和模型的泛化能力。 但是近期大家发现了一个bug:对于几乎所有使用了梯度累积策略的库,包括Huggingface的一系列库,都暗藏了一个bug,这个bug尤其在LLM的后训练阶段影响显著: 使用梯度累计并不一定等价于大batch训练,会有非常明显的精度损失! https://github.com/huggingface/trl/issues/2175 如同上述issue描述的情况,图中bs表示batch size即梯度大小, gas表示 grad ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览