Skip to main content
AdministratorAcademicUser Management
学生の方は、以下の手順でアカデミックプランを申請できます。
Artifacts
Artifacts は、親プロジェクトのアクセス権限を継承します。
  • プライベートプロジェクトでは、チームメンバーのみが Artifacts にアクセスできます。
  • パブリックプロジェクトでは、すべてのユーザーが Artifacts を読み取ることができますが、作成や変更ができるのはチームメンバーのみです。
  • オープンプロジェクトでは、すべてのユーザーが Artifacts の読み取りと書き込みを行えます。

Artifacts のワークフロー

このセクションでは、Artifacts の管理と編集のためのワークフローの概要を説明します。多くのワークフローでは、W&B に保存されたデータへのアクセスを提供する クライアントライブラリ のコンポーネントである W&B API を活用します。
Experiments
history オブジェクトは、 wandb.log で記録されたメトリクスを追跡します。API を使用して history オブジェクトにアクセスします。
api = wandb.Api()
run = api.run("username/project/run_id")
print(run.history())
Sweeps
W&B Sweep が開始されると、 Sweep configuration を変更することはできません。ただし、任意のテーブルビューに移動し、チェックボックスで Run を選択してから、 Create sweep メニューオプションを選択することで、以前の Run に基づいた新しい Sweep configuration を生成できます。
AdministratorUser Management
アカウントにシートを追加するには、以下の手順に従ってください。
  • 担当の Account Executive またはサポートチーム (support@wandb.com) にお問い合わせください。
  • 組織名(Organization name)と希望するシート数をお知らせください。
ExperimentsTablesCharts
Plotly または Bokeh の図を直接テーブルに統合することはサポートされていません。代わりに、図を HTML にエクスポートし、その HTML をテーブルに含めてください。以下に、インタラクティブな Plotly および Bokeh チャートを使用した例を示します。
import wandb
import plotly.express as px

# 新しい run を初期化
with wandb.init(project="log-plotly-fig-tables", name="plotly_html") as run:

    # テーブルを作成
    table = wandb.Table(columns=["plotly_figure"])

    # Plotly 図のパスを定義
    path_to_plotly_html = "./plotly_figure.html"

    # Plotly 図を作成
    fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])

    # Plotly 図を HTML にエクスポート
    # auto_play を False に設定すると、アニメーション化された Plotly チャートの自動再生を防げます
    fig.write_html(path_to_plotly_html, auto_play=False)

    # Plotly 図を HTML ファイルとしてテーブルに追加
    table.add_data(wandb.Html(path_to_plotly_html))

    # テーブルをログ
    run.log({"test_table": table})

AdministratorTeam Management
W&B では、1つのサービスアカウントを複数のチームに追加することはできません。各サービスアカウントは特定のチームに紐付けられています。
Reports
複数の著者を追加することで、レポートのすべての貢献者を正確にクレジット表示できます。複数の著者を追加するには、著者名の横にある + アイコンをクリックします。レポートにアクセス権を持つ全ユーザーのドロップダウンメニューが表示されます。著者として追加したいユーザーを選択してください。
複数のレポート著者の追加
Administrator
インスタンスの管理者である場合は、 ユーザー管理 セクションを参照して、ユーザーの追加やチームの作成方法を確認してください。
Python
pip または conda のいずれかを使用してインストール可能な Anaconda パッケージがあります。 conda の場合は、 conda-forge チャンネルからパッケージを取得してください。
# conda 環境を作成
conda create -n wandb-env python=3.8 anaconda
# 環境をアクティベート
conda activate wandb-env
# pip を使って wandb をインストール
pip install wandb
インストールの問題については、 Anaconda の パッケージ管理に関するドキュメント を参照してください。
Anonymous
  • データの永続性なし: 匿名アカウントの Runs は7日間保存されます。匿名 Run のデータは、実際のアカウントに保存することで引き継ぐことができます。
匿名モードのインターフェース
  • Artifacts のログ記録不可: 匿名 Run に Artifacts を記録しようとすると、コマンドラインに警告が表示されます。
    wandb: WARNING Artifacts logged anonymously cannot be claimed and expire after 7 days.
    
  • プロフィールや設定ページなし: これらは実際のアカウントでのみ有用なため、UI には含まれません。
ArtifactsStorage
ストレージコストが発生するのは、2つの Artifact バージョン間で変更されたファイルのみです。
Artifact の重複排除
例えば、 cat.pngdog.png という2つの画像ファイルを含む animals という画像 Artifact を考えてみましょう。
images
|-- cat.png (2MB) # `v0` で追加
|-- dog.png (1MB) # `v0` で追加
この Artifact にはバージョン v0 が割り当てられます。新しい画像 rat.png を追加すると、以下の内容で新しい Artifact バージョン v1 が作成されます。
images
|-- cat.png (2MB) # `v0` で追加
|-- dog.png (1MB) # `v0` で追加
|-- rat.png (3MB) # `v1` で追加
バージョン v1 は合計 6MB を追跡しますが、残りの 3MB を v0 と共有しているため、実際に占有するスペースは 3MB のみです。 v1 を削除すると、 rat.png に関連付けられた 3MB のストレージが解放されます。 v0 を削除すると、 cat.pngdog.png のストレージコストが v1 に転送され、そのストレージサイズは 6MB に増加します。
Artifacts
モデルのバージョン管理にはさまざまな方法があります。 Artifacts は、特定のニーズに合わせたモデルのバージョン管理ツールを提供します。複数のモデルアーキテクチャーを探索するプロジェクトでの一般的なアプローチは、アーキテクチャーごとに Artifacts を分けることです。以下の手順を検討してください。
  1. 特徴的なモデルアーキテクチャーごとに新しい Artifact を作成します。 Run の config と同様に、 Artifact の metadata 属性を使用してアーキテクチャーの詳細な説明を提供します。
  2. 各モデルについて、 log_artifact を使用して定期的にチェックポイントを記録します。 W&B はこれらのチェックポイントの履歴を構築し、最新のものに latest エイリアスを付けます。 architecture-name:latest を使用して、任意のモデルアーキテクチャーの最新のチェックポイントを参照してください。
ArtifactsSweeps
Sweep でモデルをログ記録する効果的な方法の1つは、 Sweep 用のモデル Artifact を作成することです。各バージョンは、 Sweep からの異なる Run を表します。以下のように実装します。
wandb.Artifact(name="sweep_name", type="model")
HyperparameterSweepsRuns
wandb.init(tags='your_tag') で一意のタグを設定してください。これにより、プロジェクトページの Runs Table で対応するタグを選択することで、プロジェクトの Runs を効率的にフィルタリングできるようになります。wandb.init() の詳細については、 wandb.init() リファレンス を参照してください。
Security
Weights & Biases にはバグバウンティプログラムがあります。詳細は W&B セキュリティポータル をご覧ください。
Administrator
  • サポートチーム (support@wandb.com) にご連絡ください。
  • 組織名、アカウントに関連付けられたメールアドレス、およびユーザー名をお知らせください。
AdministratorAcademicUser Management
W&B でアカウントを企業用からアカデミック用に変更するには、以下の手順に従ってください。
  1. アカデミックメールをリンクする:
    • アカウント設定にアクセスします。
    • アカデミックメールを追加し、プライマリメールとして設定します。
  2. アカデミックプランを申請する:
AdministratorBilling
請求先住所を変更するには、サポートチーム (support@wandb.com) にご連絡ください。
Sweeps
環境変数 WANDB_DIR を設定することで、W&B run データのログディレクトリーを設定できます。例:
os.environ["WANDB_DIR"] = os.path.abspath("your/directory")
Runs
API を使用して、完了した Run に割り当てられたグループを変更できます。この機能はウェブ UI には表示されません。以下のコードを使用してグループを更新してください。
import wandb

api = wandb.Api()
run = api.run("<ENTITY>/<PROJECT>/<RUN_ID>")
run.group = "NEW-GROUP-NAME"
run.update()
AdministratorUser Management
アカウント作成後にユーザー名を変更することはできません。代わりに、希望するユーザー名で新しいアカウントを作成してください。
Python
W&B クライアントライブラリは、バージョン 0.10 までは Python 2.7 と Python 3 の両方をサポートしていました。 Python 2 のサポート終了に伴い、バージョン 0.11 で Python 2.7 のサポートを終了しました。 Python 2.7 システムで pip install --upgrade wandb を実行すると、 0.10.x シリーズの新しいリリースのみがインストールされます。 0.10.x シリーズのサポートには、重大なバグ修正とパッチのみが含まれます。 Python 2.7 をサポートする 0.10.x シリーズの最後のバージョンは 0.10.33 です。
Python
W&B クライアントライブラリは、バージョン 0.11 まで Python 3.5 をサポートしていました。 Python 3.5 のサポート終了に合わせて、バージョン 0.12 でサポートを終了しました。詳細については、 バージョン 0.12 リリースノート を参照してください。
Experiments
画像パネルを展開し、ステップスライダーを使用して異なるステップの画像間を移動します。これにより、トレーニング中のモデル出力の変化を簡単に比較できます。
Experiments
トレーニングスクリプトの冒頭で、実験名を指定して wandb.init を呼び出します。例: wandb.init(name="my_awesome_run")
ReportsWysiwyg
上部のメッセージを通じてレポートを変換した場合は、赤い「Revert」ボタンをクリックして以前の状態を復元してください。変換後に行った変更は失われるのでご注意ください。単一の Markdown ブロックを変換した場合は、 cmd+z で元に戻せます。セッションが終了しているなどの理由で元に戻すオプションが利用できない場合は、ドラフトを破棄するか、最後に保存されたバージョンから編集することを検討してください。どちらも機能しない場合は、W&B サポートにお問い合わせください。
Crashing And Hanging Runs
トレーニング Run への干渉を避けることは極めて重要です。W&B は別プロセスで動作するため、W&B がクラッシュしてもトレーニングは継続されます。インターネットが切断された場合、W&B は wandb.ai へのデータ送信を継続的に再試行します。
User Management
はい、以前に削除されたアカウントに関連付けられていたメールアドレスを使用して、新しいアカウントを作成できます。
Team Management
役割と権限の詳細については、こちらのリンクを参照してください: チームの役割と権限
Sweeps
トレーニング設定がコマンドライン引数を受け取るようになっている場合、カスタム CLI コマンドで W&B Sweeps を使用できます。以下の例は、ユーザーが Python スクリプト train.py をトレーニングし、スクリプトがパースする値を指定している bash ターミナルのスニペットです。
/usr/bin/env python train.py -b \
    your-training-config \
    --batchsize 8 \
    --lr 0.00001
