設定 8-bit Adam 最佳化器
你發現用 Adafactor 訓練即時語言翻譯的 Transformer 模型,學習效果不理想。作為替代方案,你決定嘗試 8-bit Adam 最佳化器,相較於 Adam 可將記憶體使用量大約降低 75%。
bitsandbytes 函式庫已匯入為 bnb,TrainingArguments 已指定為 args,而 optimizer_grouped_parameters 已預先載入。練習會列印關於 libbitsandbytes_cpu.so 的警告訊息,但你可以忽略該警告並完成這個練習。
本練習屬於課程
使用 PyTorch 高效訓練 AI 模型
練習說明
- 使用
bnb.optim中的Adam8bit類別建立 8-bit Adam 最佳化器。 - 將 beta1 與 beta2 參數傳入 8-bit Adam 最佳化器。
- 將 epsilon 參數傳入 8-bit Adam 最佳化器。
- 列印 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}")