
一个batch装多少数据batch size是事先定好的这属于“训练层面的超参数”属于算法层面的选择和硬件无关一次参数更新用多少个 token是算法层面的选择。这个数决定了梯度的噪声大小、学习率怎么配、训练多少步收敛它和GPU有多少显存无关。大模型预训练普遍使用几百万到几千万token的batch因为batch太小梯度噪声大学习率只能开得很小反而慢但是往往定的batch size相比于显存大小过大了放不进去。于是把它切成mb份每次算其中一份梯度累加mb次之后才凑齐“一个batch”的梯度再更新。数学上这和“一次算完一整个batch”得到的梯度是一样的。综上将batch进一步划分成多个microbatch其实是“显存放得下多少”决定的和算法无关。