大模型训练踩坑1

最近训练大模型一直踩坑,所以想出一个板块来记录,今天主要说训练数据方面
大模型训练一定要注意几个点,之前只知道batch size很重要,忽视了其他两个点。

  1. batchsize:每一个GPU上面有一个dataloader,每一个dataloader一次给模型的数据数量
  2. 每个epoch见到的样本数量:GPU数量batchsizenum steps per epoch
  3. 每个epoch参数更新的次数:每一个全局accu_step更新一次。打个比方,比如有四张卡,假设没有设置accum step,那么就是四张卡并行的走完一个step,统计一下更新参数。如果设置了acc_step,那么久需要四张卡并行的走完acc_step这么多step之后更新一次参数
  4. 在并行训练的框架下面,比如torchrun,dataloader本身只是和单卡的batchsize有关

所以训练的时候,尤其需要注意更改数据的时候以上的超参数是否控制好了。尤其是当我们下卡不够的时候,我们设置了acc_step=m,那么这个时候每一个epoch的参数更新的次数就会变成原来(n)的 n/m倍,也就是说参数更新的次数变少了。

1 个赞

总结的很棒~

美中不足的是 rucbook 的无法使用 LaTeX 公式,我已经找到了插件,明天晚上试试。

cool!

1 个赞

论坛更新了 \LaTeX 公式,可以尝试一下 \text{batch_size}.

okok,下次一定哈哈

1 个赞