Gradient checkpointing з Accelerator
Ви продовжуєте оптимізувати використання пам’яті, щоб навчати свою модель перекладу мов на власному пристрої. Накопичення градієнта допомогло вам ефективно навчати на більших розмірах пакета. Продовжте цю роботу, додавши gradient checkpointing, щоб зменшити обсяг пам’яті, яку споживає ваша модель.
model, train_dataloader і accelerator уже визначені.
Ця вправа є частиною курсу
Ефективне тренування моделей ШІ з PyTorch
Інструкції до вправи
- Увімкніть gradient checkpointing для
model. - Налаштуйте контекстний менеджер
Accelerator, щоб увімкнути накопичення градієнта дляmodel.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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}")