Bắt đầu ngayBắt đầu miễn phí

8-bit Adam với Accelerator

Bạn muốn tùy chỉnh vòng lặp huấn luyện với 8-bit Adam để giảm yêu cầu bộ nhớ của mô hình. Hãy chuẩn bị vòng lặp với 8-bit Adam để huấn luyện.

Giả sử một optimizer 8-bit Adam đã được định nghĩa là adam_bnb_optim. Các đối tượng huấn luyện khác đã được định nghĩa: model, train_dataloader, lr_scheduler, 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

Xem khóa học

Hướng dẫn bài tập

  • Chuẩn bị optimizer 8-bit Adam cho huấn luyện phân tán.
  • Cập nhật tham số mô hình bằng optimizer.
  • Đặt gradient về 0 bằng optimizer.

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.

# Prepare the 8-bit Adam optimizer for distributed training
model, adam_bnb_optim, train_dataloader, lr_scheduler = accelerator.prepare(model, ____, train_dataloader, lr_scheduler)

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
    adam_bnb_optim.____()
    lr_scheduler.step()
    # Zero the gradients
    adam_bnb_optim.____()
    print(f"Loss = {loss}")
Chỉnh sửa và Chạy Mã