メインコンテンツへスキップ
Hugging Face Accelerate は、同じ PyTorch コードをあらゆる分散構成で実行できるようにし、大規模なモデルのトレーニングと推論を簡素化するライブラリです。 Accelerate には W&B トラッカーが含まれており、このページでは、それを使用して分散トレーニングの run から W&B にメトリクス、設定、アーティファクトをログする方法を紹介します。詳細は、Hugging Face の Accelerate Trackers を参照してください。

Accelerate でログする

このセクションでは、トレーニング中に実験データを W&B にログするように Accelerate を設定する方法を説明します。Accelerate と W&B の使用を開始するには、以下の疑似コードを参照してください。
さらに詳しく説明すると、次のとおりです。
  1. Accelerator クラスを初期化する際に log_with="wandb" を渡します。
  2. init_trackers method を呼び出し、次を渡します。
    • project_name でプロジェクト名を渡す。
    • wandb.init() に渡したい任意のパラメーターを、ネストした dict として init_kwargs に渡す。
    • wandb run にログしたいその他の実験設定情報を config で渡す。
  3. W&B にログするには wandb.Run.log() method を使用します。step 引数は省略可能です。
  4. トレーニングが完了したら .end_training() を呼び出します。

W&Bトラッカーにアクセスする

Accelerate が W&B にログを記録した後で、アーティファクト、カスタム チャート、またはトラッカーでは公開されていないその他のデータをログするために、基盤となる W&B の Run オブジェクトへ直接アクセスしたい場合があります。W&Bトラッカーにアクセスするには、Accelerator.get_tracker() method を使用します。トラッカーの .name 属性に対応する文字列を渡すと、main プロセス上のトラッカーが返されます。
あとは、通常どおりwandbのrunオブジェクトを操作できます。
Accelerate に組み込まれたトラッカーは、自動的に適切なプロセスで実行されます。そのため、トラッカーをメインプロセスでのみ実行する必要がある場合も、自動的にそのように動作します。Accelerate のラップを完全に外すには、次のようにすれば同じ結果を得られます。

Accelerate 関連記事

W&B と併用した Accelerate のより詳しい walkthrough については、以下の記事をご覧ください。