Skip to main content
このガイドでは、W&B を Python ライブラリ、フレームワーク、SDK に統合するためのパターンを説明します。依存関係の管理、認証、任意でログすること、run の初期化、アーティファクト、ハイパーパラメーター調整、分散実行を扱います。 単一のトレーニングスクリプトやノートブックではなく、再利用可能なライブラリコードにわたるインテグレーションを実装する場合は、このガイドを使用してください。W&B の概要については、実験管理を参照してください。

インテグレーションを設計する

ライブラリに W&B を追加する前に、次の点を決めてください。
  • wandb を必須の依存関係にするか、オプションの依存関係にするか。
  • ユーザーが W&B のデータを保存またはアップロードせずにライブラリを実行できるようにするか。
  • ライブラリでどの設定値、メトリクス、アーティファクトをログするか。
  • W&B Sweeps によるハイパーパラメーター調整をサポートするか。
  • モデルやデータセットなどのアーティファクトを、組織の Registry を通じて共有するか。
  • ライブラリで分散トレーニングと複数のプロセスをどのように扱うか。
これらの決定によって、ライブラリが W&B をインポートする方法、run のライフサイクルを管理する方法、W&B を使用できない場合の動作が決まります。

W&B のインストール方法を決める

ライブラリとともに W&B を自動的にインストールするか、オプションの機能として提供するかを選択します。

W&B を必須の依存関係にする

W&B がライブラリの中核を担う場合は、依存関係に wandb を追加します。 requirements.txt ファイルの場合:
requirements.txt
pyproject.toml ファイルの場合:
pyproject.toml
インテグレーションで使用する W&B の機能に基づいて、互換性のあるバージョン範囲を指定することを検討してください。

W&B をオプションの依存関係にする

W&B がオプションの機能である場合は、wandb なしでライブラリをインストールできるようにします。 pyproject.toml で W&B をオプションの依存関係として宣言します。
pyproject.toml
次に、以下のコマンドでインテグレーションをインストールします。

ユーザーを認証する

W&B は APIキーを使用してユーザーとマシンを認証します。ライブラリから run をログするには、まず APIキーを発行し、wandb クライアントで使用できるようにする必要があります。 W&B は CLI、環境変数、wandb.login() による認証をサポートしています。

APIキーを作成する

より簡単な方法として、User Settings に移動して APIキーを作成することもできます。作成した APIキーはすぐにコピーし、パスワードマネージャーなどの安全な場所に保存してください。

Command Line から認証する

ターミナルで次のコマンドを実行します。
W&B に APIキーの入力を求められます。 または、WANDB_API_KEY 環境変数を設定します。
詳しくは、環境変数を参照してください。

Python から認証する

インタラクティブな Python 環境またはノートブックで、次のコードを実行します。
再利用可能なライブラリのコードから wandb.login() を自動的に呼び出さないでください。非対話型のワークフローが中断される可能性があります。

W&B ロギングを任意にする

W&B が run データを保存またはアップロードするかどうかを選択します。 run データを保存しない場合は disabled を使用します。データをローカルに保存して後でアップロードする場合は offline を使用します。

disabled モードを使用する

wandb.init() に mode="disabled" を渡します。
または、環境で WANDB_MODE を設定します:
W&B CLI を使用してモードを設定することもできます。

offline モードを使用する

wandb.init() に mode="offline" を渡します。
または、環境で WANDB_MODE を設定します。
Python では、wandb.init() を呼び出す前に環境変数を設定します:
W&B CLI でもモードを設定できます:
オフラインの run を後でアップロードするには、次のコマンドを実行します。

run の初期化

認証後、run を初期化して、ライブラリからメトリクス、設定値、アーティファクトをログします。 wandb.init() を呼び出し、project とチーム entity を指定します。project を省略すると、W&B はデフォルトの "uncategorized" project に run を保存します。 トレーニングループを囲むコンテキストマネージャーとして wandb.init() を使用します。ブロックを抜けると、W&B は run を終了し、プロセスが終了する前に保留中のデータを処理します。 たとえば、ライブラリに次のトレーニングループが含まれているとします。
Python
W&B を統合するには、コンテキストマネージャーで run を初期化し、設定値を wandb.init() に渡して、wandb.Run.log() でメトリクスをログします。
Python
wandb.init() を呼び出すタイミングW&B で監視したい処理の前に wandb.init() を呼び出します。トレーニングループ全体を囲むコンテキストマネージャーとして使用すると、run がデバッグに必要な標準出力、標準エラー出力、エラーメッセージを取得します。
次のセクションでは、ライブラリから設定値とメトリクスをログする方法を詳しく説明します。

設定とメトリクスをログする

設定値とメトリクスを W&B にログすることで、自分やチームのメンバーが実験を比較、フィルター、グループ化、再現できます。

設定値をログする

ハイパーパラメーターやその他のメタデータを記録するには、設定の辞書を wandb.init() に渡します。 わかりやすいキーと JSON にシリアライズ可能な値を使用します:
辞書を wandb.init() に渡します:
一部の値は、run の開始時点ではまだ確定していない場合があります。そのような値は、後から wandb.Run.config.update() で追加できます:
詳しくは、実験を設定するを参照してください。

