시작하기무료로 시작하기

8-bit Adam 옵티마이저 설정하기

실시간 언어 번역을 위한 Transformer 모델을 학습시키는 과정에서 Adafactor로는 학습이 제대로 이루어지지 않는 문제를 발견했습니다. 대안으로, Adam 대비 메모리를 약 75% 절감할 수 있는 8-bit Adam 옵티마이저를 사용해 보기로 합니다.

bitsandbytes 라이브러리는 bnb로 임포트되어 있고, TrainingArgumentsargs로 정의되어 있으며, optimizer_grouped_parameters는 미리 로드되어 있습니다. 연습 문제를 실행하면 libbitsandbytes_cpu.so에 관한 경고 메시지가 출력될 수 있지만, 무시하고 진행하셔도 됩니다.

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

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

강의 보기

연습 안내

  • bnb.optimAdam8bit 클래스를 사용하여 8-bit Adam 옵티마이저를 인스턴스화하세요.
  • 8-bit Adam 옵티마이저에 beta1과 beta2 파라미터를 전달하세요.
  • 8-bit Adam 옵티마이저에 epsilon 파라미터를 전달하세요.
  • 8-bit Adam 옵티마이저의 입력 파라미터를 출력하세요.

실습형 인터랙티브 연습

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

# Instantiate the 8-bit Adam optimizer
adam_bnb_optim = bnb.optim.____(optimizer_grouped_parameters,
                                # Pass in the beta1 and beta2 parameters
                                betas=(args.____, args.____),
                                # Pass in the epsilon parameter
                                eps=args.____,
                                lr=args.learning_rate)

# Print the input parameters
print(f"beta1 = {args.adam_beta1}")
print(f"beta2 = {args.____}")
print(f"epsilon = {args.____}")
print(f"learning_rate = {args.learning_rate}")
코드 편집 및 실행