カスタムコマンドを実装するには、 YAML ファイルの command キーを変更します。上記の例に基づくと、設定は以下のようになります。
program:
  train.py
method: grid
parameters:
  batch_size:
    value: 8
  lr:
    value: 0.0001
command:
  - ${env}
  - python
  - ${program}
  - "-b"
  - your-training-config
  - ${args}
${args} キーは、 sweep configuration 内のすべてのパラメータに展開され、 argparse 用に --param1 value1 --param2 value2 という形式になります。argparse 以外の追加引数については、以下のように実装してください。
parser = argparse.ArgumentParser()
args, unknown = parser.parse_known_args()
環境によっては、 python が Python 2 を指す場合があります。 Python 3 を確実に呼び出すには、コマンド設定で python3 を使用してください。
program:
  script.py
command:
  - ${env}
  - python3
  - ${program}
  - ${args}
Workspaces
ダークモードはベータ版であり、アクセシビリティの面で完全には最適化されていません。ダークモードを有効にするには:
  1. W&B アカウント設定に移動します。
  2. Public preview features セクションまでスクロールします。
  3. UI Display で、ドロップダウンから Dark mode を選択します。
Connectivity
SSL エラーや、 wandb: Network error (ConnectionError), entering retry loop などのネットワークエラーが発生した場合は、以下の解決策を試してください。
  1. SSL 証明書をアップグレードします。 Ubuntu サーバーの場合は、 update-ca-certificates を実行します。セキュリティリスクを軽減しつつトレーニングログを同期するには、有効な SSL 証明書が不可欠です。
  2. ネットワーク接続が不安定な場合は、 任意の環境変数 WANDB_MODEoffline に設定してオフラインモードで実行し、後でインターネット接続のあるデバイスからファイルを同期してください。
  3. クラウドサーバーへの同期を避け、ローカルで動作する W&B Private Hosting の利用を検討してください。
SSL CERTIFICATE_VERIFY_FAILED エラーについては、会社のファイアウォールが原因である可能性があります。ローカルの CA を設定し、以下を実行してください:export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
Charts
カスタムチャートエディターにアクセスします。現在選択されているチャートタイプをクリックして、すべてのプリセットを表示するメニューを開きます。削除したいプリセットの上にマウスを置き、ゴミ箱アイコンをクリックします。
チャートプリセットの削除
Administrator
組織アカウントを削除するには、サポートチーム (support@wandb.com) にお問い合わせください。
ReportsWysiwyg
パネルグリッドを選択し、delete キーまたは backspace キーを押します。右上のドラッグハンドルをクリックするとパネルグリッドを選択できます。
AdministratorTeam Management
アカウントからチームを削除するには:
  • 管理者としてチーム設定にアクセスします。
  • ページ下部の Delete ボタンをクリックします。
Experiments
Run に明示的に名前を付けなかった場合、W&B はプロジェクト内で識別しやすいようにランダムな名前を割り当てます。ランダムな名前の例としては pleasant-flower-4misunderstood-glade-2 などがあります。
Charts
summary はテーブルに表示される現在の値を保持し、 log は将来のプロットのためにすべての値を保存します。例えば、精度が変化するたびに run.log() を呼び出します。デフォルトでは、メトリクスに対して手動で設定しない限り、 run.log() は summary の値も更新します。散布図や並行座標プロットは summary の値を使用し、折れ線グラフは run.log で記録されたすべての値を表示します。一部のユーザーは、最新の記録値ではなく最適な精度を反映させるために、 summary を手動で設定することを好みます。
Team Management
チームは、同じプロジェクトに取り組むユーザーのためのコラボレーションワークスペースです。エンティティは、ユーザー名またはチーム名のいずれかを表します。W&B で Run をログに記録する際、 wandb.init(entity="example-team") のように個人アカウントまたはチームアカウントにエンティティを設定します。
Team ManagementAdministrator
チームは、同じプロジェクトに取り組むユーザーのためのコラボレーションワークスペースです。組織は、複数のチームを含めることができる上位レベルのエンティティであり、多くの場合、請求やアカウント管理に関連付けられます。
Experiments
以下のモードが利用可能です。
  • online (デフォルト): クライアントはデータを wandb サーバーに送信します。
  • offline: クライアントはデータを wandb サーバーに送信せず、ローカルマシンに保存します。後でデータを同期するには wandb sync コマンドを使用します。
  • disabled: クライアントはモックオブジェクトを返すことで動作をシミュレートし、ネットワーク通信を行いません。すべてのログ記録はオフになりますが、API メソッドのスタブは呼び出し可能なままです。このモードは通常、テストに使用されます。
Tensorboard
W&B は TensorBoard と連携し、実験管理ツールを改善します。W&B は、 TensorBoard ユーザーが直面する一般的な不満を解消するために作成されました。主な改善点は以下の通りです。
  1. モデルの再現性: W&B は実験、探索、およびモデルの再現を容易にします。メトリクス、ハイパーパラメーター、コードのバージョンをキャプチャし、モデルのチェックポイントを保存して再現性を確保します。
  2. 自動整理: W&B は、試行したすべてのモデルの概要を提供することで、プロジェクトの引き継ぎや休暇中の対応をスムーズにします。古い実験の再実行を防ぎ、時間を節約できます。
  3. 迅速な統合: 5分で W&B をプロジェクトに統合できます。無料のオープンソース Python パッケージをインストールし、数行のコードを追加するだけです。モデルの実行ごとにログに記録されたメトリクスと記録が表示されます。
  4. 一元化されたダッシュボード: トレーニングがローカル、ラボのクラスター、クラウドのスポットインスタンスのどこで行われていても、一貫したダッシュボードにアクセスできます。異なるマシン間で TensorBoard ファイルを管理する必要がありません。
  5. 強力なフィルタリングテーブル: さまざまなモデルの結果を効率的に検索、フィルタリング、ソート、グループ化できます。特定のタスクに最適なモデルを簡単に見つけることができます。これは、大規模なプロジェクトで TensorBoard が苦労することが多い分野です。
  6. コラボレーションツール: W&B は、複雑な機械学習プロジェクトのコラボレーションを強化します。プロジェクトのリンクを共有したり、結果共有のためにプライベートチームを利用したりできます。インタラクティブな可視化と Markdown の説明を含むレポートを作成して、作業ログやプレゼンテーションに使用できます。
BillingAdministrator
サブスクリプションプランをダウングレードするには、現在のプランの詳細と希望するプランを明記の上、サポートチーム (support@wandb.com) までご連絡ください。
Reports
個人のプライベートプロジェクト内で作成されたレポートは、そのユーザーのみが表示できます。ユーザーはそのプロジェクトをチームまたは一般に公開共有できます。チームプロジェクトでは、管理者またはレポートを作成したメンバーが、他のチームメンバーに対して編集権限または閲覧権限を切り替えることができます。チームメンバーはレポートを共有できます。レポートを共有するには、右上隅にある Share ボタンを選択します。メールアドレスを入力するか、マジックリンクをコピーしてください。メールで招待されたユーザーは、レポートを表示するために W&B にログインする必要がありますが、マジックリンクを持つユーザーはログイン不要です。共有されたレポートは、閲覧専用アクセスが維持されます。
Reports
レポートを埋め込むことで共有できます。レポートの右上にある Share ボタンをクリックし、ポップアップウィンドウの下部から埋め込みコードをコピーしてください。
レポートの埋め込み
Sweeps
Sweeps でコードのログ記録を有効にするには、 W&B Run を初期化した後に wandb.log_code() を追加します。 W&B のプロフィール設定でコードのログ記録が有効になっていても、この操作が必要です。高度なコードログ記録については、 こちらの wandb.log_code() のドキュメント を参照してください。
Environment Variables
wandb.init に渡された引数は環境変数を上書きします。環境変数が設定されていない場合にシステムデフォルト以外のデフォルトディレクトリーを設定するには、 wandb.init(dir=os.getenv("WANDB_DIR", my_default_override)) のように使用します。
SweepsHyperparameter
W&B は、離散的な探索空間を持つ W&B Sweep を作成する際に生成される Run の推定数を提供します。この合計は、探索空間のデカルト積を反映しています。例えば、以下のような探索空間を考えてみましょう。
推定 Run 数のカラム
この場合、デカルト積は 9 になります。W&B は App UI 上でこの値を推定 Run 数 (Est. Runs) として表示します。
Sweep Run 数の推定
推定 Run 数をプログラムで取得するには、 W&B SDK 内の Sweep オブジェクトの expected_run_count 属性を使用します。
sweep_id = wandb.sweep(
    sweep_configs, project="your_project_name", entity="your_entity_name"
)
api = wandb.Api()
sweep = api.sweep(f"your_entity_name/your_project_name/sweeps/{sweep_id}")
print(f"EXPECTED RUN COUNT = {sweep.expected_run_count}")
AdministratorUser Management
W&B 組織からユーザーリストをエクスポートするには、管理者が SCIM API を使用して以下のコードを実行します。
import base64
import requests

def encode_base64(username, key):
    auth_string = f'{username}:{key}'
    return base64.b64encode(auth_string.encode('utf-8')).decode('utf-8')

username = ''  # 組織管理者のユーザー名
key = ''  # APIキー
scim_base_url = 'https://api.wandb.ai/scim/v2'
users_endpoint = f'{scim_base_url}/Users'
headers = {
    'Authorization': f'Basic {encode_base64(username, key)}',
    'Content-Type': 'application/scim+json'
}

response = requests.get(users_endpoint, headers=headers)
users = []
for user in response.json()['Resources']:
    users.append([user['userName'], user['emails']['Value']])
必要に応じて、出力を保存するようにスクリプトを修正してください。
Artifacts
Artifact reference が W&B で記録され、バケットのバージョニングが有効になっている場合、バージョン ID は Amazon S3 UI に表示されます。W&B でこれらのバージョン ID と ETag を取得するには、 Artifact を取得して対応するマニフェストエントリにアクセスします。例:
artifact = run.use_artifact("my_table:latest")
for entry in artifact.manifest.entries.values():
    versionID = entry.extra.get("versionID")
    etag = entry.extra.get("etag")