メトリクスをログする

トレーニング中に損失や精度などのメトリクスをログします。各キーがメトリクス名、各値がメトリクスの値となる辞書を作成します。この辞書を wandb.Run.log() に渡します。 次のコードスニペットは、トレーニングと検証のメトリクスを W&B にログします:
Python
train/ や val/ などの接頭辞を使用して、関連するメトリクスをグループ化します。 サポートされるデータタイプをログする方法、自動的に追跡されるデータ、ベストプラクティスについては、メトリクスとデータをログするを参照してください。 モデルとデータセットをトラッキングするには、アーティファクトでモデルとデータセットをトラッキングするセクションを参照してください。

カスタムのログ軸を定義する

デフォルトでは、W&B はログされたメトリクスを、自動的に増加する step に対してプロットします。wandb.Run.log() を呼び出すたびに step が進みます。 wandb.Run.define_metric() を使用すると、エポックやグローバルステップなど、別の値に対してメトリクスをプロットできます。 次の例では、x_axis_squared を validation_loss の X 軸として定義します。ループの各反復処理で、x_axis_squared はインデックス i の二乗となり、validation_loss はランダムに生成された値となります。
Python
詳しくは、カスタムのログ軸を定義するを参照してください。

アーティファクトでモデルとデータセットをトラッキングする

メトリクスに加えて、ライブラリが生成または使用するモデルとデータセットを永続化することで、自分やチームのメンバーが run を再現して比較できます。 W&B Artifacts を使用して、ライブラリが生成または使用するモデル、データセット、その他のファイルをバージョン管理します。 アーティファクトのサポートを追加する前に、次の点を決めてください。
  • ログするファイル。
  • アーティファクトをログするかどうかを任意にするかどうか。
  • チェックポイントをログする頻度。
  • アーティファクト名とエイリアスの付け方。
  • run の入力と出力を表すアーティファクト。

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

モデル チェックポイントをアーティファクトとしてログすることで、トレーニング済みの重みを復元、バージョン管理、共有できます。アーティファクト名に run ID を含めて、各チェックポイントをソースの run に関連付けます。 次の例では、10 エポックごとにチェックポイントをログします。名に run ID を含むアーティファクトを作成し、ローカル ディレクトリからモデルの重みを追加して、カスタム エイリアスを付けてアーティファクトをログします。
Python

run の入力をトラッキングする

run がデータセットやモデル チェックポイントなどのアーティファクトを使用する場合は、wandb.Run.use_artifact() を使用します。W&B は、そのアーティファクトを run の入力として記録します。 アーティファクトの特定のバージョンを参照するには、アーティファクト名と、必要に応じてエイリアスを指定します。アーティファクト名の形式は artifact_name:version または artifact_name:alias です。
Python

run の出力をトラッキングする

wandb.Run.log_artifact() を使用すると、アーティファクトを run の出力としてログできます。
  1. wandb.Artifact() でアーティファクトを作成します。
  2. アーティファクトに 1 つ以上のファイルを追加します。
  3. wandb.Run.log_artifact() でアーティファクトをログします。
アーティファクトの作成、管理、使用について詳しくは、Artifacts を参照してください。

アーティファクトのダウンロード

W&B Public API を使用すると、run を作成したり、run の入力関係を記録したりせずに、アーティファクトをダウンロードできます。
詳細については、アーティファクトのダウンロードと使用を参照してください。 Registry を使用して、チーム間でアーティファクトのバージョンを共有、管理します。 アーティファクトのバージョンをリンクする前に、次の事項を決めてください。
  • 共有するアーティファクトのバージョン。
  • リンク先のコレクション。
  • パブリッシュ先のRegistry。
送信先の Registry は、あらかじめ作成されている必要があります。
次の例では、アーティファクトをログし、Registry 内のコレクションにリンクします。
詳しくは、アーティファクトのバージョンをコレクションにリンクするを参照してください。

ハイパーパラメーターを調整する

ライブラリがハイパーパラメーター調整をサポートしている場合は、W&B Sweeps を統合して、グリッド探索、ランダム探索、ベイズ探索を実行します。
W&B は、sweep 設定を基盤となるトレーニングロジックから分離することを推奨します。トレーニング関数は、sweep 固有のロジックに直接依存するのではなく、wandb.Run.config からパラメーターを読み取るようにしてください。
詳細については、Sweeps を参照してください。

分散トレーニングをサポートする

ライブラリが複数のプロセスまたはマシンをサポートする場合は、どのプロセスが run を作成してデータをログするかを定義します。 一般的なアプローチは次のとおりです。
  • メインプロセスからのみログします。この方法により、メトリクスやアーティファクトの重複を避けられます。
  • 各プロセスごとに1つの run を作成し、共有の group 値で run をグループ化します。
詳細については、分散トレーニング実験をログする を参照してください。
最終更新日 2026年9月30日