ログ記録に関する考慮事項
実験のメトリクスを追跡するにはwandb.Run.log() を使用します。
個別のメトリクス数
パフォーマンスを向上させるために、プロジェクト内の個別のメトリクスの総数は 10,000 未満に抑えてください。W&B はネストされた値を自動的にフラット化します。つまり、辞書を渡すと、W&B はそれをドット区切りの名前に変換します。config 値の場合、W&B は名前の中で 3 つのドットまでサポートします。summary 値の場合、W&B は 4 つのドットまでサポートします。
値のサイズ(Width)
1 つのログ記録値のサイズは 1 MB 未満に、1 回のwandb.Run.log() 呼び出しの合計サイズは 25 MB 未満に制限してください。この制限は、wandb.Image や wandb.Audio などの wandb.Media タイプには適用されません。
推奨量を超えるサイズの値をログに記録しても、データは保存され追跡されます。ただし、プロットの読み込みが遅くなる可能性があります。
メトリクスの頻度
記録するメトリクスに適したログ記録頻度を選択してください。一般的な目安として、サイズの大きい値(Wide values)は、小さい値よりも頻度を下げて記録してください。W&B の推奨値は以下の通りです:- スカラー:1 メトリクスあたり 100,000 ポイント未満
- メディア:1 メトリクスあたり 50,000 ポイント未満
- ヒストグラム:1 メトリクスあたり 10,000 ポイント未満
ガイドラインを超えても W&B はログデータの受け入れを継続しますが、ページの読み込みが遅くなる可能性があります。
Config のサイズ
Run config の合計サイズを 10 MB 未満に制限してください。大きな値を記録すると、プロジェクトの Workspace や Runs テーブルの操作が遅くなる可能性があります。Workspace に関する考慮事項
Run の数
読み込み時間を短縮するために、単一プロジェクト内の Runs の総数を以下の範囲内に抑えてください。- SaaS Cloud の場合:100,000 未満
- 専用クラウド または セルフマネージドの場合:10,000 未満
Workspace のパフォーマンス
このセクションでは、Workspace のパフォーマンスを最適化するためのヒントを紹介します。パネル数
デフォルトでは、Workspace は automatic モードになっており、ログに記録された各キーに対して標準パネルを生成します。大規模なプロジェクトの Workspace に多数のキーのパネルが含まれていると、読み込みや使用が遅くなることがあります。パフォーマンスを向上させるには、以下の操作が可能です。- Workspace を manual モードにリセットします。このモードでは、デフォルトでパネルは含まれません。
- Quick add を使用して、可視化が必要なキーのパネルのみを選択的に追加します。
未使用のパネルを 1 つずつ削除しても、パフォーマンスへの影響はほとんどありません。代わりに、Workspace をリセットして、必要なパネルだけを再度追加してください。
セクション数
Workspace 内に数百のセクションがあると、パフォーマンスが低下する可能性があります。メトリクスのハイレベルなグループ化に基づいてセクションを作成し、メトリクスごとに 1 つのセクションを作成するようなアンチパターンを避けることを検討してください。 セクションが多すぎてパフォーマンスが遅い場合は、Workspace の設定でセクションをサフィックスではなくプレフィックスで作成するように変更することを検討してください。これによりセクション数が減り、パフォーマンスが向上する可能性があります。
メトリクス数
1 Run あたり 5,000 から 100,000 のメトリクスをログに記録する場合、W&B は manual workspace の使用を推奨します。Manual モードでは、異なるメトリクスのセットを探索する際に、パネルをまとめて簡単に追加・削除できます。プロットのセットを絞り込むことで、Workspace の読み込みが速くなります。プロットされていないメトリクスも、通常どおり収集・保存されます。 Workspace を manual モードにリセットするには、Workspace のアクションメニュー... をクリックし、Reset workspace をクリックします。Workspace をリセットしても、保存されている Runs のメトリクスには影響しません。Workspace パネル管理 を参照してください。
ファイル数
1 つの Run でアップロードされるファイルの総数を 1,000 未満に抑えてください。大量のファイルをログに記録する必要がある場合は、W&B Artifacts を使用できます。1 つの Run で 1,000 ファイルを超えると、Run ページの表示が遅くなる可能性があります。Reports vs. Workspaces
Report は、パネル、テキスト、メディアを自由に配置できる構成で、洞察を同僚と簡単に共有できます。 対照的に、Workspace は、数百から数十万の Runs にわたる数十から数千のメトリクスを、高密度かつパフォーマンス高く分析することを可能にします。Workspace は、Reports と比較してキャッシュ、クエリ、読み込み機能が最適化されています。プレゼンテーションよりも分析が主な目的であるプロジェクトや、20 以上のプロットを同時に表示する必要がある場合には、Workspace が推奨されます。Python スクリプトのパフォーマンス
Python スクリプトのパフォーマンスが低下する要因がいくつかあります:- データのサイズが大きすぎる場合。データサイズが大きいと、トレーニングループに 1 ms 以上のオーバーヘッドが生じる可能性があります。
- ネットワークの速度と、W&B バックエンドの設定。
wandb.Run.log()を 1 秒間に数回以上呼び出す場合。これは、wandb.Run.log()が呼び出されるたびにトレーニングループに小さなレイテンシが加わるためです。
頻繁なログ記録によってトレーニング Run が遅くなっていますか?ログ記録戦略を変更してパフォーマンスを向上させる方法については、こちらの Colab を確認してください。
レート制限
W&B SaaS Cloud API は、システムの整合性を維持し、可用性を確保するためにレート制限を実装しています。この措置により、特定のユーザーが共有インフラストラクチャの使用可能なリソースを独占することを防ぎ、すべてのユーザーがサービスにアクセスし続けられるようにしています。さまざまな理由により、低いレート制限が適用される場合があります。レート制限は変更される可能性があります。
429 Rate limit exceeded エラーが発生し、レスポンスには レート制限 HTTP ヘッダー が含まれます。
レート制限 HTTP ヘッダー
以下の表は、レート制限 HTTP ヘッダーについて説明しています:| ヘッダー名 | 説明 |
|---|---|
| RateLimit-Limit | タイムウィンドウごとに利用可能なクォータの量(0 から 1000 の範囲でスケール) |
| RateLimit-Remaining | 現在のレート制限ウィンドウ内の残りのクォータ量(0 から 1000 の範囲でスケール) |
| RateLimit-Reset | 現在のクォータがリセットされるまでの秒数 |
メトリクスログ記録 API のレート制限
wandb.Run.log() は、トレーニングデータを W&B に記録します。この API は、オンラインまたは オフライン同期 のいずれかを通じて使用されます。いずれの場合も、ローリングタイムウィンドウ内でレート制限クォータが適用されます。これには、リクエストの総サイズとリクエストレート(一定期間内のリクエスト数)の制限が含まれます。
W&B は、W&B プロジェクトごとにレート制限を適用します。したがって、チーム内に 3 つのプロジェクトがある場合、各プロジェクトに独自のレート制限クォータがあります。有料プラン のユーザーは、無料プランよりも高いレート制限が設定されています。
レート制限に達すると、HTTP 429 Rate limit exceeded エラーが発生し、レスポンスには レート制限 HTTP ヘッダー が含まれます。
メトリクスログ記録 API のレート制限内に収めるための提案
レート制限を超えると、レート制限がリセットされるまでrun.finish() が遅れる可能性があります。これを避けるために、以下の戦略を検討してください:
- W&B Python SDK のバージョンを更新する:最新バージョンの W&B Python SDK を使用していることを確認してください。W&B Python SDK は定期的に更新され、リクエストの正常なリトライやクォータ使用の最適化のための強化されたメカニズムが含まれています。
- メトリクスのログ記録頻度を減らす: クォータを節約するために、メトリクスのログ記録頻度を最小限にします。例えば、すべてのエポックではなく、5 エポックごとにメトリクスを記録するようにコードを変更できます:
- 手動でのデータ同期:レート制限がかかっている間、W&B は Run データをローカルに保存します。コマンド
wandb sync <run-file-path>を使用して、手動でデータを同期できます。詳細はwandb syncリファレンスを参照してください。
GraphQL API のレート制限
W&B Models UI および SDK の Public API は、データの照会や変更のためにサーバーに GraphQL リクエストを送信します。SaaS Cloud におけるすべての GraphQL リクエストに対して、W&B は、未認証のリクエストについては IP アドレスごとに、認証済みのリクエストについてはユーザーごとにレート制限を適用します。制限は固定タイムウィンドウ内のリクエストレート(1 秒あたりのリクエスト数)に基づいており、料金プランによってデフォルトの制限が決まります。プロジェクトパスを指定する関連 SDK リクエスト(レポート、Runs、アーティファクトなど)の場合、W&B はプロジェクトごとにデータベースのクエリ時間で測定されるレート制限を適用します。 Teams および Enterprise プラン のユーザーは、無料プランよりも高いレート制限が適用されます。 W&B Models SDK の Public API の使用中にレート制限に達すると、標準出力にエラーを示す関連メッセージが表示されます。 レート制限に達すると、HTTP429 Rate limit exceeded エラーが発生し、レスポンスには レート制限 HTTP ヘッダー が含まれます。
GraphQL API のレート制限内に収めるための提案
W&B Models SDK の Public API を使用して大量のデータを取得する場合は、リクエスト間に少なくとも 1 秒の間隔を置くことを検討してください。HTTP429 Rate limit exceeded エラーが発生した場合、またはレスポンスヘッダーに RateLimit-Remaining=0 が表示された場合は、RateLimit-Reset で指定された秒数待機してから再試行してください。
ブラウザに関する考慮事項
W&B アプリはメモリを多く消費する可能性があり、Chrome での動作が最適です。コンピュータのメモリ量にもよりますが、W&B を 3 つ以上のタブで同時に開くとパフォーマンスが低下することがあります。予期せずパフォーマンスが低下した場合は、他のタブやアプリケーションを閉じることを検討してください。W&B へのパフォーマンス問題の報告
W&B はパフォーマンスを重視しており、ラグの報告はすべて調査します。調査を迅速に進めるために、読み込みが遅い問題を報告する際は、主要なメトリクスとパフォーマンスイベントをキャプチャする W&B 内蔵のパフォーマンスロガーの起動を検討してください。読み込みが遅いページの URL パラメータに&PERF_LOGGING を追加し、コンソールの出力をアカウントチームまたはサポート担当者と共有してください。
