ПочатиПочніть безкоштовно

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}")
Редагувати та запускати код