Logs
該当する Run について、コードを実行しているディレクトリー内の wandb/run-<date>_<time>-<run-id>/logs にある debug.logdebug-internal.log を確認してください。
ConnectivityOutage
W&B で “Filestream rate limit exceeded” エラーを解決するには、以下の手順に従ってください。ログ記録の最適化:
  • API リクエストを減らすために、ログ記録の頻度を下げるか、ログをバッチ処理します。
  • API リクエストの同時発生を避けるため、実験の開始時間をずらします。
障害の確認:
  • W&B ステータス更新を確認して、問題が一時的なサーバー側の問題によるものではないか確認してください。
サポートへの連絡:
  • レート制限の引き上げをリクエストするために、実験のセットアップの詳細を添えて W&B サポート (support@wandb.com) にお問い合わせください。
Reports
検索バーを使用してレポートリストをフィルタリングします。不要なレポートを選択して個別に削除するか、すべてのレポートを選択して「Delete Reports」をクリックしてプロジェクトから削除します。
不要なレポートやドラフトの削除
SecurityUser Management
In Dedicated Cloud and Self-Managed:
  • Organization admins can find or list API keys for all organization users and service accounts.
  • Team admins can find or list API keys for service accounts in teams they administer.
  • Non-admin users can find or list their own API keys.
To find an API key, select the Personal API key or Service Account API key tab for details.
To find a personal API key owned by your user ID:
  1. Log in to W&B, click your user profile icon, then click User Settings.
  2. Scroll to the API Keys section.
The API keys table shows the key ID (the first part of each API key) for identification purposes. The full secret API key is only displayed once when you create it. If you need to use an existing key but do not have the full secret stored, you must create a new API key.
Artifacts
Sweep で最高のパフォーマンスを示した Run から Artifact を取得するには、以下のコードを使用します。
api = wandb.Api()
sweep = api.sweep("entity/project/sweep_id")
runs = sorted(sweep.runs, key=lambda run: run.summary.get("val_acc", 0), reverse=True)
best_run = runs[0]
for artifact in best_run.logged_artifacts():
    artifact_path = artifact.download()
    print(artifact_path)
Artifacts
W&B は各 Run によってログ記録された Artifacts と、各 Run で使用された Artifacts を追跡して Artifact graph を構築します。このグラフは、 Run と Artifacts をノードとする二部有向非巡回グラフです。例は こちら で確認できます(「Explode」をクリックしてグラフを展開してください)。Public API を使用して、 Artifact または Run のいずれかからプログラムでグラフを探索できます。
api = wandb.Api()

artifact = api.artifact("project/artifact:alias")

# Artifact からグラフを遡る:
producer_run = artifact.logged_by()
# Artifact からグラフを下る:
consumer_runs = artifact.used_by()

# Run からグラフを下る:
next_artifacts = consumer_runs[0].logged_artifacts()
# Run からグラフを遡る:
previous_artifacts = producer_run.used_artifacts()
Sweeps
設定の command セクションで ${args_no_boolean_flags} マクロを使用することで、ハイパーパラメーターを Boolean フラグとして渡すことができます。このマクロは Boolean パラメーターをフラグとして自動的に含めます。 paramTrue の場合、コマンドは --param を受け取ります。 paramFalse の場合、フラグは省略されます。
Tensorboard
指数移動平均の数式は TensorBoard で使用されているものと一致しています。同等の Python 実装の詳細は、 Stack OverFlow のこちらの解説 を参照してください。 TensorBoard の平滑化アルゴリズムのソースコード(本稿執筆時点)は こちら で確認できます。
Workspaces
一部の機能は、チーム設定の Beta Features セクションにあるフィーチャーフラグの下に隠されています。
フィーチャーフラグの下に隠されている利用可能なベータ機能
Experiments
“No visualization data logged yet” というメッセージが表示される場合、スクリプトが最初の wandb.log 呼び出しを実行していません。これは、 Run が 1ステップを完了するのに長い時間がかかっている場合に発生することがあります。データのログ記録を早めるには、エポックの最後だけでなく、エポック内に複数回ログを記録するようにしてください。
RunsWorkspaces
グループ内の個々の Run の色を変更することはできません。同じグループ内のすべての Run は共通の色を共有します。
Runs
1つの Run が複数のタグを持つことができるため、タグによるグループ化はサポートされていません。代わりに、これらの Run の config オブジェクトに値を追加し、その config 値でグループ化してください。これは API を使用して行えます。
WorkspacesRuns
はい、タグやカスタムメタデータを使用して Run をカテゴリ分けすることもできます。これはプロジェクトの Workspace 閲覧時や Runs ビューにある Group ボタンを使用して行えます。
AdministratorTeam Management
チーム管理者が、チーム設定の Users タブから あなたをチームから削除 することができます。
Environment VariablesExperiments
  • WANDB_DIR=<path> または wandb.init(dir=<path>): トレーニングスクリプト用に作成される wandb フォルダの場所を制御します。デフォルトは ./wandb です。このフォルダには Run のデータとログが保存されます。
  • WANDB_ARTIFACT_DIR=<path> または wandb.Artifact().download(root="<path>"): Artifacts がダウンロードされる場所を制御します。デフォルトは ./artifacts です。
  • WANDB_CACHE_DIR=<path>: wandb.Artifact を呼び出した際に Artifacts が作成・保存される場所です。デフォルトは ~/.cache/wandb です。
  • WANDB_CONFIG_DIR=<path>: 設定ファイルが保存される場所です。デフォルトは ~/.config/wandb です。
  • WANDB_DATA_DIR=<PATH>: アップロード中に Artifacts をステージングするために使用される場所を制御します。デフォルトは ~/.cache/wandb-data/ です。
ProjectsRuns
public API を使用して、1回の操作で複数の Run を削除できます。
import wandb

api = wandb.Api()
runs = api.runs('<entity>/<project>')
for run in runs:
    if <条件>:
        run.delete()
User Management
ユーザー設定Delete account をクリックしてアカウントを削除してください。この操作は取り消し不可であり、即座に有効になりますのでご注意ください。
MetricsRuns
システムメトリクス のログ記録を無効にするには、 _disable_statsTrue に設定します。
wandb.init(settings=wandb.Settings(x_disable_stats=True))
User Management
以下のいずれかの方法でログイン URL を設定してください。
  • 環境変数 WANDB_BASE_URL をサーバーの URL に設定する。
  • wandb login--host フラグをサーバーの URL に設定する。
LogsMetrics
以前のステップのログを上書きするには、 forkingrewind を使用してください。
MetricsRuns
システムメトリクス を記録する頻度を設定するには、 _stats_sampling_interval に秒数を float 型で設定します。デフォルトは 10.0 です。
wandb.init(settings=wandb.Settings(x_stats_sampling_interval=30.0))
Crashing And Hanging Runs
Python で wandb をインポートする際に AttributeError: module 'wandb' has no attribute 'init'AttributeError: module 'wandb' has no attribute 'login' のようなエラーが発生する場合、 wandb がインストールされていないかインストールが壊れていますが、現在の作業ディレクトリに wandb ディレクトリが存在しています。これを修正するには、 wandb をアンインストールし、ディレクトリを削除してから、 wandb をインストールし直してください。
pip uninstall wandb; rm -rI wandb; pip install wandb
Experiments
Files タブには最大 10,000 個のファイルが表示されます。すべてのファイルをダウンロードするには、 public API を使用してください。
import wandb

api = wandb.Api()
run = api.run('<entity>/<project>/<run_id>')
run.file('<file>').download()

for f in run.files():
    if <条件>:
        f.download()
ResumingRuns
resume='must' but run (<run_id>) doesn't exist というエラーが発生する場合、再開しようとしている Run がプロジェクトまたはエンティティ内に存在しません。正しいインスタンスにログインしていること、およびプロジェクトとエンティティが設定されていることを確認してください。
wandb.init(entity=<entity>, project=<project>, id=<run-id>, resume='must')
wandb login --relogin を実行して、認証されているか確認してください。
Reports
LaTeX はレポートにシームレスに統合できます。LaTeX を追加するには、新しいレポートを作成し、リッチテキストエリアに直接入力してメモを書いたり、カスタム可視化やテーブルを保存したりします。新しい行で / を押し、インライン数式タブに移動して LaTeX コンテンツを挿入します。
Inference
401 Invalid Authentication エラーは、API キーが無効であるか、W&B プロジェクトのエンティティ名/プロジェクト名が正しくないことを意味します。

APIキーの確認

  1. ユーザー設定で新しい API キーを作成します。
  2. API キーを安全に保管してください。

プロジェクト設定の確認

プロジェクトが <your-team>/<your-project> という形式で正しく指定されているか確認してください。Python の例:
client = openai.OpenAI(
    base_url='https://api.inference.wandb.ai/v1',
    api_key="<your-api-key>",
    project="<your-team>/<your-project>",  # あなたの W&B チームとプロジェクトに一致させる必要があります
)
Bash の例:
curl https://api.inference.wandb.ai/v1/chat/completions \
  -H "Authorization: Bearer <your-api-key>" \
  -H "OpenAI-Project: <your-team>/<your-project>"

よくある間違い

  • チーム名の代わりに個人エンティティを使用している
  • チーム名またはプロジェクト名のスペルミス
  • チームとプロジェクトの間のスラッシュ(/)が抜けている
  • 期限切れまたは削除済みの API キーを使用している

それでも解決しない場合

  • あなたの W&B アカウントにそのチームとプロジェクトが存在することを確認してください
  • 指定したチームへのアクセス権があるか確認してください
  • 現在のキーが機能しない場合は、新しい API キーを作成してみてください
Inference
W&B Inference エラーを適切に処理し、信頼性の高いアプリケーションを維持するために、以下のベストプラクティスに従ってください。

1. 常にエラーハンドリングを実装する

API 呼び出しを try-except ブロックで囲みます。
import openai

try:
    response = client.chat.completions.create(
        model="meta-llama/Llama-3.1-8B-Instruct",
        messages=messages
    )
except Exception as e:
    print(f"Error: {e}")
    # 適切にエラーを処理する

2. 指数バックオフを用いたリトライロジックの使用

import time
from typing import Optional

