8-bit Adam dengan Accelerator
Anda ingin menyesuaikan loop pelatihan dengan 8-bit Adam untuk mengurangi kebutuhan memori model Anda. Siapkan loop dengan 8-bit Adam untuk pelatihan.
Asumsikan bahwa sebuah optimizer 8-bit Adam telah didefinisikan sebagai adam_bnb_optim. Objek pelatihan lainnya telah didefinisikan: model, train_dataloader, lr_scheduler, dan accelerator.
Latihan ini merupakan bagian dari kursus
Pelatihan Model AI Efisien dengan PyTorch
Instruksi latihan
- Siapkan optimizer 8-bit Adam untuk pelatihan terdistribusi.
- Perbarui parameter model dengan optimizer.
- Kosongkan gradien dengan optimizer.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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}")