インテグレーションを設計する
- wandb を必須の依存関係にするか、オプションの依存関係にするか。
- W&B データを保存またはアップロードせずに、ユーザーがライブラリを実行できるようにするか。
- ライブラリでログする設定値、メトリクス、アーティファクト。
- W&B Sweeps によるハイパーパラメーター調整をサポートするか。
- モデルやデータセットなどのアーティファクトを、組織の W&B Registry を通じて共有するか。
- 分散トレーニングや複数のプロセスをライブラリでどのように処理するか。
W&B のインストール方法を決める
W&B を依存関係として指定する
wandb を追加します。
requirements.txt ファイルの場合:
requirements.txt
pyproject.toml file の場合:
pyproject.toml
W&B をオプションの依存関係として扱う
wandb をインストールせずにライブラリをインストールできるようにします。
pyproject.toml で W&B をオプションの依存関係として宣言します。
pyproject.toml
ユーザー認証
wandb クライアントで使用できるようにしておく必要があります。
W&B は、CLI、環境変数、wandb.login() による認証をサポートしています。
APIキーを発行する
より手早く行うには、User Settings にアクセスしてAPIキーを作成してください。APIキーはすぐにコピーし、パスワードマネージャーなどの安全な場所に保存してください。
コマンドラインから認証する
WANDB_API_KEY を設定します。
Python から認証する
wandb.login() を自動的に呼び出さないでください。非対話型ワークフローが中断される可能性があります。
W&B をログすることを任意にする
run データを保存しない場合は
disabled を使用します。後でアップロードするためにデータをローカルに保存する場合は offline を使用します。
disabled モードを使用する
wandb.init() に mode="disabled" を渡します。
WANDB_MODE を設定します。
offline モードを使用する
wandb.init() に mode="offline" を指定します。
WANDB_MODE を設定します。
wandb.init() を呼び出す前に環境変数を設定します。
run を初期化する
wandb.init() を呼び出して、project とチーム entity を指定します。project を省略すると、W&B は run をデフォルトの "uncategorized" project に保存します。
トレーニング ループを囲むコンテキスト マネージャーとして wandb.init() を使用します。ブロックを抜けると、プロセスの終了前に W&B が run を終了し、保留中のデータを処理します。
たとえば、ライブラリに次のトレーニング ループがあるとします。
Python
wandb.init() に渡して、wandb.Run.log() でメトリクスをログします。
Python
設定とメトリクスをログする
設定値をログする
wandb.init()に渡して、ハイパーパラメーターやその他のメタデータを記録します。
わかりやすいキーとJSONシリアル化可能な値を使用します。
wandb.init() に渡します。
wandb.Run.config.update() を使用して追加します。
メトリクスをログする
wandb.Run.log()に渡します。
次のcode snippetは、トレーニングおよび検証のメトリクスをW&Bにログします。
Python
train/ や val/ などの接頭辞を使用して、関連するメトリクスをグループ化します。
サポートされているデータタイプ、自动的にトラッキングされるデータ、ベストプラクティスに沿ってログする方法については、メトリクスとデータをログするを参照してください。
モデルとデータセットをトラッキングするには、artifact を使用してモデルとデータセットをトラッキングするセクションを参照してください。
カスタムログ軸を定義する
wandb.Run.log() を呼び出すたびに、ステップが進みます。
wandb.Run.define_metric() を使用すると、エポックやグローバルステップなどの別の値に対してメトリクスをプロットできます。
次の例では、validation_loss の x 軸として x_axis_squared を定義します。ループの各反復で、x_axis_squared はインデックス i の二乗、validation_loss はランダムに生成された値です。
Python
アーティファクト でモデルとデータセットをトラッキングする
- ログするファイル。
- アーティファクトをログすることをオプションにするかどうか。
- チェックポイントをログする頻度。
- アーティファクトとエイリアスの命名方法。
- run の入力と出力を表すアーティファクト。
モデル チェックポイントをログする
Python
run の入力をトラッキングする
wandb.Run.use_artifact() を使用します。W&B はアーティファクトをrun の入力として記録します。
アーティファクトの名と、特定のバージョンのアーティファクトを参照するための任意のaliasを指定します。アーティファクトの名は、artifact_name:version または artifact_name:alias の形式です。
Python
run の出力をトラッキングする
wandb.Run.log_artifact() を使用して、アーティファクト を run の出力としてログします。
wandb.Artifact()を使用して アーティファクト を作成します。- 1 つ以上の file を アーティファクト に追加します。
wandb.Run.log_artifact()を使用して アーティファクト をログします。
アーティファクト をダウンロードする
アーティファクト を W&B Registry にリンクする
リンク先の Registry は、あらかじめ存在している必要があります。
ハイパーパラメーターを調整する
分散トレーニングをサポートする
- メインプロセスからのみログする。この方法では、メトリクスとアーティファクトの重複を回避できます。
- プロセスごとに1つのrunを作成し、共有の
group値を使用してrunをグループ化する。