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