使用 Accelerator 前后的训练循环
您希望将一个 PyTorch 训练循环修改为使用 Accelerator,以便在 MPRC 句子复述数据集上为您的语言模型简化翻译流程。请更新训练循环,使模型为分布式训练做好准备。
部分数据已预加载:
accelerator是Accelerator的一个实例train_dataloader、optimizer、model和lr_scheduler已使用Accelerator定义并完成准备
本练习是课程的一部分
使用 PyTorch 高效训练 AI 模型
练习说明
- 更新
.to(device)行,让 Accelerator 处理设备放置。 - 修改梯度计算以使用
Accelerator。
交互式实操练习
通过完成这段示例代码来试试这个练习。
for batch in train_dataloader:
optimizer.zero_grad()
inputs, targets = batch["input_ids"], batch["labels"]
# Update the lines so Accelerator handles device placement
inputs = inputs.to(device)
targets = targets.to(device)
outputs = model(inputs, labels=targets)
loss = outputs.loss
# Modify the gradient computation to use Accelerator
____.backward(____)
optimizer.step()
lr_scheduler.step()