def call_inference_with_retry(
    client, 
    messages, 
    model: str,
    max_retries: int = 3,
    base_delay: float = 1.0
) -> Optional[str]:
    for attempt in range(max_retries):
        try:
            response = client.chat.completions.create(
                model=model,
                messages=messages
            )
            return response.choices[0].message.content
        except Exception as e:
            if attempt == max_retries - 1:
                raise
            
            # 指数バックオフによる遅延時間を計算
            delay = base_delay * (2 ** attempt)
            print(f"Attempt {attempt + 1} failed, retrying in {delay}s...")
            time.sleep(delay)
    
    return None

3. 使用状況の監視

  • W&B の請求ページでクレジットの使用状況を追跡します。
  • 制限に達する前にアラートを設定します。
  • アプリケーション内で API の使用状況をログに記録します。

4. 特定のエラーコードの処理

def handle_inference_error(error):
    error_str = str(error)
    
    if "401" in error_str:
        # 認証無効
        raise ValueError("API キーとプロジェクト設定を確認してください")
    elif "402" in error_str:
        # クレジット不足
        raise ValueError("クレジットが不足しています")
    elif "429" in error_str:
        # レート制限
        return "retry"
    elif "500" in error_str or "503" in error_str:
        # サーバーエラー
        return "retry"
    else:
        # 不明なエラー
        raise

5. 適切なタイムアウトの設定

ユースケースに合わせて妥当なタイムアウトを設定してください。
# 長いレスポンスの場合
client = openai.OpenAI(
    base_url='https://api.inference.wandb.ai/v1',
    api_key="your-api-key",
    timeout=60.0  # 60秒のタイムアウト
)

その他のヒント

  • デバッグのためにタイムスタンプ付きでエラーをログに記録します。
  • 並行処理をより良く扱うために非同期(async)操作を使用します。
  • プロダクションシステムにはサーキットブレーカーを実装します。
  • API 呼び出しを減らすために、必要に応じてレスポンスをキャッシュします。
Inference
クォータ不足エラー(402)は、プランに残りのクレジットがない場合に発生します。エラー: “You exceeded your current quota, please check your plan and billing details”解決策:
  • W&B の請求ページでクレジット残高を確認してください。
  • クレジットを追加購入するか、プランをアップグレードしてください。
  • サポートに制限の引き上げをリクエストしてください。
Inference
“Country, region, or territory not supported” というメッセージの 403 エラーは、サポートされていない場所から W&B Inference にアクセスしていることを意味します。

なぜこれが発生するのか

W&B Inference は、コンプライアンスおよび規制要件により地理的な制限があります。サービスはサポートされている地理的な場所からのみアクセス可能です。

できること

  1. 利用規約を確認する
    • 現在のサポート対象地域のリストについては、 利用規約 を確認してください。
  2. サポートされている場所から使用する
    • サポートされている国や地域にいるときにサービスにアクセスしてください。
    • サポートされている場所にある組織のリソースを使用することを検討してください。
  3. 担当チームに連絡する
    • エンタープライズのお客様は、担当の Account Executive とオプションについて相談できます。
    • 一部の組織には特別な取り決めがある場合があります。

エラーの詳細

このエラーが表示される場合:
{
  "error": {
    "code": 403,
    "message": "Country, region, or territory not supported"
  }
}
これは API リクエスト時の IP アドレスの場所によって判断されます。
Inference
レート制限エラー(429)は、同時実行制限を超えた場合に発生します。エラー: “Concurrency limit reached for requests”解決策:
  • 並列リクエストの数を減らします。
  • リクエスト間に遅延を入れます。
  • 指数バックオフを実装します。
  • 注意:レート制限は W&B プロジェクトごとに適用されます。

レート制限を避けるためのベストプラクティス

  1. 指数バックオフを用いたリトライロジックの実装:
    import time
    
    def retry_with_backoff(func, max_retries=3):
        for i in range(max_retries):
            try:
                return func()
            except Exception as e:
                if "429" in str(e) and i < max_retries - 1:
                    time.sleep(2 ** i)
                else:
                    raise
    
  2. 並列リクエストの代わりにバッチ処理を使用する
  3. W&B の請求ページで使用状況を監視する

デフォルトの支出上限

  • Pro アカウント: $6,000/月
  • Enterprise アカウント: $700,000/年
上限を調整するには、担当の Account Executive またはサポートにお問い合わせください。
Inference
サーバーエラーは、W&B Inference サービスの一時的な問題を示しています。

エラーの種類

500 - Internal Server Error

メッセージ: “The server had an error while processing your request”これはサーバー側の一時的な内部エラーです。

503 - Service Overloaded

メッセージ: “The engine is currently overloaded, please try again later”サービスが高トラフィックの状態にあります。

サーバーエラーへの対処法

  1. 再試行する前に待機する
    • 500 エラー:30〜60秒待機
    • 503 エラー:60〜120秒待機
  2. 指数バックオフを使用する
    import time
    import openai
    
    def call_with_retry(client, messages, model, max_retries=5):
        for attempt in range(max_retries):
            try:
                return client.chat.completions.create(
                    model=model,
                    messages=messages
                )
            except Exception as e:
                if "500" in str(e) or "503" in str(e):
                    if attempt < max_retries - 1:
                        wait_time = min(60, (2 ** attempt))
                        time.sleep(wait_time)
                    else:
                        raise
                else:
                    raise
    
  3. 適切なタイムアウトを設定する
    • HTTP クライアントのタイムアウト値を増やします。
    • より良い処理のために非同期操作を検討してください。

サポートに連絡すべきタイミング

以下の場合にサポートに連絡してください。
  • エラーが10分以上続く場合
  • 特定の時間に失敗するパターンが見られる場合
  • エラーメッセージに追加の詳細が含まれている場合
提供していただきたい情報:
  • エラーメッセージとエラーコード
  • エラーが発生した時刻
  • あなたのコードスニペット(API キーは削除してください)
  • W&B のエンティティ名とプロジェクト名
ConnectivityCrashing And Hanging Runs
Run の初期化タイムアウトエラーを解決するには、以下の手順に従ってください。
  • 初期化の再試行: Run を再起動してみてください。
  • ネットワーク接続の確認: インターネット接続が安定しているか確認してください。
  • wandb バージョンの更新: 最新バージョンの wandb をインストールしてください。
  • タイムアウト設定の増加: 環境変数 WANDB_INIT_TIMEOUT を変更します。
    import os
    os.environ['WANDB_INIT_TIMEOUT'] = '600'
    
  • デバッグの有効化: 詳細なログを得るために WANDB_DEBUG=trueWANDB_CORE_DEBUG=true を設定します。
  • 設定の確認: API キーとプロジェクトの設定が正しいか確認してください。
  • ログの検査: エラーがないか debug.logdebug-internal.logdebug-core.logoutput.log を調査してください。
Experiments
このエラーは、サーバーにデータを同期するプロセスの起動にライブラリが失敗したことを示しています。以下の回避策で、特定の環境における問題が解決します。
wandb.init(settings=wandb.Settings(start_method="fork"))
ReportsWysiwygTables
テーブルは、WYSIWYG に直接対応する機能がない唯一の Markdown 機能です。テーブルを追加するには、 Markdown ブロックを挿入し、その中にテーブルを作成してください。
Python
wandb のインストール時に以下のようなエラーが発生する場合:
unable to execute 'gcc': No such file or directory
error: command 'gcc' failed with exit status 1
プリビルドされた wheel から psutil を直接インストールしてください。 https://pywharf.github.io/pywharf-pkg-repo/psutil で Python のバージョンとオペレーティングシステムを確認してください。例えば、 Linux 上の Python 3.8 に psutil をインストールするには:
WHEEL_URL=https://github.com/pywharf/pywharf-pkg-repo/releases/download/psutil-5.7.0-cp38-cp38-manylinux2010_x86_64.whl#sha256=adc36dabdff0b9a4c84821ef5ce45848f30b8a01a1d5806316e068b5fd669c6d
pip install $WHEEL_URL
psutil のインストール後、 pip install wandb を実行して wandb のインストールを完了させます。
Experiments
W&B は、アップロードするファイルやデータを明示的に指定することで、スカラーのみをログに記録するプロジェクトもサポートしています。画像を使用せずにログを記録する方法を示す PyTorch での例 を参照してください。
Environment VariablesOutage
ライブラリがインターネットに接続できない場合、リトライループに入り、ネットワークが復旧するまでメトリクスのストリーミングを試行し続けます。その間もプログラムは実行を続けます。インターネットのないマシンで実行するには、 WANDB_MODE=offline を設定してください。この設定では、メトリクスがローカルハードドライブに保存されます。後で、 wandb sync DIRECTORY を呼び出してデータをサーバーにストリーミングできます。
AdministratorTeam Management
チームに参加するには、以下の手順に従ってください。
  • チームの管理者または管理権限を持つ人に連絡して、招待を依頼します。
  • 招待メールを確認し、指示に従ってチームに参加してください。
AdministratorTeam ManagementMetrics
デフォルトでは、W&B はデータセットの例を記録しません。一方で、デフォルトでコードとシステムメトリクスは記録されます。環境変数を使用してコードのログ記録をオフにする方法は2つあります。
  1. WANDB_DISABLE_CODEtrue に設定して、すべてのコード追跡をオフにします。これにより、 git SHA や diff パッチの取得が行われなくなります。
  2. WANDB_IGNORE_GLOBS*.patch に設定して、 diff パッチのサーバーへの同期を停止します。ローカルには残るため、 wandb restore で適用可能です。
管理者の方は、チーム設定でチーム全体のコード保存をオフにすることもできます。
  1. https://wandb.ai/<team>/settings にあるチームの設定に移動します( <team> はチーム名です)。
  2. Privacy セクションまでスクロールします。
  3. Enable code saving by default のトグルをオフにします。
Experiments
はい。 Run 名を Run ID で上書きするには、以下のコードスニペットを使用してください。
import wandb

with wandb.init() as run:
   run.name = run.id
   run.save()
Crashing And Hanging Runs
W&B が組み込まれたスクリプトを停止するには、キーボードで Ctrl+D を押します。
Experiments
1つのスクリプト内で複数の Run をログに記録するには、新しい Run を開始する前に前の Run を終了させる必要があります。推奨される方法は、 wandb.init() をコンテキストマネージャーとして使用することです。これにより Run が確実に終了し、スクリプトが例外をスローした場合には Run に失敗のマークが付きます。
import wandb

