一般
wandb.init
は私のトレーニングプロセスに何をしますか?
トレーニングスクリプトからwandb.init()
が呼ばれると、APIコールが行われ、サーバー上にrunオブジェクトが作成されます。新しいプロセスが開始され、メトリクスをストリーム化し、収集することで、すべてのスレッドとロジックを主プロセスから外すようにしています。スクリプトは通常通り実行され、ローカルファイルに書き込まれる一方で、別のプロセスがそれらをサーバーにストリーム化し、システムメトリクスも送信します。いつでもストリーミングをオフにするには、トレーニングディレクトリからwandb off
を実行するか、WANDB_MODE
環境変数を offline
に設定してください。
コードをテストするときにwandbを無効にできますか?
wandb.init(mode="disabled")
やWANDB_MODE=disabled
を使用することで、wandbはNOOPのように動作し、コードのテストに最適になります。
注意:wandb.init(mode="disabled")
を設定しても、wandb
はWANDB_CACHE_DIR
にアーティファクトを保存することを防ぎません
あなたのツールは、トレーニングデータを追跡または保存しますか?
wandb.config.update(...)
にSHAや他の一意の識別子を渡すことで、データセットをトレーニングのrunに関連付けることができます。W&Bは、wandb.save
がローカルファイル名で呼び出される場合にのみデータを保存します。
スムージングアルゴリズムに使用している式は何ですか?
TensorBoardと同じ指数平滑移動平均の式を使用しています。こちらで説明を見つけることができます。
スクリプトでランダムなrun名を取得する方法は?
wandb.run.save()
を呼び出してから、wandb.run.name
で名前を取得します。
.log()
と.summary
の違いは何ですか?
summaryはテーブルに表示される値であり、logは後でプロットするためにすべての値を保存します。
たとえば、精度が変わるたびにwandb.log
を呼び出すことができます。通常、.logを使用できます。wandb.log()
は、そのメトリクスに対してsummaryを手動で設定していない限り、デフォルトでsummary値も更新します。
散布図と並行座標プロットもsummary値を使用し、折れ線プロットは.logで設定したすべての値をプロットします。 まず、その理由は、一部の人々がサマリーを手動で設定したいと考えているためで、例えば最適な精度ではなく、最後にログされた精度を反映させたいといったことです。
W&BとTensorBoardの違いは何ですか?
私たちはTensorBoardの開発者たちを尊敬しており、TensorBoardとの連携を提供しています!私たちは、誰もが使える実験追跡ツールを改善することにインスパイアされました。W&Bの共同創設者たちは、OpenAIでTensorBoardに不満を持つユーザーに向けたツールを開発することにインスパイアされました。以下は、私たちが特に改善に注力したいくつかの点です。
- モデルの再現性: Weights & Biasesは、実験、探索、そして後でモデルを再現するために適しています。メトリクスだけでなく、ハイパーパラメーターやコードのバージョンも記録し、チェックポイントにモデルを保存できるようにして、プロジェクトが再現可能になるようにしています。
- 自動的な整理: プロジェクトを他の人に引き継いだり、休暇を取ったりすると、W&Bではこれまで試したモデルがすべて確認できるので、古い実験をやり直す時間を無駄にすることがありません。
- 高速で柔軟な統合: W&Bをプロジェクトに5分で追加できます。無料のオープンソースのPythonパッケージをインストールし、コードに2行追加するだけで、モデルを実行するたびにきれいにログされたメトリクスと記録が得られます。
- 持続的で集中管理されたダッシュボード: ローカルマシン、研究室のクラスター、クラウドのスポットインスタンスなど、モデルをトレーニングする場所に関わらず、同じ集中管理されたダッシュボードが得られます。異なるマシンからTensorBoardのファイルをコピーして整理する時間を節約できます。
- 強力なテーブル: 異なるモデルの結果を検索、フィルタ、並び替え、グループ化できます。何千ものモデルバージョンを一覧表示して、さまざまなタスクのパフォーマンスが高いモデルを見つけるのが簡単です。TensorBoard は大規模なプロジェクトでうまく動作するようには設計されていません。
- コラボレーションのためのツール: W&Bを使って、複雑な機械学習プロジェクトを整理します。W&Bへのリンクを簡単に共有できるだけでなく、プライベートチームを使って複数人が同じプロジェクトに結果を送信できます。また、インタラクティブな可視化を追加したり、作業内容をマークダウンで説明したりすることで、協力者との連携もサポートしています。これは、作業ログを残すためにも、上司に成果を報告するためにも、研究室で結果を発表するためにも便利です。
wandbはどのようにログをストリーミングし、ディスクに書き込みますか?
W&Bはメモリ内にキューイングするだけでなく、ディスクにイベントを書き込むことも非同期で行い、これによって障害が発生した場合やWANDB_MODE=offline
の場合に、ログされたデータを後で同期することができます。
ターミナルでは、ローカルのrunディレクトリへのパスが表示されます。このディレクトリには、上記のデータストアとなる.wandb
ファイルが含まれています。また、画像もログしている場合、クラウドストレージにアップロードする前に、そのディレクトリのmedia/images
に画像が書き込まれます。
複数のチャートで、異なる選択されたrunsを表示する方法は?
wandbレポートでは、以下の手順で行います。
- 複数のパネルグリッドを持つ。
- 各パネルグリッドのrunセットをフィルタリングするためにフィルタを追加します。これにより、各パネルで表示したいrunsを選択できます。
- パネルグリッドに表示したいチャートを作成します。
APIへのアクセスはどのように制御されていますか?
簡単のため、W&BはAPIキーを使用してAPIへのアクセス時に認証を行います。APIキーは、設定で見つけることができます。APIキーは安全に保存され、バージョン管理にチェックインされることはありません。個人用APIキーに加えて、チームにサービスアカウントユーザーを追加することができます。
W&BはSaaSのためのSSOをサポートしていますか?
はい、W&BはAuth0を介したSaaSのSingle Sign-On(SSO)設定をサポートしています。W&Bは、OIDC準拠のIdentity Provider(例:Okta、AzureADなど)とのSSOインテグレーションをサポートしています。OIDCプロバイダがある場合は、以下の手順に従ってください。
- Identity Provider上に
Single Page Application (SPA)
を作成します。 grant_type
をimplicit
フローに設定します。- コールバックURIを
https://wandb.auth0.com/login/callback
に設定します。
W&Bに必要なものは?
上記の設定が完了したら、お客様担当のカスタマーサクセスマネージャー(CSM)にご連絡いただき、アプリケーションに関連付けられたクライアントID
と発行元URL
をお知らせください。
その後、上記の詳細を持つAuth0接続を設定し、SSOを有効にします。
サービスアカウントとは何ですか?その利点は何ですか?
サービスアカウントは、チームに書き込む権限を持つAPIキーであり、特定のユーザーに関連付けられていません。サービスアカウントは、定期的な再トレーニング、ナイトリービルドなど、wandbにログを記録する自動化されたジョブのトラッキングに役立ちます。必要に応じて、環境変数 WANDB_USERNAME
を使用して、これらのマシン起動runsにユーザー名を関連付けることができます。
APIキーは、チーム設定ページ/teams/<your-team-name>
で取得できます。ここで新しいチームメンバーを招待します。サービスを選択し、サービスアカウントを追加するために作成をクリックします。
アクセスを回転させるか取り消す方法は?
個人用のAPIキーおよびサービスアカウントキーは、回転させたり取り消したりすることができます。新しいAPIキーまたはサービスアカウントユーザーを作成し、新しいキーを使用するようにスクリプトを再設定します。すべてのプロセスが再設定されたら、プロファイルまたはチームから古いAPIキーを削除できます。
同じマシン上でアカウントを切り替える方法は?
同じマシンで2つのW&Bアカウントを利用している場合、異なるAPIキー間で切り替える方法が必要になります。マシン上のファイルに両方のAPIキーを保存し、次のようなコードをリポジトリに追加します。これにより、ソースコントロールシステムに秘密キーを記録すことが潜在的に危険であるため、回避できます。
if os.path.exists("~/keys.json"):
os.environ["WANDB_API_KEY"] = json.loads("~/keys.json")["work_account"]
ダークモードはありますか?
はい。ダークモードを有効にする方法は以下の通りです。
https://wandb.ai/settings にてアカウント設定に移動します。
Beta Features セクションまでスクロールします。
Night mode オプションを切り替えます。