wandb.init() の実行が遅い場合やメトリクスのアップロードが遅い場合、原因としては通常、ネットワーク遅延、大きなメディア ペイロード、ログ頻度が高いこと、または W&B service プロセスの起動が遅いことが挙げられます。
wandb.init() が遅い
wandb.init() は W&B API にアクセスして run を作成し、認証情報を確認します。数秒以上応答しない場合は、次を確認してください。
-
接続を確認する:
curl -I https://api.wandb.aiを実行して、お使いのマシンから W&B API に到達できることを確認してください。クラスター上のファイアウォールルールやプロキシ設定が一般的な原因です。 -
init のタイムアウトを延長する: 接続が断続的な場合は、
wandb.init()がタイムアウトするまでの時間を長くしてください。 -
テスト中はオフラインモードを使用する: 試行錯誤の際にリアルタイム同期が不要であれば、オフラインで実行して後で sync してください。
[TIMESTAMP]と[ID]は、run のタイムスタンプと ID に置き換えてください。
トレーニング中のメトリクスのアップロードが遅い
-
ログする頻度が高すぎる: 高速な GPU で毎ステップ
wandb.log()を呼び出すと、バックグラウンドスレッドがアップロードできる量を上回るデータが生成されることがあります。代わりに、N ステップごとにログしてください。 -
毎ステップ大きなメディアをログしている:
wandb.Image、wandb.Table、wandb.Videoオブジェクトは、スカラーのメトリクスよりも大幅にサイズが大きくなります。リッチメディアは毎ステップではなく、エポックごと、または N ステップごとにログしてください。 -
レート制限:
429 Rate limit exceededエラーが発生する場合は、rate limit exceeded エラーを修正するにはどうすればよいですか?を参照してください。
run の終了処理が遅い
wandb.finish() を呼び出した後 (またはスクリプトが終了した後) 、W&B はバッファリングされた残りのデータをフラッシュします。トレーニング中に大量のバックログがたまっている場合は、これに時間がかかることがあります。最後にまとめて処理するのではなく、トレーニング全体を通して適切な頻度でログするようにしてください。
デバッグログを使った診断
wandb/debug.log と wandb/debug-internal.log に書き込まれます。
詳細は、Experiments の制限とパフォーマンス および ネットワークの問題に対処するにはどうすればよいですか? を参照してください。
Runs Experiments 接続性