for x in range(10):
    with wandb.init() as run:
        for y in range(100):
            run.log({"metric": x + y})
明示的に run.finish() を呼び出すこともできます。
import wandb

for x in range(10):
    run = wandb.init()

    try:
        for y in range(100):
            run.log({"metric": x + y})

    except Exception:
        run.finish(exit_code=1)
        raise

    finally:
        run.finish()

複数のアクティブな Run

wandb 0.19.10 以降、 reinit 設定を "create_new" にすることで、同時に複数の Run をアクティブにできます。
import wandb

with wandb.init(reinit="create_new") as tracking_run:
    for x in range(10):
        with wandb.init(reinit="create_new") as run:
            for y in range(100):
                run.log({"x_plus_y": x + y})

            tracking_run.log({"x": x})
W&B インテグレーションに関する注意事項など、 reinit="create_new" の詳細については プロセスごとの複数 Run を参照してください。
Administrator
Debug Bundle を確認してください。管理者は、右上隅の W&B アイコンから /system-admin ページにアクセスし、 Debug Bundle を選択することで取得できます。
Debug Bundle のダウンロード
システム設定
RunsMetrics
実験を管理する方法はいくつかあります。複雑なワークフローの場合は、複数の Runs を使用し、 wandb.init() の group パラメーターに、単一の実験内のすべてのプロセスで共通の一意の値を設定します。 Runs タブ ではテーブルがグループ ID ごとにグループ化され、可視化が適切に機能します。このアプローチにより、結果を1か所にログ記録しながら、並行して実験やトレーニング Run を行うことが可能になります。よりシンプルなワークフローの場合は、 resume=Trueid=UNIQUE_ID を指定して wandb.init() を呼び出し、再度同じ id=UNIQUE_IDwandb.init() を呼び出します。通常通り run.log() または run.summary() でログを記録すれば、 Run の値が適宜更新されます。
Artifacts
以前にログ記録された Run の出力として Artifact をマークする必要がある場合があります。この場合は、古い Run を再初期化して、以下のように新しい Artifacts を記録します。
with wandb.init(id="existing_run_id", resume="allow") as run:
    artifact = wandb.Artifact("artifact_name", "artifact_type")
    artifact.add_file("my_data/file.txt")
    run.log_artifact(artifact)
RunsLogs
W&B にログを記録する自動テストや内部ツールを起動するには、チーム設定ページで Service Account を作成してください。これにより、継続的インテグレーションを通じて実行されるものを含め、自動化されたジョブにサービス API キーを使用できるようになります。サービスアカウントのジョブを特定のユーザーに関連付けるには、環境変数 WANDB_USERNAME または WANDB_USER_EMAIL を設定してください。
サービスアカウントの作成
LogsExperiments
以下の例では、 wandb.Run.log() を使用して、損失(loss)のリストをいくつかの方法でログに記録する方法を示しています。
import wandb

# 新しい run を初期化
with wandb.init(project="log-list-values", name="log-dict") as run:
    # 損失を辞書としてログ
    losses = [0.1, 0.2, 0.3, 0.4, 0.5]
    run.log({"losses": losses})
    run.log({f"losses/loss-{ii}": loss for ii, loss in enumerate(losses)})
詳細は、 ログ記録に関するドキュメント を参照してください。
Runs
run.log({'final_accuracy': 0.9}) を使用すると、最終的な精度が正しく更新されます。デフォルトでは、 run.log({'final_accuracy': <値>})run.settings['final_accuracy'] を更新し、これが runs テーブルの値に反映されます。
ExperimentsMetrics
各バッチで特定のメトリクスを記録し、プロットを標準化するには、メトリクスと一緒に希望する X 軸の値をログに記録します。カスタムプロットで edit をクリックし、カスタム X 軸を選択します。
import wandb

with wandb.init() as run:
    run.log({"batch": batch_idx, "loss": 0.3})
    run.log({"epoch": epoch, "val_acc": 0.94})
ExperimentsMetrics
例えば、バッチごとのトレーニング精度と、エポックごとの検証精度を記録したい場合などです。はい、メトリクスと一緒に batchepoch といったインデックスをログに記録してください。あるステップでは wandb.Run.log()({'train_accuracy': 0.9, 'batch': 200}) を、別のステップでは wandb.Run.log()({'val_accuracy': 0.8, 'epoch': 4}) を使用します。UI 上で、各チャートの X 軸として希望する値を設定してください。特定のインデックスをデフォルトの X 軸として設定するには、 Run.define_metric() を使用します。上記の例では、以下のコードを使用します。
import wandb

with wandb.init() as run:
   run.define_metric("batch")
   run.define_metric("epoch")

   run.define_metric("train_accuracy", step_metric="batch")
   run.define_metric("val_accuracy", step_metric="epoch")
Experiments
送信されるポイントの数は、 UI のグラフの読み込み時間に影響します。 1,000 ポイントを超える線の場合、バックエンドはブラウザに送信する前にデータを 1,000 ポイントにダウンサンプリングします。このサンプリングは非決定的であるため、ページを更新するたびにサンプリングされるポイントが異なる場合があります。メトリクスごとに記録するポイントは 10,000 未満にすることをお勧めします。 1つの線で 100 万ポイント以上をログに記録すると、ページの読み込み時間が大幅に長くなります。精度の低下を抑えつつログのフットプリントを最小限に抑える戦略については、こちらの Colab をご覧ください。 config および summary メトリクスのカラムが 500 を超える場合、テーブルには 500 個のみ表示されます。
Team Management
2024年5月21日以降に作成されたアカウントでは、個人エンティティは利用できません。W&B は、結果の共有を可能にするために、すべてのユーザーが新しいプロジェクトをチームに記録することを推奨しています。
Logs
共有マシンを使用する際は、認証のために環境変数 WANDB_API_KEY を設定することで、 Runs が正しい W&B アカウントに記録されるようにしてください。環境内でこの変数が読み込まれていると、ログイン時に正しい認証情報が提供されます。あるいは、スクリプト内で直接環境変数を設定することも可能です。export WANDB_API_KEY=X コマンドを実行します(X をあなたの API キーに置き換えてください)。 API キーは wandb.ai/settings で作成できます。
Experiments
「ログ機能は遅延評価(lazy)ですか?ローカル操作の実行中に、サーバーに結果を送信するためにネットワークに依存したくありません。」wandb.log 関数はローカルファイルに行を書き込むだけで、ネットワーク呼び出しをブロックしません。 wandb.init を呼び出すと、同じマシン上で新しいプロセスが開始されます。このプロセスがファイルシステムの変更を監視し、ウェブサービスと非同期に通信するため、ローカル操作は中断されることなく継続できます。
Logs
wandb offline コマンドを実行すると、環境変数 WANDB_MODE=offline が設定され、リモートの W&B サーバーへのデータ同期が停止します。これはすべてのプロジェクトに影響し、 W&B サーバーへのデータログ記録が停止されます。警告メッセージを抑制するには、以下のコードを使用してください。
import logging

logger = logging.getLogger("wandb")
logger.setLevel(logging.WARNING)
Experiments
W&B のメトリクス名は、 UI で適切にソートおよびフィルタリングできるようにするために、 GraphQL の命名規則に従う必要があります。

有効なメトリクス名

  • 使用可能な文字: 英字 (A-Z, a-z)、数字 (0-9)、およびアンダースコア (_)
  • 先頭の文字: 名前は英字またはアンダースコアで始まる必要があります
  • パターン: メトリクス名は /^[_a-zA-Z][_a-zA-Z0-9]*$/ にマッチする必要があります
これらのルールに従わないメトリクスは、 W&B UI でソートやフィルタリングができない可能性があります。

有効なメトリクス名:
with wandb.init() as run:
  run.log({"accuracy": 0.9, "val_loss": 0.1, "epoch_5": 5})
  run.log({"modelAccuracy": 0.95, "learning_rate": 0.001})
無効なメトリクス名 (これらは避けてください):
with wandb.init() as run:
  run.log({"acc,val": 0.9})  # コンマが含まれている
  run.log({"loss-train": 0.1})  # ハイフンが含まれている
  run.log({"test acc": 0.95})  # スペースが含まれている
  run.log({"5_fold_cv": 0.8})  # 数字で始まっている

推奨される解決策

無効な文字をアンダースコアなどの有効な文字に置き換えてください:
  • "test acc" の代わりに "test_acc" を使用
  • "loss-train" の代わりに "loss_train" を使用
  • "acc,val" の代わりに "acc_val" を使用
詳細については、 メトリクス命名の制約 を参照してください。
AdministratorBillingTeam Management
Teams プランには月額払いのオプションはありません。このサブスクリプションは年単位で請求されます。
Runs
以下の手順で Run を別のプロジェクトに移動できます。
  • 移動したい Run があるプロジェクトページに移動します。
  • Runs タブをクリックして runs table を開きます。
  • 移動する Runs を選択します。
  • Move ボタンをクリックします。
  • 移動先のプロジェクトを選択し、操作を確定します。
W&B は UI を通じた Run の移動をサポートしていますが、 Run のコピーはサポートしていません。 Run と一緒にログに記録された Artifacts は、新しいプロジェクトには転送されません。 Artifacts を Run の新しい場所に手動で移動するには、 wandb artifact get SDK コマンドまたは Api.artifact API を使用して Artifact をダウンロードし、次に wandb artifact put または Api.artifact API を使用して Run の新しい場所にアップロードしてください。
Reports
W&B Reports で以下の手順を行ってください。
  1. 複数のパネルグリッドを作成します。
  2. 各パネルグリッドに対してフィルタを適用し、希望する Run セットを選択します。
  3. パネルグリッド内に目的のチャートを生成します。
Experiments
トレーニングプログラムが複数のプロセスを使用する場合、 wandb.init() を実行していないプロセスから wandb メソッドを呼び出さないようにプログラムを構成してください。マルチプロセスのトレーニングは、以下のいずれかのアプローチで管理してください。
  1. すべてのプロセスで wandb.init を呼び出し、 group キーワード引数を使用して共有グループを作成します。各プロセスが独自の wandb run を持ち、 UI 上でそれらのトレーニングプロセスがグループ化されます。
  2. 1つのプロセスからのみ wandb.init を呼び出し、ログに記録するデータを マルチプロセッシングキュー を介して渡します。
