НачатьНачать бесплатно

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