使用 Accelerator 构建训练循环
您已经准备好为机器翻译服务实现训练循环。现在,您已经了解 Accelerator 如何为分布式训练改造 PyTorch 循环,便可以在训练循环中使用 Accelerator 类!
已预加载部分数据:
accelerator是Accelerator的一个实例train_dataloader、optimizer、model和lr_scheduler已使用Accelerator定义并完成准备
本练习是课程的一部分
使用 PyTorch 高效训练 AI 模型
练习说明
- 调用
optimizer将梯度清零。 - 更新模型参数。
- 更新
optimizer的学习率。
交互式实操练习
通过完成这段示例代码来试试这个练习。
for batch in train_dataloader:
# Call the optimizer to zero the gradients
____.____()
inputs, targets = batch["input_ids"], batch["labels"]
outputs = model(inputs, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
# Update the model's parameters
____.____()
# Update the learning rate of the optimizer
____.____()