始める無料で始める

8-bit Adam オプティマイザーのセットアップ

Transformer モデルをリアルタイム言語翻訳に向けて学習させているものの、Adafactor では効果的に学習が進まないことがわかりました。そこで、8-bit Adam オプティマイザーを試してみましょう。このオプティマイザーを使うと、通常の Adam と比べてメモリ使用量を約 75% 削減できます。

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}")
コードを編集して実行