Torch DDP を使用したコード例を含むこれらのアプローチの詳細な説明については、 分散トレーニングガイド を参照してください。
Experiments
はい、W&B は multiprocessing ライブラリを使用しています。以下のようなエラーメッセージが表示される場合は、問題が発生している可能性があります。
An attempt has been made to start a new process before the current process 
has finished its bootstrapping phase.
これを解決するには、 if __name__ == "__main__": によるエントリポイント保護を追加してください。これは、スクリプトから直接 W&B を実行する際に必要です。
Sweeps
辞書のように機能する (run.config()) を使用して、 sweep configuration からハイパーパラメーターの名前と値にアクセスできます。Sweep 以外の Run の場合は、 wandb.init()config 引数に辞書を渡すことで wandb.Run.config() の値を設定します。 Sweep では、 wandb.init() に提供された構成はデフォルト値として機能し、 Sweep によって上書きされる可能性があります。明示的な動作をさせるには run.config.setdefaults() を使用してください。以下のコードスニペットで両方の方法を示します。
# ハイパーパラメーターのデフォルト値を設定
config_defaults = {"lr": 0.1, "batch_size": 256}

# Run を開始し、デフォルト値を指定
# これらは Sweep によって上書き可能
with wandb.init(config=config_defaults) as run:
    # ここにトレーニングコードを追加
    ...
SweepsMetrics
1回の Run で複数のメトリクスを最適化するには、個々のメトリクスの加重和を使用します。
with wandb.init() as run:
  # 個々のメトリクスを取得
  metric_a = run.summary.get("metric_a", 0.5)
  metric_b = run.summary.get("metric_b", 0.7)
  # ... 必要に応じて他のメトリクスを取得
  metric_n = run.summary.get("metric_n", 0.9)

  # 重み付けしてメトリクスを結合
  # 最適化の目標に合わせて重みを調整してください
  # 例: metric_a と metric_n をより重視する場合:  
  metric_combined = 0.3 * metric_a + 0.2 * metric_b + ... + 1.5 * metric_n
  run.log({"metric_combined": metric_combined})
新しい結合メトリクスをログに記録し、それを最適化目標として設定します。
metric:
  name: metric_combined
  goal: minimize
Experiments
W&B UI では / 文字がパネルを区切る役割を果たします。デフォルトでは、ログに記録されたアイテム名の / より前の部分が「Panel Section」と呼ばれるパネルのグループを定義します。
import wandb

with wandb.init() as run:

   run.log({"val/loss": 1.1, "val/acc": 0.3})
   run.log({"train/loss": 0.1, "train/acc": 0.94})
Workspace 設定で、最初のセグメントに基づいたグループ化、または / で区切られたすべてのセグメントに基づいたグループ化に調整できます。
Workspaces
このエラーを解決するには、 URL の末尾に ?workspace=clear を追加して Enter キーを押してください。これにより、プロジェクトページのワークスペースがクリアされた状態になります。
Experiments
クラス属性を直接 wandb.Run.log() に渡すのは避けてください。ネットワーク呼び出しが実行される前に属性が変更される可能性があります。メトリクスをクラス属性として保存している場合は、ディープコピー(deep copy)を使用して、ログに記録されるメトリクスが wandb.Run.log() 呼び出し時の属性値と一致するようにしてください。
Metrics
メトリクスの散布図(scatter plot)を作成してください。 Edit メニューを開き、 Annotations を選択します。そこから、値のランニング最大値(running maximum)をプロットできます。
Experiments
wandb.plot.line_series() を使用してマルチラインのカスタムチャートを作成します。 プロジェクトページ に移動して、折れ線グラフを確認してください。凡例を追加するには、 wandb.plot.line_series()keys 引数を含めます。例:

with wandb.init(project="my_project") as run:

    run.log(
        {
            "my_plot": wandb.plot.line_series(
                xs=x_data, ys=y_data, keys=["metric_A", "metric_B"]
            )
        }
    )
マルチラインプロットの詳細は、 こちらMulti-line タブを参照してください。
Experiments
wandb.Run.name 属性には以下のようにアクセスできます。
import wandb

with wandb.init() as run:
   run_name = run.name
   print(f"The human-readable run name is: {run_name}")
PrivacyProjects
プロジェクトのプライバシー(可視性)を変更するには:
  1. W&B App で、プロジェクト内の任意のページから左ナビゲーションの Overview をクリックします。
  2. 右上の Edit をクリックします。
  3. Project visibility で新しい値を選択します:
    • Team (デフォルト): 自分のチームだけがプロジェクトを表示および編集できます。
    • Restricted: 招待されたメンバーのみがプロジェクトにアクセスでき、一般公開はオフになります。
    • Open: 誰でも Run を送信したりレポートを作成したりできますが、編集できるのは自分のチームだけです。教室での授業やパブリックなベンチマークコンペティションなど、非永続的な文脈でのみ適切です。
    • Public: 誰でもプロジェクトを表示できますが、編集できるのは自分のチームだけです。
      W&B 管理者が Public の可視性をオフに設定している場合、これを選択することはできません。代わりに、閲覧専用の W&B レポート を共有するか、 W&B 組織の管理者に相談してください。
  4. Save をクリックします。
プロジェクトをより厳格なプライバシー設定に更新した場合、以前アクセスできていた個々のユーザーが引き続きアクセスできるように、再招待が必要になる場合があります。
NotebooksEnvironment Variables
"Failed to query for notebook name, you can set it manually with the WANDB_NOTEBOOK_NAME environment variable," というエラーメッセージが表示された場合は、環境変数を設定することで解決します。以下のいくつかの方法があります。
%env "WANDB_NOTEBOOK_NAME" "notebook name here"
Experiments
Run オブジェクトの .save() メソッドを呼び出して、現在の Run を保存します。Run オブジェクトの name 属性を使用して名前を取得してください。
Artifacts
Run を削除する際、関連する Artifacts も削除するかどうかの確認が表示されます。このオプションを選択すると、 Artifacts は永久に削除され、後で Run 自体を復元したとしても復旧させることは不可能です。
Runs
削除した Run を復元するには、以下の手順を行ってください。
  • プロジェクトの Overview ページに移動します。
  • 右上の3つの点をクリックします。
  • Undelete recently deleted runs を選択します。
注意:
  • 復元できるのは過去7日以内に削除された Run のみです。
  • 復元が不可能な場合は、 W&B API を使用してログを手動でアップロードできます。
ReportsWorkspaces
Workspaces は更新されたデータを自動的に読み込みます。レポートには自動更新は適用されません。レポートのデータを更新するには、ページを再読み込みしてください。
User Management
パスワードリセットメールが届かずアカウントにアクセスできない場合:
  1. 迷惑メールフォルダを確認する: メールのフィルタリング設定を確認してください。
  2. メールアドレスの確認: アカウントに関連付けられたメールアドレスが正しいか確認してください。
  3. SSO オプションを確認: 利用可能であれば “Sign in with Google” などのサービスを使用してください。
  4. サポートに連絡: 問題が解決しない場合は、ユーザー名とメールアドレスを添えてサポート (support@wandb.com) までお問い合わせください。
Administrator
管理者権限なしでチームスペースからプロジェクトを削除するには、以下のオプションがあります。
  • 現在の管理者にプロジェクトの削除を依頼します。
  • プロジェクト管理のために一時的なアクセス権限を付与するよう管理者に依頼します。
管理者に連絡が取れない場合は、組織内の請求担当管理者や他の権限を持つユーザーに相談してください。
Projects
プロジェクト名を変更するには:
  • Project overview に移動します。
  • Edit Project をクリックします。
注意:
  • model-registry などの保護されたプロジェクト名は変更できません。保護された名前に関するサポートが必要な場合は、お問い合わせください。
Administrator
期限切れのライセンスを更新するには、サポートチーム (support@wandb.com) にお問い合わせください。更新プロセスおよび新しいライセンスキーの取得についてサポートいたします。
ReportsWysiwyg
WYSIWYG への移行後も元の外観を維持することを目指していますが、変換プロセスが完璧でない場合があります。大きな不一致が生じた場合は、調査のために報告してください。編集セッションが終了するまでは、以前の状態に戻すことができます。
ReportsWysiwyg
古いハードウェアや非常に大きなレポートでは、パフォーマンスの問題が発生する可能性があります。これを軽減するには、現在使用していないレポートのセクションを折りたたんでください。
Reports
はい。ドキュメントの任意の場所で “/mark” と入力して Enter キーを押すと、 Markdown ブロックが挿入されます。これにより、以前と同様に Markdown を使用して編集できます。
User Management
W&B アカウントを削除するには、 User settings ページに移動し、一番下までスクロールして Delete Account ボタンをクリックしてください。
SweepsHyperparameterRuns
グリッド検索は完了したが、クラッシュなどにより一部の W&B Runs を再実行する必要がある場合、まずそれらの特定の W&B Runs を削除します。次に、 sweep control ページResume ボタンを選択します。新しい Sweep ID を使用して、新しい W&B Sweep エージェントを開始してください。すでに完了している W&B Run のパラメータの組み合わせは再実行されません。
User Management
ログインに関する問題を解決するには、以下の手順に従ってください。
  • アクセスの確認: 正しいメールアドレスまたはユーザー名を使用しているか確認し、関連するチームやプロジェクトのメンバーシップを確認してください。
  • ブラウザのトラブルシューティング:
    • キャッシュの干渉を避けるためにシークレットウィンドウを使用してください。
    • ブラウザのキャッシュをクリアしてください。
    • 別のブラウザやデバイスからログインを試みてください。
  • SSO と権限:
    • ID プロバイダー (IdP) とシングルサインオン (SSO) の設定を確認してください。
    • SSO を使用している場合は、適切な SSO グループに含まれていることを確認してください。
  • 技術的な問題:
    • 特定のエラーメッセージを控えて、さらに調査を行ってください。
    • 問題が解決しない場合は、サポートチームにお問い合わせください。
