Trainer を使った勾配チェックポインティング
勾配チェックポインティング(gradient checkpointing)を使ってモデルのメモリ使用量を削減しましょう。Accelerator を使った明示的なトレーニングループの書き方はすでに学びました。次は、Trainer を使ってトレーニングループを省略した、よりシンプルなインターフェイスを試します。trainer.train() の呼び出しにより、実行には少し時間がかかります。
勾配チェックポインティングを使用するために、Trainer の引数を設定しましょう。
この演習はコースの一部です
PyTorch による効率的な AI モデルトレーニング
演習の手順
TrainingArgumentsで勾配累積ステップ数を 4 に設定します。TrainingArgumentsで勾配チェックポインティングを有効にします。- トレーニング引数を
Trainerに渡します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
training_args = TrainingArguments(output_dir="./results",
evaluation_strategy="epoch",
# Use four gradient accumulation steps
gradient_accumulation_steps=____,
# Enable gradient checkpointing
gradient_checkpointing=____)
trainer = Trainer(model=model,
# Pass in the training arguments
args=____,
train_dataset=dataset["train"],
eval_dataset=dataset["validation"],
compute_metrics=compute_metrics)
trainer.train()