模型微调中的 batch size
(批量大小)是指在一次训练迭代中用于更新模型参数的一组样本的数量。更具体地说,batch size
决定了在进行一次反向传播(backpropagation)和参数更新之前,模型处理的样本数量。以下是一些关键点:
-
全局和局部批量大小:
- 全局批量大小:整个训练过程中,每次迭代用于更新模型参数的总样本数。
- 局部批量大小:在分布式训练中,每个设备(例如GPU)上处理的样本数。
-
影响:
- 计算效率:较大的
batch size
可以提高计算效率,因为现代硬件(如GPU)在并行处理大批量数据时更高效。 - 模型收敛:
batch size
对模型的收敛速度和稳定性有显著影响。较小的batch size
可以使模型更新更频繁,但可能导致训练不稳定。较大的batch size
可以使训练更稳定,但需要更多内存。 - 泛化能力:一些研究表明,较小的
batch size
可能有助于模型的泛化能力(即在未见过的数据上表现良好),因为它引入了更多的噪声和随机性。
- 计算效率:较大的
-
选择适当的
batch size
:- 硬件限制:选择
batch size
时需要考虑可用的内存。较大的batch size
可能会耗尽内存,从而导致训练失败。 - 实验调整:通常需要通过实验调整
batch size
,找到在计算效率和模型性能之间的最佳平衡。
- 硬件限制:选择
示例
假设有一个数据集,其中包含 1000 个样本,并且您选择 batch size
为 100。这意味着每次迭代,模型将处理 100 个样本,并在处理完这 100 个样本后更新一次参数。因此,完整的训练数据集将被分成 10 个批次(1000/100 = 10)。