RunsSecurity
W&B エンティティに Run を記録する際、権限エラーが発生した場合は以下の手順に従ってください。
  • エンティティ名とプロジェクト名の確認: コード内の W&B エンティティ名とプロジェクト名が、大文字小文字を含めて正しく入力されているか確認してください。
  • 権限の確認: 管理者によって必要な権限が付与されていることを確認してください。
  • ログイン認証情報の確認: 正しい W&B アカウントにログインしていることを確認してください。以下のコードで Run を作成してテストします。
    import wandb
    
    run = wandb.init(entity="your_entity", project="your_project")
    run.log({'example_metric': 1})
    run.finish()
    
  • APIキーの設定: WANDB_API_KEY 環境変数を使用します:
    export WANDB_API_KEY='your_api_key'
    
  • ホスト情報の確認: カスタムデプロイメントの場合は、ホスト URL を設定してください:
    wandb login --relogin --host=<host-url>
    export WANDB_BASE_URL=<host-url>
    
Resuming
W&B で resume パラメータを使用するには、 wandb.init()entityprojectid を指定した上で resume 引数を設定します。 resume 引数は "must" または "allow" の値を受け入れます。
run = wandb.init(entity="your-entity", project="your-project", id="your-run-id", resume="must")
SweepsPython
Sweep を再開するには、 sweep_idwandb.agent() 関数に渡します。
import wandb

sweep_id = "your_sweep_id"

def train():
    # ここにトレーニングコード
    pass

wandb.agent(sweep_id=sweep_id, function=train)
Artifacts
機密データを含む Artifacts を管理したり、 Artifact バージョンの削除をスケジュールしたりするには、 TTL(time-to-live)ポリシーを設定します。詳細な手順については、 TTL ガイド を参照してください。
AdministratorSecurity
個人用キーおよびサービスアカウントキーは、ローテーションや取り消しが可能です。新しい API キーまたはサービスアカウントユーザーを作成し、新しいキーを使用するようにスクリプトを再設定してください。設定変更後、プロフィールまたはチームから古い API キーを削除します。
AlertsNotebooks
いいえ。 Run Finished アラート(ユーザー設定の Run Finished 設定で有効化)は Python スクリプトのみで動作し、各セルの実行ごとに通知が届くのを防ぐために Jupyter Notebook 環境ではオフにされています。ノートブック環境では、代わりに run.alert() を使用してください。
Crashing And Hanging Runs
これは接続の問題を示しています。サーバーのインターネットアクセスが失われ、 W&B へのデータ同期が停止した場合、短期間のリトライ後、システムはその Run を crashed としてマークします。
Anonymous
スクリプトを anonymous="allow" で実行すると、以下のようになります:
  1. 匿名アカウントの自動作成: W&B はサインイン済みのアカウントがあるか確認します。なければ新しい匿名アカウントを作成し、そのセッション用の API キーを保存します。
  2. 結果を素早くログ記録: ユーザーは繰り返しスクリプトを実行し、 W&B ダッシュボードで即座に結果を確認できます。これらの申請(claim)されていない匿名 Run は 7日間保存されます。
  3. 役立つデータがあれば申請: 有益な結果が見つかったら、ページ上部のバナーにあるボタンをクリックして、 Run データを実際のアカウントに保存(申請)できます。申請されない場合、 Run データは 7日後に削除されます。
匿名 Run のリンクは機密情報です。これらのリンクを知っていれば、誰でも 7日間実験結果を閲覧し、申請することができます。リンクは信頼できる相手にのみ共有してください。著者の正体を隠したまま結果を一般公開共有したい場合は、 support@wandb.com までお問い合わせください。
W&B ユーザーがスクリプトを見つけて実行した場合、その結果は通常の Run と同様にそのユーザーのアカウントに正しく記録されます。
Sweeps
SLURM スケジューリングシステム で Sweeps を使用する場合、各スケジューリングジョブ内で wandb agent --count 1 SWEEP_ID を実行してください。このコマンドは1つのトレーニングジョブのみを実行して終了するため、ハイパーパラメーター探索の並列性を活かしつつ、リソース要求のための実行時間予測が容易になります。
Experiments
オフラインのマシンでトレーニングを行う場合、以下の手順で結果をサーバーにアップロードできます:
  1. 環境変数 WANDB_MODE=offline を設定して、インターネット接続なしでメトリクスをローカルに保存します。
  2. アップロードの準備ができたら、ディレクトリ内で wandb init を実行してプロジェクト名を設定します。
  3. wandb sync YOUR_RUN_DIRECTORY を使用して、メトリクスをクラウドサービスに転送し、ウェブアプリで結果を確認します。
Run がオフラインであることを確認するには、 wandb.init() 実行後に run.settings._offline または run.settings.mode をチェックしてください。
ProjectsRuns
最適なパフォーマンスを得るために、各プロジェクトの Run 数は 10,000 件程度に制限してください。
Experiments
トレーニング中にマシンへの接続が切断された可能性があります。 wandb sync [PATH_TO_RUN] を実行してデータを復旧させてください。 Run へのパスは、実行中の Run ID と一致する wandb ディレクトリ内のフォルダです。
Experiments
同じキーで異なるデータ型をログに記録すると、データベース内で分割されます。その結果、 UI のドロップダウンに同じメトリクス名のエントリが複数表示されることになります。グループ化されるデータ型は、 numberstringboolother (主に配列)、および HistogramImage などの wandb データ型です。この問題を避けるため、1つのキーに対して送信する型は1つだけにしてください。メトリクス名は大文字と小文字を区別しません。 "My-Metric""my-metric" のように、大文字小文字の違いしかない名前の使用は避けてください。
Artifacts
wandb.initsave_code=True を使用すると、 Run を開始したメインスクリプトやノートブックが保存されます。 Run のすべてのコードを保存するには、 Artifacts でコードをバージョン管理してください。以下の例でその手順を示します:
code_artifact = wandb.Artifact(type="code")
code_artifact.add_file("./train.py")
wandb.log_artifact(code_artifact)
Experiments
wandb.init が呼び出されると、システムはリモートリポジトリのリンクや最新コミットの SHA を含む git 情報を自動的に収集します。この情報は run ページ に表示されます。この情報を表示させるには、スクリプト実行時の現在の作業ディレクトリが git 管理下のフォルダ内にあることを確認してください。git コミットや実験の実行に使用されたコマンドは、本人には表示されますが、外部ユーザーからは隠されます。パブリックプロジェクトでも、これらの詳細は非公開のままです。
ExperimentsEnvironment VariablesMetrics
デフォルトでは、 wandb.init はリアルタイムでメトリクスをクラウドに同期するプロセスを開始します。オフラインで使用する場合は、2つの環境変数を設定してオフラインモードを有効にし、後で同期するようにしてください。以下の環境変数を設定します:
  1. WANDB_API_KEY=$KEY ($KEY は ユーザー設定 で作成した API キー)。
  2. WANDB_MODE="offline"
スクリプトでの実装例は以下の通りです:
import wandb
import os

os.environ["WANDB_API_KEY"] = "YOUR_KEY_HERE"
os.environ["WANDB_MODE"] = "offline"

config = {
    "dataset": "CIFAR10",
    "machine": "offline cluster",
    "model": "CNN",
    "learning_rate": 0.01,
    "batch_size": 128,
}

with wandb.init(project="offline-demo") as run:
    for i in range(100):
        run.log({"accuracy": i})
ターミナル出力のサンプル:
オフラインモードのターミナル出力
作業完了後、以下のコマンドを実行してデータをクラウドに同期します:
wandb sync wandb/dryrun-folder-name
クラウド同期のターミナル出力
Administrator
組織設定内で、組織の保存バイト数(bytes stored)、追跡バイト数(bytes tracked)、および追跡時間(tracked hours)を確認できます:
  1. https://wandb.ai/account-settings/<organization-name>/settings にある組織設定に移動します。
  2. Billing タブを選択します。
  3. Usage this billing period セクションで、 View usage ボタンをクリックします。
<organization-name> の部分は、実際の組織名に置き換えてください。
ExperimentsMetrics
Step 以外の X 軸に対してメトリクスを可視化する場合、表示されるデータポイントが少なくなることがあります。メトリクスが同期した状態を維持するには、同じ Step でログを記録する必要があります。サンプル間の補間中、同じ Step でログ記録されたメトリクスのみがサンプリングされます。ガイドラインメトリクスは 1回の log() 呼び出しにまとめてください。例えば、次のように書く代わりに:
import wandb
with wandb.init() as run:
    run.log({"Precision": precision})
    ...
    run.log({"Recall": recall})
次のように記述します:
import wandb
with wandb.init() as run:
    run.log({"Precision": precision, "Recall": recall})
ステップパラメータを手動で制御する場合は、次のようにコード内でメトリクスを同期させます:
with wandb.init() as run:
    step = 100  # ステップ値の例
    # 同じステップで Precision と Recall をログ
    run.log({"Precision": precision, "Recall": recall}, step=step)
メトリクスが同じステップの下でログに記録され、一緒にサンプリングされるように、両方の log() 呼び出しで step の値が同じであることを確認してください。 step の値は各呼び出しで単調増加する必要があります。そうでない場合、 step の値は無視されます。
Alerts
Teams で W&B アラートを受け取るには、以下の手順に従ってください:
  • Teams チャネルのメールアドレスを設定する。 アラートを受信したい Teams チャネル用のメールアドレスを作成します。
  • W&B のアラートメールを Teams チャネルのメールアドレスに転送する。 W&B がメールでアラートを送信するように設定し、それらのメールを Teams チャネルのメールアドレスに転送するように設定してください。
Administrator
サービスアカウント(Service account) は人間ではないマシンアイデンティティを表し、チームやプロジェクト全体で共通のタスクを自動化できます。サービスアカウントは、 CI/CD パイプライン、自動トレーニングジョブ、その他のマシン間ワークフローに最適です。サービスアカウントの主な利点:
  • ライセンスの消費なし: サービスアカウントはユーザーシートやライセンスを消費しません。
  • 専用の API キー: 自動ワークフロー用の安全な認証情報。
  • ユーザーの属性付け: オプションで、自動化された Runs を人間のユーザーに関連付けることができます。
  • エンタープライズ対応: 大規模なプロダクション自動化のために構築されています。
  • 委任された操作: サービスアカウントは、それを作成したユーザーまたは組織に代わって動作します。
