Skip to main content
PyTorch Lightning は、PyTorch コードを整理し、分散トレーニングや 16 ビット精度といった高度な機能を追加するための軽量なラッパーを提供します。W&B は、ML 実験をログするための軽量なラッパーを提供します。この 2 つを自分で組み合わせる必要はありません。PyTorch Lightning ライブラリには、WandbLogger を通じて W&B が直接組み込まれています。 このページでは、WandbLogger を使用して、メトリクスの追跡、ハイパーパラメーターのログ、モデルチェックポイントのアーティファクトとしての保存、メディアのログ、および PyTorch Lightning と W&B によるマルチ GPU トレーニングの実行を行う方法を説明します。

Lightning との統合

以下のセクションでは、W&B での認証方法、wandb ライブラリのインストール方法、および Lightning の Trainer または Fabric インスタンスへの WandbLogger のアタッチ方法を説明します。
wandb.log() の使用について: WandbLogger は Trainer の global_step を使用して W&B にログします。コード内で直接 wandb.log() を追加で呼び出す場合は、wandb.log() で step 引数を使用しないでください。代わりに、他のメトリクスと同様に Trainer の global_step をログしてください:
インタラクティブなダッシュボード

サインアップして API キーを作成する

API キーは、お使いのマシンを W&B に対して認証するために使用します。API キーはユーザープロフィールから生成できます。
より簡単な方法として、User Settings に移動して APIキーを作成することもできます。作成した APIキーはすぐにコピーし、パスワードマネージャーなどの安全な場所に保存してください。
ユーザープロフィールから API キーを生成するには、次の手順に従います。
  1. 右上隅にあるユーザープロフィールのアイコンをクリックします。
  2. User Settings を選択し、API Keys セクションまでスクロールします。

wandb ライブラリをインストールしてログインする

wandb ライブラリをローカルにインストールしてログインするには:
  1. WANDB_API_KEY 環境変数 に APIキー を設定します。<> で囲まれた値を各自の値に置き換えてください:
  2. wandb ライブラリをインストールしてログインします。

PyTorch Lightning の WandbLogger を使用する

PyTorch Lightning には、メトリクス、モデルの重み、メディアをログする複数の WandbLogger クラスがあります。トレーニングのセットアップに合ったクラスを選択してください: Lightning と統合するには、WandbLogger をインスタンス化し、Lightning の Trainer または Fabric に渡してください。

一般的なロガー引数

次の表は WandbLogger の一般的なパラメーターを一覧にしています。すべてのロガー引数の詳細については、PyTorch Lightning のドキュメントを確認してください。

ハイパーパラメーターをログする

W&B でハイパーパラメーターをログすると、run を比較したり結果を再現したりできます。使用するロガーに合ったメソッドを使用します:

追加の設定 パラメーターをログする

ハイパーパラメーターと一緒に追加の設定値をログするには、run 設定を直接更新します:

勾配、パラメーターのヒストグラム、モデルトポロジをログする

学習中にモデルの勾配とパラメーターを監視するには、モデルオブジェクトを wandb_logger.watch() に渡します。詳細は PyTorch Lightning の WandbLogger のドキュメントを参照してください。

メトリクスをログする

WandbLogger を使用してメトリクスを W&B にログするには、LightningModule 内の training_step や validation_step などのメソッドで self.log('my_metric_name', metric_value) を呼び出します。次のコードスニペットは、メトリクスと LightningModule のハイパーパラメーターをログするように LightningModule を定義する方法を示しています。この例では、メトリクスの計算に torchmetrics ライブラリーを使用しています。

メトリクスの最小値/最大値をログする

W&B の define_metric 関数を使用すると、W&B のサマリー メトリクス がそのメトリクスの最小値、最大値、平均値、または最適値を表示するかどうかを定義できます。define_metric を使用しない場合、ログされた最後の値がサマリー メトリクス に表示されます。詳細については、ログ軸のカスタマイズガイド を参照してください。 W&B のサマリー メトリクス で最大の検証精度をトラッキングするには、トレーニングの開始時に wandb.define_metric() を 1 回だけ呼び出します。

モデルをチェックポイントする

