AdamW với Accelerator
Bạn muốn tùy biến vòng lặp huấn luyện bằng Accelerator và dùng AdamW như một bộ tối ưu chuẩn đối chứng cho mô hình dịch ngôn ngữ của mình. Hãy xây dựng vòng lặp huấn luyện để sử dụng AdamW.
Một số đối tượng phục vụ huấn luyện đã được nạp sẵn và định nghĩa, gồm có model, train_dataloader, và accelerator.
Bài tập này là một phần của khóa học
Huấn luyện Mô hình AI Hiệu quả với PyTorch
Hướng dẫn bài tập
- Chuẩn bị các đối tượng huấn luyện cho huấn luyện phân tán trước khi vào vòng lặp.
- Cập nhật các tham số mô hình trong vòng lặp huấn luyện.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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}")