特に、サービスアカウントは、定期的な再トレーニングやナイトリービルドなど、 wandb にログ記録される自動ジョブの追跡に役立ちます。必要であれば、 環境変数 WANDB_USERNAME または WANDB_USER_EMAIL を使用して、これらのマシンから起動された Run にユーザー名を関連付けることができます。ベストプラクティスや詳細な設定手順を含むサービスアカウントの包括的な情報については、 サービスアカウントを使用してワークフローを自動化する を参照してください。チーム内でのサービスアカウントの振る舞いについては、 チームのサービスアカウントの振る舞い を参照してください。To create a new team-scoped service account and API key:
  1. In your team’s settings, click Service Accounts.
  2. Click New Team Service Account.
  3. Provide a name for the service account.
  4. Set Authentication Method to Generate API key (default). If you select Federated Identity, the service account cannot own API keys.
  5. Click Create.
  6. Find the service account you just created.
  7. Click the action menu (...), then click Create API key.
  8. Provide a name for the API key, then click Create.
  9. Copy the API key and store it securely.
  10. Click Done.
完全な API キーは作成時に一度だけ表示されます。ダイアログを閉じると、二度と確認することはできません。
組み込み(Built-in) のサービスアカウント以外にも、 W&B は SDK および CLI 用のアイデンティティ連携 を使用した 外部サービスアカウント(External service accounts) もサポートしています。 JSON Web Token (JWT) を発行できる ID プロバイダーで管理されているサービスアイデンティティを使用して、 W&B のタスクを自動化したい場合は、外部サービスアカウントを使用してください。
Charts
カスタムチャートエディターの “Other settings” ページでこのオプションを有効にします。クエリを summaryTable ではなく historyTable を使用するように変更すると、カスタムチャートエディターに “Show step selector” オプションが表示されます。この機能には、ステップを選択するためのスライダーが含まれます。
NotebooksEnvironment Variables
ノートブックで以下のようなログメッセージを抑制するには:
INFO SenderThread:11484 [sender.py:finish():979]
ログレベルを logging.ERROR に設定してエラーのみを表示し、情報(info)レベルのログ出力を抑制してください。
import logging

logger = logging.getLogger("wandb")
logger.setLevel(logging.ERROR)
ログ出力を大幅に減らすには、環境変数 WANDB_QUIETTrue に設定します。完全に消すには、環境変数 WANDB_SILENTTrue に設定してください。ノートブックでは、 wandb.login を実行する前に WANDB_QUIET または WANDB_SILENT を設定します:
%env WANDB_SILENT=True
Experiments
通常の利用状況下では、 W&B がトレーニングパフォーマンスに与える影響は最小限です。通常の利用とは、 1秒に 1回未満の頻度でのログ記録や、 1ステップあたり数メガバイト程度にデータを制限することを指します。 W&B は非ブロッキングな関数呼び出しを行う別プロセスで動作するため、一時的なネットワーク停止や断続的なディスクの読み書きの問題がパフォーマンスを阻害することはありません。大量のデータを過剰にログに記録すると、ディスク I/O の問題につながる可能性があります。詳細についてはサポートにお問い合わせください。
Security
W&B は Auth0 を通じてマルチテナント提供向けのシングルサインオン(SSO)をサポートしています。 SSO 統合は、 Okta や Azure AD などの OIDC 準拠の ID プロバイダーと互換性があります。 OIDC プロバイダーを設定するには、以下の手順に従ってください:
  • ID プロバイダーでシングルページアプリケーション(SPA)を作成します。
  • grant_typeimplicit フローに設定します。
  • コールバック URI を https://wandb.auth0.com/login/callback に設定します。
W&B 側の要件セットアップ完了後、アプリケーションの Client IDIssuer URL を添えてカスタマーサクセスマネージャー(CSM)までご連絡ください。 W&B はこれらの詳細情報を使用して Auth0 接続を確立し、 SSO を有効にします。
Environment Variables
環境変数 WANDB_SILENTtrue に設定してください。
os.environ["WANDB_SILENT"] = "true"
Storage
  • 処理の遅延により、 Run の削除直後にはストレージメーターが更新されないことがあります。
  • バックエンドシステムが同期し、使用状況の変更を正確に反映するまでに時間がかかります。
  • ストレージメーターが更新されない場合は、変更が処理されるまでお待ちください。
Environment Variables
W&B は、障害への対応や WANDB_MODE=offline 設定(ログ記録後の同期を可能にする)をサポートするために、イベントをメモリ内のキューに入れ、非同期にディスクに書き込みます。ターミナルでローカルの Run ディレクトリへのパスを確認してください。このディレクトリにはデータストアとして機能する .wandb ファイルが含まれています。画像のログ記録の場合、 W&B は画像を media/images サブディレクトリに保存してから、クラウドストレージにアップロードします。
SweepsAws
任意の W&B Sweep エージェントがアクセスできるように sweep_id を公開するために、これらのエージェントが sweep_id を読み取って実行するための方法を実装してください。例えば、 Amazon EC2 インスタンスを起動し、その上で wandb agent を実行します。 SQS キューを使用して sweep_id を複数の EC2 インスタンスにブロードキャストします。各インスタンスはキューから sweep_id を取得し、プロセスを開始できます。
SweepsAws
W&B の認証を行うには、 Amazon SageMaker の組み込み Estimator を使用している場合は requirements.txt ファイルを作成してください。認証と requirements.txt ファイルの設定の詳細については、 SageMaker インテグレーション ガイドを参照してください。
完全な例は GitHub にあります。また、 ブログ でもさらに詳しく解説しています。
SageMaker と W&B を使用して感情分析器をデプロイするチュートリアルについては、 Deploy Sentiment Analyzer Using SageMaker and W&B にアクセスしてください。
Environment Variables
同じマシンから 2つの W&B アカウントを管理するには、両方の API キーをファイルに保存してください。リポジトリ内で以下のコードを使用することで、秘密鍵がソース管理にチェックインされるのを防ぎつつ、安全にキーを切り替えることができます。
if os.path.exists("~/keys.json"):
    os.environ["WANDB_API_KEY"] = json.loads("~/keys.json")["work_account"]
Metrics
メトリクスはデフォルトで 10秒ごとに収集されます。より高解像度なメトリクスが必要な場合は、 contact@wandb.com までメールでお問い合わせください。
Team Management
チームに関する詳細については、 チームセクション をご覧ください。
Artifacts
テスト目的で W&B を何もしない(NOOP)ように設定するには、 wandb.init(mode="disabled") を使用するか、 WANDB_MODE=disabled を設定してください。
wandb.init(mode="disabled") を使用しても、 W&B が WANDB_CACHE_DIR に Artifacts を保存するのを防ぐことはできません。
Experiments
データセットをトレーニング Run に関連付けるには、 SHA または一意の識別子を wandb.Run.config.update(...) に渡してください。 wandb.Run.save() がローカルファイル名と共に呼び出されない限り、 W&B がデータを保存することはありません。
User ManagementTeam Management
利用可能な役割と権限の概要については、 チームの役割と権限 ページをご覧ください。
Billing
支払い方法を更新するには、以下の手順に従ってください:
  1. プロフィールページに移動する: まず、ユーザープロフィールページに移動します。
  2. 組織(Organization)を選択する: アカウントセレクターから関連する組織を選択します。
  3. 請求(Billing)設定にアクセスする: Account の下にある Billing を選択します。
  4. 新しい支払い方法を追加する:
    • Add payment method をクリックします。
    • 新しいカード情報を入力し、それを primary(優先)の支払い方法にするオプションを選択します。
注意: 請求を管理するには、組織の請求担当管理者に割り当てられている必要があります。
Reports
レポートに CSV をアップロードするには、 wandb.Table 形式を使用してください。 Python スクリプトで CSV を読み込み、 wandb.Table オブジェクトとしてログに記録します。これにより、データがレポート内でテーブルとしてレンダリングされます。
Reports
新しい行で / を押し、 Image オプションまでスクロールして、画像をレポートにドラッグ&ドロップしてください。
レポートへの画像追加
PrivacySecurity
W&B の主要なエンジニアおよびサポートスタッフは、ユーザーの許可を得た上で、デバッグ目的でログ記録された値にアクセスすることがあります。すべてのデータストアは保存時に暗号化され、アクセスは監査ログに記録されます。 W&B 従業員に対する完全なデータセキュリティを確保するには、セルフマネージド(Self-Managed)ソリューションをライセンス契約し、自社のインフラ内で W&B サーバーを実行してください。
ConnectivityOutage
wandb.ai 上の W&B マルチテナントクラウドに障害が発生しているかどうかは、W&B ステータスページで確認できます。
Environment VariablesExperiments
トレーニングスクリプトで wandb.init() が実行されると、 API 呼び出しによってサーバー上に Run オブジェクトが作成されます。メトリクスをストリーミングおよび収集するための新しいプロセスが開始され、メインプロセスは通常通り動作できるようになります。スクリプトはローカルファイルに書き込み、別のプロセスがシステムメトリクスを含むデータをサーバーにストリーミングします。ストリーミングをオフにするには、トレーニングディレクトリから wandb off を実行するか、環境変数 WANDB_MODEoffline に設定してください。
Sweeps
Sweep の実行中:
  • Sweep が使用している train.py スクリプトが変更された場合、 Sweep は元の train.py を使い続けます。
  • train.py スクリプトが参照しているファイル( helper.py 内のヘルパー関数など)が変更された場合、 Sweep は更新された helper.py を使用し始めます。
ArtifactsEnvironment Variables
デフォルトでは、 Artifacts は artifacts/ フォルダにダウンロードされます。場所を変更するには:
  • wandb.Artifact().download にパスを渡します:
    wandb.Artifact().download(root="<ダウンロードパス>")
    
  • 環境変数 WANDB_ARTIFACT_DIR を設定します:
    import os
    os.environ["WANDB_ARTIFACT_DIR"] = "<ダウンロードパス>"
    
ExperimentsRuns
エクスポートの制限により、 Run の履歴全体を CSV や run.history API を使用してエクスポートできない場合があります。 Run の完全な履歴にアクセスするには、 Parquet 形式を使用して Run history artifact をダウンロードしてください。
import wandb
import pandas as pd

run = wandb.init()
artifact = run.use_artifact('<entity>/<project>/<run-id>-history:v0', type='wandb-history')
artifact_dir = artifact.download()
df = pd.read_parquet('<.parquet ファイルへのパス>')
Python
ライブラリは Python 2.7 以降、および Python 3.6 以降をサポートしています。このアーキテクチャーは、他のプログラミング言語との統合も容易にするように設計されています。他の言語のモニタリングについては、 contact@wandb.com までお問い合わせください。