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

Adafactor với Accelerator

Bạn đã chứng minh được nguyên mẫu (proof-of-concept) dùng Adafactor với Trainer để huấn luyện mô hình dịch ngôn ngữ với yêu cầu bộ nhớ thấp hơn. Giờ bạn muốn tự viết vòng lặp huấn luyện bằng Accelerator. Hãy xây dựng vòng lặp huấn luyện sử dụng Adafactor!

Hàm compute_optimizer_size() đã được định nghĩa sẵn. Một số đối tượng huấn luyện đã được nạp trước: model, train_dataloader, và accelerator. Adafactor đã được import sẵn từ torch.optim.

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

  • Truyền các tham số của mô hình vào Adafactor khi định nghĩa optimizer.
  • Truyền trạng thái của optimizer để in ra kích thước.

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.

# Pass the model parameters to Adafactor
optimizer = Adafactor(params=____.____())
model, optimizer, train_dataloader = accelerator.prepare(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)
    optimizer.step()
    optimizer.zero_grad()

# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(optimizer.state.____())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")  
Chỉnh sửa và Chạy Mã