使用 Accelerator 的 AdamW
你想用 Accelerator 客製化訓練迴圈,並以 AdamW 作為語言翻譯模型的基準最佳化器。請建立使用 AdamW 的訓練迴圈。
部分訓練物件已預先載入並定義,包括 model、train_dataloader 和 accelerator。
本練習屬於課程
使用 PyTorch 高效訓練 AI 模型
練習說明
- 在進入迴圈前,先將訓練物件準備為分散式訓練可用。
- 在訓練迴圈中更新模型參數。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
optimizer = AdamW(params=model.parameters())
# Prepare training objects for distributed training
model, optimizer, train_dataloader = ____.____(model, optimizer, train_dataloader)
for batch in train_dataloader:
inputs, targets = batch["input_ids"], batch["labels"]
outputs = model(inputs, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
# Update the model parameters
____.____()
optimizer.zero_grad()
print(f"Loss = {loss}")