始める無料で始める

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