시작하기무료로 시작하기

Accelerator를 활용한 그래디언트 체크포인팅

언어 번역 모델을 디바이스에서 학습시킬 수 있도록 메모리 사용량을 계속해서 최적화하고 있습니다. 그래디언트 누적을 통해 더 큰 배치 크기로 효과적인 학습이 가능해졌습니다. 이제 여기에 그래디언트 체크포인팅을 추가하여 모델의 메모리 사용량을 줄여 보세요.

model, train_dataloader, accelerator는 미리 정의되어 있습니다.

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

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

강의 보기

연습 안내

  • model에 그래디언트 체크포인팅을 활성화하세요.
  • model에 그래디언트 누적을 적용할 수 있도록 Accelerator 컨텍스트 매니저를 설정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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}")
코드 편집 및 실행