시작하기무료로 시작하기

Accelerator와 8-bit Adam

모델의 메모리 요구량을 줄이기 위해 8-bit Adam을 사용하여 학습 루프를 커스터마이징하려고 합니다. 8-bit Adam을 적용한 학습 루프를 준비하세요.

8-bit Adam 옵티마이저는 adam_bnb_optim으로 정의되어 있다고 가정합니다. 그 외 학습 객체인 model, train_dataloader, lr_scheduler, accelerator도 이미 정의되어 있습니다.

이 연습은 강의의 일부입니다

PyTorch로 AI 모델 효율적으로 학습시키기

강의 보기

연습 안내

  • 분산 학습을 위해 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}")
코드 편집 및 실행