W&B アーティファクトとしてチェックポイントを保存すると、run、alias、またはバージョンで後から取得できるバージョン管理されたモデルファイルが得られます。 W&B アーティファクト としてモデル チェックポイントを保存するには、 Lightning ModelCheckpoint コールバックを使用し、WandbLogger の log_model 引数を設定します。
latest と best のエイリアスは自動的に設定され、W&B アーティファクトからモデル チェックポイントを取得しやすくします。
ログしたモデル チェックポイントは W&B Artifacts UI で表示でき、完全なモデル リネージが含まれます (UI でのモデル チェックポイントの例 を参照) 。 最適なモデル チェックポイントをブックマークし、チーム全体で一元管理するには、W&B Model Registry にリンクします。 Registry では、タスクごとに最適なモデルを整理し、モデルのライフサイクルを管理し、ML lifecycle 全体でトラッキングと監査を行い、webhook またはジョブを使用して下流の action を オートメーション できます。

画像、テキストなどをログする

WandbLogger には、メディアをログするための log_image、log_text、log_table メソッドがあります。 wandb.log() または trainer.logger.experiment.log() を直接呼び出して、オーディオ、Molecules、ポイントクラウド、3D オブジェクトなどの他のメディアタイプをログすることもできます。
Lightning の コールバック システムを使用して、WandbLogger を介して W&B にログするタイミングを制御します。次の例では、検証画像と予測のサンプルをログします:

Lightning と W&B で複数の GPU を使用する

分散トレーニングを実行する場合、rank間で wandb.run をどのように参照するかによって、トレーニングが進行するかデッドロックするかが変わります。このセクションでは、その要件を説明し、推奨されるパターンを示します。 PyTorch Lightning は DDP インターフェイスを通じてマルチ GPU をサポートしています。ただし、PyTorch Lightning の設計上、GPU のインスタンス化の方法には注意が必要です。 Lightning では、トレーニングループ内の各 GPU (またはrank) をまったく同じ方法、同じ初期条件でインスタンス化する必要があります。しかし、wandb.run オブジェクトにアクセスできるのはrank 0 のプロセスのみで、rankが 0 以外のプロセスでは wandb.run = None となります。そのため、rankが 0 以外のプロセスが失敗する可能性があります。この場合、rank 0 のプロセスがすでにクラッシュしたrank 0 以外のプロセスの参加を待ち続け、デッドロックに陥ることがあります。 こうした理由から、トレーニングコードの構成方法には注意してください。推奨されるアプローチは、コードを wandb.run オブジェクトに依存しない形にすることです。

サンプル

エンドツーエンドのウォークスルーについては、Colab ノートブック付きのビデオチュートリアル に沿って進めることができます。

よくある質問

W&B は Lightning とどのように連携しますか?

この連携の中核となるのは Lightning の loggers API です。この API により、ログ記録コードの大部分をフレームワークに依存しない形で記述できます。Logger インスタンスは Lightning の Trainer に渡され、この API の充実したフックとコールバックの仕組みに基づいて呼び出されます。これにより、研究用のコードをエンジニアリングやログ記録のコードから明確に分離できます。

追加のコードなしで、インテグレーションは何をログしますか?

W&B はモデル チェックポイントを保存します。そこでは、それらを表示したり、将来の run で使用するためにダウンロードしたりできます。W&B はまた、GPU 使用量やネットワーク I/O などの システムメトリクス を取得します。ハードウェアや OS 情報などの環境情報を取得します。コード 状態 を取得します。これには、Git commit と diff patch、ノートブックの内容、セッション履歴 が含まれます。また、標準出力にプリントされたものもすべて取得します。

wandb.run をトレーニングのセットアップで使用する必要がある場合はどうすればよいですか?

アクセスする必要がある変数のスコープを自分で拡張する必要があります。つまり、すべてのプロセスで初期条件が同じであることを確認してください。
それらが該当する場合、os.environ["WANDB_DIR"] を使用してモデル チェックポイント のディレクトリを設定できます。これにより、ゼロ以外の rank のプロセスが wandb.run.dir にアクセスできます。
最終更新日 2026年9月30日