使用 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
____.____()