Transformer 分布式训练代码
Transformer 分布式训练代码
目录
-
- Transformer 分布式训练代码
-
- 外层循环 `for epoch in range(num_epochs):`
- `sampler.set_epoch(epoch)`
- `model.train()`
- 初始化损失值
- 内层循环 `for batch in dataloader:`
- 数据移动到设备
- 梯度清零
- 前向传播
- 获取损失值
- 累加损失值
- 反向传播
- 参数更新:optimizer.step()
- 学习率调整:scheduler.step()
- 打印损失信息
- 保存 LoRA 权重
外层循环 for epoch in range(num_epochs):
for epoch in range(num_epochs):
这是一个外层循环,用于控制训练的轮数。num_epochs
是预先定义的训练轮数,意味着模型会对整个训练数据集进行 num_epochs
次完整的遍历。每一轮遍历被称为一个 epoch
,在每个 epoch
中,模型会逐渐学习到数据中的模