8-bit Adam 옵티마이저 설정하기
실시간 언어 번역을 위한 Transformer 모델을 학습시키는 과정에서 Adafactor로는 학습이 제대로 이루어지지 않는 문제를 발견했습니다. 대안으로, Adam 대비 메모리를 약 75% 절감할 수 있는 8-bit Adam 옵티마이저를 사용해 보기로 합니다.
bitsandbytes 라이브러리는 bnb로 임포트되어 있고, TrainingArguments는 args로 정의되어 있으며, optimizer_grouped_parameters는 미리 로드되어 있습니다. 연습 문제를 실행하면 libbitsandbytes_cpu.so에 관한 경고 메시지가 출력될 수 있지만, 무시하고 진행하셔도 됩니다.
이 연습은 강의의 일부입니다
PyTorch로 AI 모델 효율적으로 학습시키기
연습 안내
bnb.optim의Adam8bit클래스를 사용하여 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}")