Gradient checkpointing dengan Accelerator
Anda sedang melanjutkan optimasi penggunaan memori agar dapat melatih model penerjemahan bahasa pada perangkat Anda. Gradient accumulation telah membantu Anda berlatih secara efektif pada ukuran batch yang lebih besar. Lanjutkan upaya ini dengan menambahkan gradient checkpointing untuk mengurangi jejak memori model Anda.
model, train_dataloader, dan accelerator telah didefinisikan sebelumnya.
Latihan ini merupakan bagian dari kursus
Pelatihan Model AI Efisien dengan PyTorch
Instruksi latihan
- Aktifkan gradient checkpointing pada
model. - Siapkan context manager
Acceleratoruntuk mengaktifkan gradient accumulation padamodel.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# Enable gradient checkpointing on the model
____.____()
for batch in train_dataloader:
with accelerator.accumulate(model):
inputs, targets = batch["input_ids"], batch["labels"]
# Get the outputs from a forward pass of the model
____ = ____(____, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
print(f"Loss = {loss}")