メインコンテンツへスキップ
以下は、すべてのカテゴリーで特によく寄せられる質問です。 お探しの内容が見つからない場合は、以下の人気のカテゴリーを参照するか、カテゴリー別に記事を検索してください。

まだお探しの内容が見つかりませんか?

サポートにお問い合わせ
AdministratorAcademicUser Management
学生は、次の手順でアカデミックプランに申し込むことができます。
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 の設定は変更できません。ただし、任意のテーブルビューに移動し、チェックボックスで run を選択してから、メニューオプションの Create sweep を選択することで、これまでの run に基づいた新しい Sweep の設定を作成できます。
AdministratorUser Management
アカウントにシート数を追加するには、次の手順に従います。
  • Account Executive またはサポートチーム(support@wandb.com)に連絡して支援を依頼します。
  • 組織名と、追加したいシート数を伝えます。
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
インスタンスの管理者である場合は、ユーザーの追加やチームの作成方法については、User Management セクションを参照してください。
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
  • 永続的なデータなし: 匿名アカウントでは run は 7 日間のみ保存されます。匿名 run のデータを引き継ぐには、実アカウントに紐付けて取得してください。
匿名モードのインターフェース
  • アーティファクトのロギングなし: 匿名 run にアーティファクトをログしようとすると、コマンドラインに警告が表示されます:
    wandb: WARNING Artifacts logged anonymously cannot be claimed and expire after 7 days.
    
  • プロフィールおよび設定ページなし: UI には、実アカウントでのみ意味を持つ一部のページは表示されません。
ArtifactsStorage
2 つのアーティファクトバージョン間で変更されたファイルのみがストレージコストの対象になります。
アーティファクトの重複排除
cat.pngdog.png という 2 つの画像ファイルを含む animals という名前の画像アーティファクトを考えます:
images
|-- cat.png (2MB) # `v0` で追加
|-- dog.png (1MB) # `v0` で追加
このアーティファクトにはバージョン v0 が付きます。新しい画像 rat.png を追加すると、新しいアーティファクトバージョン v1 が次の内容で作成されます:
images
|-- cat.png (2MB) # `v0` で追加
|-- dog.png (1MB) # `v0` で追加
|-- rat.png (3MB) # `v1` で追加
バージョン v1 は合計 6MB を参照しますが、v0 と 3MB を共有しているため、実際には 3MB の領域のみを占有します。v1 を削除すると、rat.png に関連付けられた 3MB のストレージが解放されます。v0 を削除すると、cat.pngdog.png のストレージコストが v1 に移され、そのストレージサイズは 6MB に増加します。
Artifacts
モデルのバージョン管理にはさまざまな方法があります。アーティファクトは、特定のニーズに合わせたモデルのバージョン管理ツールを提供します。複数のモデルアーキテクチャを探索するプロジェクトで一般的なアプローチは、アーキテクチャごとにアーティファクトを分離することです。次のステップを検討してください:
  1. それぞれ異なるモデルアーキテクチャごとに新しいアーティファクトを作成します。アーティファクトの metadata 属性を使って、run の config と同様にアーキテクチャの詳細な説明を付与します。
  2. 各モデルについて、log_artifact を使って定期的にチェックポイントをログします。W&B はこれらのチェックポイントの履歴を構築し、最新のものに latest エイリアスを付けます。任意のモデルアーキテクチャの最新チェックポイントを参照するには、architecture-name:latest を使用します。
ArtifactsSweeps
sweep 内でモデルをログする効果的な方法の 1 つは、スイープ用のモデルアーティファクトを作成することです。各バージョンはスイープ内の異なる run を表します。次のように実装します:
wandb.Artifact(name="sweep_name", type="model")
HyperparameterSweepsRuns
wandb.init(tags='your_tag') で一意のタグを設定します。これにより、Project Page の Runs Table で該当するタグを選択して、プロジェクト内の run を効率的にフィルタリングできます。wandb.init() の詳細については、wandb.init() リファレンスを参照してください。
Security
Weights & Biases にはバグバウンティプログラムがあります。詳細は W&B security portal にアクセスしてください。
Administrator
  • サポートチーム(support@wandb.com)に連絡します。
  • 組織名、アカウントに紐づいているメールアドレス、ユーザー名を伝えてください。
AdministratorAcademicUser Management
W&B のアカウントを企業利用からアカデミック利用に変更するには、次の手順に従います。
  1. アカデミックメールアドレスを紐づける:
    • アカウント設定にアクセスします。
    • アカデミックメールアドレスを追加し、プライマリメールとして設定します。
  2. アカデミックプランに申し込む:
AdministratorBilling
請求先住所を変更するには、サポートチーム(support@wandb.com)に連絡してください。
Sweeps
W&B の run データのログ出力ディレクトリは、環境変数 WANDB_DIR を設定して指定できます。例:
os.environ["WANDB_DIR"] = os.path.abspath("your/directory")
Runs
完了した run に割り当てられているグループは、API を使って変更できます。この機能は Web 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.7 のサポートは、Python 2 のサポート終了に伴いバージョン 0.11 で終了しました。Python 2.7 システムで pip install --upgrade wandb を実行すると、0.10 系の新しいリリースのみがインストールされます。0.10 系へのサポートは、重大なバグ修正とパッチのみに限定されます。Python 2.7 をサポートする 0.10 系の最終バージョンは 0.10.33 です。
Python
W&B クライアントライブラリは、バージョン 0.11 までは Python 3.5 をサポートしていました。Python 3.5 のサポートは、そのサポート終了に合わせてバージョン 0.12 で終了しました。詳細については、version 0.12 release notes を参照してください。
Experiments
画像パネルを展開し、ステップスライダーを使って異なるステップの画像を切り替えます。この操作により、学習中のモデルの出力の変化を比較できます。
Experiments
学習スクリプトの先頭で、実験名を指定して wandb.init を呼び出します。例: wandb.init(name="my_awesome_run")
ReportsWysiwyg
レポートの変換を画面上部のメッセージから行った場合は、赤い「Revert」ボタンをクリックして、以前の状態を復元してください。変換後に行った変更は失われる点に注意してください。単一の Markdown ブロックのみを変換した場合は、cmd+z で元に戻すことができます。セッションが閉じられたなどの理由で元に戻すオプションが利用できない場合は、下書きを破棄するか、最後に保存されたバージョンから編集することを検討してください。どちらも使えない場合は、W&B Support にお問い合わせください。
Crashing And Hanging Runs
学習 run に干渉しないことが重要です。W&B は別プロセスで動作するため、W&B がクラッシュした場合でも学習は継続します。インターネット障害が発生した場合、W&B は wandb.ai へのデータ送信を継続的に再試行します。
User Management
削除されたアカウントに紐づいていたメールアドレスは、新しいアカウントで再利用できます。
Team Management
ロールと権限の詳細については、次のリンクを参照してください: Team Roles and Permissions
Sweeps
学習の設定がコマンドライン引数を受け取る場合、W&B Sweeps でカスタム CLI コマンドを使用できます。次の例では、ユーザーが train.py という名前の Python スクリプトを学習する 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} キーは、スイープ設定内のすべてのパラメータを、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 account settings に移動します。
  2. Public preview features セクションまでスクロールします。
  3. UI Display のドロップダウンから Dark mode を選択します。
Connectivity
wandb: Network error (ConnectionError), entering retry loop のような SSL またはネットワークエラーが発生した場合は、次の対処法を試してください:
  1. SSL 証明書を更新します。Ubuntu サーバーでは、update-ca-certificates を実行します。有効な SSL 証明書は、セキュリティリスクを軽減しつつ学習ログを同期するために不可欠です。
  2. ネットワーク接続が不安定な場合は、optional environment variable 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 はその run をプロジェクト内で識別するためにランダムな名前を割り当てます。ランダムな名前の例としては、pleasant-flower-4misunderstood-glade-2 などがあります。
Charts
summary はテーブルに表示され、log は将来のプロット用にすべての値を保存します。たとえば、精度が変化するたびに run.log() を呼び出します。デフォルトでは、その指標に対して手動で設定しない限り、run.log() は summary の値を更新します。散布図と平行座標プロットは summary の値を使用し、折れ線グラフは run.log によって記録されたすべての値を表示します。一部のユーザーは、最新の精度ではなく最適な精度を反映するように summary を手動で設定することを好みます。
Team Management
team は、同じプロジェクトに取り組むユーザーの共同作業ワークスペースとして機能します。entity は、ユーザー名または team 名のいずれかを表します。W&B に run をログする際には、wandb.init(entity="example-team") のように、entity を個人アカウントまたは team アカウントに設定します。
Team ManagementAdministrator
team は、同じプロジェクトに取り組むユーザーの共同作業ワークスペースとして機能します。organization は、通常は課金やアカウント管理に関連し、複数の team を含むことができる、より上位レベルのエンティティとして機能します。
Experiments
利用可能なモードは次のとおりです:
  • online(デフォルト): クライアントはデータを wandb サーバーに送信します。
  • offline: クライアントはデータを wandb サーバーに送信する代わりに、マシン上にローカル保存します。後で wandb sync コマンドを使用してデータを同期します。
  • disabled: クライアントはモックオブジェクトを返すことで動作をシミュレートし、ネットワーク通信を行いません。すべてのロギングは無効になりますが、すべての API メソッドスタブは引き続き呼び出し可能です。このモードは通常、テストに使用されます。
Tensorboard
W&B は TensorBoard と連携しつつ、実験トラッキングツールを強化します。創業者たちは TensorBoard ユーザーが直面する一般的な不満を解消するために W&B を作りました。主な改善点は次のとおりです。
  1. モデルの再現性: W&B は実験、探索、モデルの再現を容易にします。メトリクス、ハイパーパラメータ、コードバージョンを記録し、モデルのチェックポイントを保存することで、再現性を確保します。
  2. 自動整理: W&B は、試したすべてのモデルの概要を提供することで、プロジェクトの引き継ぎや休暇時の作業を効率化し、過去の実験を再実行する手間を省きます。
  3. 迅速なインテグレーション: 5 分で W&B をプロジェクトに組み込めます。無料のオープンソースの Python パッケージをインストールし、数行のコードを追加するだけです。ログされたメトリクスや記録は、各モデルの run とともに表示されます。
  4. 集中管理されたダッシュボード: 学習がローカル、研究室のクラスター、クラウドのスポットインスタンスのどこで行われていても、一貫したダッシュボードにアクセスできます。異なるマシン間で TensorBoard ファイルを管理する必要がなくなります。
  5. 強力なフィルタリングテーブル: さまざまなモデルからの結果を検索、フィルタ、ソート、グループ化して効率的に分析できます。TensorBoard が大規模なプロジェクトでは苦労しがちな領域でも、タスクごとに最も性能の高いモデルを簡単に特定できます。
  6. コラボレーションツール: W&B は、複雑な機械学習プロジェクトでのコラボレーションを強化します。プロジェクトのリンクを共有し、プライベートチームを使って結果を共有できます。作業ログやプレゼンテーション用に、インタラクティブな可視化と Markdown の説明を含むレポートを作成できます。
BillingAdministrator
サブスクリプションプランをダウングレードするには、現在のプランの詳細と希望するプランを記載して support@wandb.com のサポートチームまでご連絡ください。
Reports
個人のプライベートプロジェクト内で作成されたレポートは、そのユーザーにのみ表示されます。ユーザーは、プロジェクトをチームまたはパブリックに共有できます。チームプロジェクトでは、管理者またはレポートを作成したメンバーが、他のチームメンバー向けに編集権限と閲覧権限を切り替えることができます。チームメンバーはレポートを共有できます。レポートを共有するには、右上の Share ボタンを選択します。メールアドレスを入力するか、マジックリンクをコピーします。メールで招待された Users は、レポートを閲覧するために W&B にログインする必要がありますが、マジックリンクを持つ Users はログインする必要はありません。共有されたレポートは、閲覧専用アクセスが維持されます。
Reports
レポートを埋め込んで共有できます。レポート右上の Share ボタンをクリックし、ポップアップウィンドウ下部から埋め込みコードをコピーします。
レポートの埋め込み
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 を作成する際に生成される Runs の推定数を計算します。この総数は、探索空間のデカルト積に相当します。例として、次のような探索空間を考えます:
Estimated runs column
この場合、デカルト積は 9 になります。W&B は、この値を App UI 上で推定 run 数(Est. Runs)として表示します:
Sweep run estimation
推定 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 Organization からユーザー一覧をエクスポートするには、管理者が次のコードのように 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 = ''  # Organization admin username
key = ''  # API key
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
アーティファクト参照が W&B にログされていて、バケットでバージョニングが有効になっている場合、Version ID は Amazon S3 UI に表示されます。W&B でこれらの Version ID と ETag を取得するには、アーティファクトを取得して対応するマニフェストエントリにアクセスします。例:
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 status updates を確認し、一時的なサーバー側の問題が原因でないことを確認します。
サポートに連絡する:
  • 実験セットアップの詳細を添えて W&B サポート (support@wandb.com) に連絡し、レート制限の引き上げを依頼してください。
Reports
検索バーを使用してレポート一覧をフィルタリングします。不要なレポートを選択して個別に削除するか、すべてのレポートを選択して「Delete Reports」をクリックし、プロジェクトから削除します。
Delete unwanted reports and drafts
SecurityUser Management
Dedicated Cloud および Self-Managed の場合:
  • 組織管理者は、組織内のすべてのユーザーとサービスアカウントのAPIキーを確認または一覧表示できます。
  • Teams管理者は、自分が管理するチーム内のサービスアカウントのAPIキーを確認または一覧表示できます。
  • 管理者ではないユーザーは、自分自身のAPIキーを確認または一覧表示できます。
APIキーを確認するには、詳細を表示したい Personal API key タブまたは Service Account API key タブを選択します。
自分のユーザーIDに紐づく個人用APIキーを確認するには、次の手順を実行します。
  1. W&B にログインし、ユーザープロフィールアイコンをクリックしてから User Settings をクリックします。
  2. API Keys セクションまでスクロールします。
APIキーのテーブルには、識別のためにキーID(各APIキーの先頭部分)が表示されます。完全なシークレットAPIキーは、作成時に一度だけ表示されます。既存のキーを使用する必要があるにもかかわらず、完全なシークレットを保存していない場合は、新しいAPIキーを作成する必要があります。
Artifacts
スイープ内で最も性能の高い run からアーティファクトを取得するには、次のコードを使用します。
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 が記録したアーティファクトと、各 run が使用したアーティファクトを追跡し、アーティファクトグラフを構成します。このグラフは、ノードが run とアーティファクトを表す二部グラフで、有向非巡回グラフです。例はこちらで確認できます(グラフを展開するには「Explode」をクリックしてください)。Public API を使用して、アーティファクトまたは run のどちらかを起点に、このグラフをプログラムからたどることができます。
api = wandb.Api()

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

# アーティファクトからグラフを上方向にたどる:
producer_run = artifact.logged_by()
# アーティファクトからグラフを下方向にたどる:
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} マクロを使用して、ハイパーパラメータをブールフラグとして渡します。このマクロはブール型パラメータを自動的にフラグとして含めます。paramTrue の場合、コマンドは --param を受け取ります。paramFalse の場合、そのフラグは省略されます。
Tensorboard
指数移動平均の式は、TensorBoard で使用されているものと一致します。同等の Python 実装の詳細については、この Stack Overflow の説明を参照してください。この記事の執筆時点での TensorBoard のスムージングアルゴリズムのソースコードはこちらにあります。
Workspaces
いくつかの機能は、チームの設定内の Beta Features セクションにあるフィーチャーフラグの下に隠れています。
フィーチャーフラグの下に隠れている利用可能なベータ機能
Experiments
「No visualization data logged yet」というメッセージが表示される場合、スクリプトが最初の wandb.log 呼び出しを実行していません。これは、run が 1 ステップを完了するのに長時間かかる場合に発生することがあります。データの記録を早めるには、最後に 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 です
  • WANDB_CACHE_DIR=<path>: wandb.Artifact を呼び出したときにアーティファクトが作成および保存される場所です。デフォルトは ~/.cache/wandb です
  • WANDB_CONFIG_DIR=<path>: config ファイルの保存場所です。デフォルトは ~/.config/wandb です
  • WANDB_DATA_DIR=<PATH>: アップロード中にアーティファクトのステージングに使用される場所を制御します。デフォルトは ~/.cache/wandb-data/ です。
ProjectsRuns
public API を使って、1回の操作で複数の run を削除できます:
import wandb

api = wandb.Api()
runs = api.runs('<entity>/<project>')
for run in runs:
    if <condition>:
        run.delete()
User Management
user settingsDelete 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 <condition>:
        f.download()
ResumingRuns
resume='must' but run (<run_id>) doesn't exist というエラーが発生する場合、再開しようとしている run が、その project または entity 内に存在していません。正しいインスタンスにログインしていること、および project と entity が正しく設定されていることを確認してください:
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 の project の entity または名前が正しくないことを意味します。

APIキーを確認する

  1. User Settings で新しい APIキーを作成します。
  2. APIキーを安全に保存します。

project の設定を確認する

project が <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 の team と project に一致している必要があります
)
Bash の例:
curl https://api.inference.wandb.ai/v1/chat/completions \
  -H "Authorization: Bearer <your-api-key>" \
  -H "OpenAI-Project: <your-team>/<your-project>"

よくある間違い

  • team 名の代わりに個人の entity を使用している
  • team 名または project 名のスペルミス
  • team と project の間のスラッシュ / の欠落
  • 有効期限切れ、または削除された APIキーを使用している

それでも問題が解決しない場合

  • 指定した team と project が自分の W&B アカウント内に存在することを確認する
  • 指定した team へのアクセス権があることを確認する
  • 現在の APIキーが動作しない場合は、新しい 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 Billing ページでクレジットの使用状況を追跡する
  • 上限に達する前にアラートを設定する
  • アプリケーション内で API の使用状況をログに記録する

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

def handle_inference_error(error):
    error_str = str(error)
    
    if "401" in error_str:
        # 認証が無効
        raise ValueError("Check your API key and project configuration")
    elif "402" in error_str:
        # クレジット不足
        raise ValueError("Insufficient credits")
    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 秒に設定
)

追加のヒント

  • デバッグのためにタイムスタンプ付きでエラーをログに記録する
  • 同時実行性をより良く扱うために非同期処理を使用する
  • 本番システムではサーキットブレーカーを実装する
  • 必要に応じてレスポンスをキャッシュして API 呼び出しを削減する
Inference
insufficient quota エラー (402) は、プランで利用可能なクレジットが残っていない場合に発生します。Error: “You exceeded your current quota, please check your plan and billing details”Solution:
  • W&B Billing ページでクレジット残高を確認する
  • 追加のクレジットを購入するか、プランをアップグレードする
  • support に制限の引き上げを依頼する
Inference
“Country, region, or territory not supported” というメッセージを伴う 403 エラーは、サポート対象外のロケーションから W&B Inference にアクセスしていることを意味します。

このエラーが発生する理由

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

実行できること

  1. 利用規約を確認する
    • 現在サポートされているロケーションの一覧については、Terms of Service を確認してください
  2. サポートされているロケーションから利用する
    • サポートされている国または地域にいるときにサービスへアクセスする
    • サポート対象のロケーションにある組織のリソースを利用することを検討する
  3. アカウントチームに連絡する
    • エンタープライズ顧客は、担当のアカウントエグゼクティブとオプションについて相談できます
    • 一部の組織には特別な取り決めがある場合があります

エラーの詳細

次のようなエラーが表示される場合:
{
  "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 の Billing ページで使用状況を監視する

デフォルトの支出上限

  • Pro アカウント: 月額 $6,000
  • Enterprise アカウント: 年額 $700,000
上限の調整については、アカウント担当者またはサポートに連絡してください。
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 の entity 名とプロジェクト名
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
テーブルは、Markdown の機能のうち、WYSIWYG に直接対応する機能がない唯一のものです。テーブルを追加するには、Markdown ブロックを挿入し、その中でテーブルを作成します。
Python
wandb をインストールする際に、次のようなエラーが発生する場合があります:
unable to execute 'gcc': No such file or directory
error: command 'gcc' failed with exit status 1
その場合は、事前にビルドされた wheel から psutil を直接インストールしてください。Python のバージョンとオペレーティングシステムを https://pywharf.github.io/pywharf-pkg-repo/psutil/ で確認します。たとえば、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 はデータセットの例をログしません。デフォルトで、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})
reinit="create_new" の詳細については、W&B インテグレーションに関する注意点も含めて、Multiple runs per process を参照してください。
Administrator
Debug Bundle を確認してください。管理者は、右上隅の W&B アイコンを選択して /system-admin ページを開き、Debug Bundle を選択することで取得できます。
Debug Bundle のダウンロード
システム設定
RunsMetrics
実験を管理する方法はいくつかあります。複雑なワークフローの場合は、複数の run を使用し、単一の実験内のすべてのプロセスに対して wandb.init() の group パラメータを一意の値に設定します。Runs タブ はテーブルを group ID でグループ化し、可視化が正しく機能するようにします。このアプローチにより、結果を1か所にログしながら、実験や学習 run を並行実行できます。より単純なワークフローでは、resume=Trueid=UNIQUE_ID を指定して wandb.init() を呼び出し、その後同じ id=UNIQUE_ID で再度 wandb.init() を呼び出します。run.log() または run.summary() で通常どおりログすると、その run の値が更新されます。
Artifacts
以前にログした run の出力としてアーティファクトをマークしたい場合があります。その場合は、古い run を再初期化し、次のように新しいアーティファクトをログします。
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キー を使用できるようになります。Service Account のジョブを特定のユーザーに関連付けるには、環境変数 WANDB_USERNAME または WANDB_USER_EMAIL を設定します。
Service Account の作成
LogsExperiments
以下の例では、wandb.Run.log() を使って損失値をいくつかの方法でログする方法を示します。
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': <value>})run.settings['final_accuracy'] を更新し、この値が Runs テーブルに反映されます。
ExperimentsMetrics
各バッチで特定のメトリクスをログし、プロットを標準化するには、メトリクスと一緒に目的の x 軸の値をログします。カスタムプロットで編集をクリックし、カスタム 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 ポイントにサンプリングします。このサンプリングは非決定的であるため、ページを更新するとサンプリングされるポイントが変わることがあります。1 つのメトリクスあたり 10,000 ポイント未満をログするようにしてください。1 本の線に 100 万ポイントを超えてログすると、ページの読み込み時間が大幅に増加します。精度を犠牲にせずにログのデータ量を最小限に抑える戦略については、この Colab を参照してください。config や summary メトリクスの列が 500 を超える場合でも、テーブルに表示されるのは 500 列のみです。
Team Management
Personal Entities は、2024 年 5 月 21 日以降に作成されたアカウントでは利用できません。W&B は、結果の共有を可能にするため、新しいプロジェクトはすべて Team にログすることを推奨しています。
Logs
共有マシンを使用する場合、認証用の環境変数 WANDB_API_KEY を設定しておくことで、run が正しい W&B アカウントにログを記録するようにできます。環境に読み込まれていれば、この変数によってログイン時に正しい認証情報が提供されます。また、スクリプト内で環境変数を直接設定することもできます。export WANDB_API_KEY=X コマンドを実行し、X を自分の APIキー に置き換えてください。APIキー は wandb.ai/settings で作成できます。
Experiments
「ログ記録の関数は遅延実行(lazy)ですか?ローカルの処理を実行している間に、ネットワークに依存して結果をサーバーへ送信したくありません。」wandb.log 関数は 1 行をローカルファイルに書き込むだけで、ネットワーク呼び出しをブロックしません。wandb.init を呼び出すと、同じマシン上で新しいプロセスが開始されます。このプロセスはファイルシステムの変更を監視し、Webサービスと非同期で通信するため、ローカルの処理は中断されずに継続されます。
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" を使用してください
詳細については、Metric naming constraints を参照してください。
AdministratorBillingTeam Management
Teams プランには月額サブスクリプションのオプションはありません。このプランは年額で請求されます。
Runs
次の手順で、あるプロジェクトから別のプロジェクトに run を移動できます。
  • 移動したい run があるプロジェクトページに移動します。
  • Runs タブをクリックして Runs テーブルを開きます。
  • 移動する run を選択します。
  • Move ボタンをクリックします。
  • 移動先のプロジェクトを選択し、操作を確定します。
W&B は UI を通じた run の移動をサポートしていますが、run のコピーはサポートしていません。run とともにログされたアーティファクトは新しいプロジェクトには移動されません。アーティファクトを run の新しい場所に手動で移動するには、wandb artifact get SDK コマンドまたは Api.artifact API を使用してアーティファクトをダウンロードし、その後 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 を呼び出し、multiprocessing queues を通してログ用のデータを渡します。
これらのアプローチの詳しい説明と、Torch DDP を用いたコード例については、Distributed Training Guide を参照してください。
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()) を使ってハイパーパラメータ名と値にアクセスできます。これは辞書のように動作します。スイープ外の run では、wandb.init()config 引数に辞書を渡すことで wandb.Run.config() の値を設定します。スイープでは、wandb.init() に渡された任意の設定はデフォルト値として扱われ、スイープ側で上書きされることがあります。挙動をより明示的に制御したい場合は wandb.Run.config.setdefaults() を使用します。以下のコードスニペットは両方の方法を示しています。
# ハイパーパラメータのデフォルト値を設定
config_defaults = {"lr": 0.1, "batch_size": 256}

# run を開始し、スイープが上書き可能な
# デフォルト値を渡す
with wandb.init(config=config_defaults) as run:
    # ここに学習コードを追加
    ...
SweepsMetrics
単一の 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() にクラス属性を渡すことは避けてください。属性は、ネットワーク呼び出しが実行される前に変更される可能性があります。メトリクスをクラス属性として保存している場合は、wandb.Run.log() 呼び出し時点での属性値とログされるメトリクスが一致するように、deep copy を使用してください。
Metrics
対象のメトリクスの散布図を作成します。Edit メニューを開き、Annotations を選択します。そこから、値の累積最大値をプロットできます。
Experiments
wandb.plot.line_series() を使って、複数の線を含むカスタムチャートを作成します。折れ線グラフを表示するには、project page に移動します。凡例を追加するには、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 Report を共有するか、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 を削除する際、関連するアーティファクトを削除するかどうかを確認するプロンプトが表示されます。このオプションを選択するとアーティファクトは完全に削除され、たとえ後で run 自体を復元したとしても、アーティファクトを復元することはできません。
Runs
削除した run を復元するには、次の手順を実行します。
  • Project Overview ページに移動します。
  • 右上の三点リーダーアイコンをクリックします。
  • Undelete recently deleted runs を選択します。
注意:
  • 復元できるのは、過去 7 日以内に削除された run のみです。
  • 復元オプションが利用できない場合は、W&B API を使用してログを手動でアップロードできます。
ReportsWorkspaces
Workspace は自動的に最新のデータを読み込みます。自動更新は Reports には適用されません。レポートのデータを更新するには、ページを再読み込みしてください。
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 pageResume ボタンをクリックします。新しい Sweep ID を使用して新しい W&B Sweep エージェントを起動します。完了済みの W&B Run のパラメータの組み合わせは再実行されません。
User Management
ログイン問題を解決するには、次の手順に従ってください。
  • アクセスの確認: 正しいメールアドレスまたはユーザー名を使用していることを確認し、関連する Teams またはプロジェクトへのメンバーシップを確認します。
  • ブラウザのトラブルシューティング:
    • キャッシュされたデータの影響を避けるため、シークレットモード(プライベートブラウジングウィンドウ)を使用します。
    • ブラウザのキャッシュをクリアします。
    • 別のブラウザまたはデバイスからログインを試します。
  • SSO と権限:
    • アイデンティティプロバイダ (IdP) と Single Sign-On (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 パラメータを使用するには、entityprojectid を指定したうえで、wandb.init()resume 引数を設定します。resume 引数には "must" または "allow" の値を指定できます。
run = wandb.init(entity="your-entity", project="your-project", id="your-run-id", resume="must")
SweepsPython
スイープを再開するには、sweep_idwandb.agent() 関数に渡します。
import wandb

sweep_id = "your_sweep_id"

def train():
    # 学習コードをここに記述
    pass

wandb.agent(sweep_id=sweep_id, function=train)
Artifacts
機密データを含むアーティファクトを管理したり、アーティファクトバージョンの削除をスケジュールしたりするには、TTL (time-to-live) ポリシーを設定します。詳しい手順については、TTL guide を参照してください。
AdministratorSecurity
個人アカウントキーおよびサービスアカウントキーはローテーションまたは取り消しが可能です。新しい APIキー またはサービスアカウントユーザーを作成し、スクリプトが新しいキーを使用するように再設定します。再設定後、プロフィールまたはチームから古い APIキー を削除します。
AlertsNotebooks
いいえ。Run Finished アラート(User Settings の Run Finished 設定で有効化)は Python スクリプトでのみ動作し、Jupyter Notebook 環境では各セルの実行ごとに通知が出ることを避けるため無効のままになっています。代わりに、ノートブック環境では run.alert() を使用してください。
Crashing And Hanging Runs
これは接続の問題を示しています。サーバーがインターネット接続を失い、データが W&B に同期されなくなると、短時間の再試行期間の後に、その run は crashed とマークされます。
Anonymous
誰かが anonymous="allow" を指定してスクリプトを実行した場合:
  1. 一時アカウントを自動作成: W&B はサインイン済みアカウントの有無を確認します。存在しない場合、W&B は新しい匿名アカウントを作成し、そのセッション用の APIキー を保存します。
  2. 結果をすばやく記録: ユーザーはスクリプトを何度でも実行でき、W&B ダッシュボードで結果を即座に確認できます。これらの未クレームの匿名 run は 7 日間利用可能なままです。
  3. 有用になったタイミングでデータを引き取る: ユーザーが W&B 上で価値のある結果を見つけたら、ページ上部のバナーにあるボタンをクリックして、その 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 を使用してメトリクスをクラウドサービスに転送し、ホストされた Web アプリで結果にアクセスします。
run がオフラインであることを確認するには、wandb.init() 実行後に run.settings._offline または run.settings.mode を確認してください。
ProjectsRuns
最適なパフォーマンスを得るには、各プロジェクトあたりおおよそ 10,000 run に制限してください。
Experiments
学習中に W&B サーバーとの接続が失われた可能性が高いです。データを復旧するには、wandb sync [PATH_TO_RUN] を実行してください。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(ここで $KEYUser Settings で作成した 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
組織設定から、組織の保存バイト数、追跡バイト数、および追跡時間を確認できます:
  1. https://wandb.ai/account-settings/<organization-name>/settings にある組織の設定ページに移動します。
  2. Billing タブを選択します。
  3. Usage this billing period セクション内で、View usage ボタンを選択します。
<> で囲まれた値は、組織の名前に置き換えてください。
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})
step パラメータを手動で制御する場合は、次のようにコード内でメトリクスを同期します:
with wandb.init() as run:
    step = 100  # ステップ値の例
    # Precision と Recall を同じステップでログする
    run.log({"Precision": precision, "Recall": recall}, step=step)
メトリクスを同じ step で一緒にサンプリングするには、両方の log() 呼び出しで step の値を同じに保つ必要があります。step の値は各呼び出しで単調増加している必要があります。そうでない場合、その step の値は無視されます。
Alerts
Teams で W&B アラートを受信するには、次の手順に従います。
  • Teams チャンネル用のメールアドレスを設定します。 アラートを受信したい Teams チャンネル用にメールアドレスを作成します。
  • W&B アラートメールを Teams チャンネルのメールアドレスに転送します。 W&B がメールでアラートを送信するように設定し、そのメールを Teams チャンネルのメールアドレスに転送します。
Administrator
サービスアカウントは、人ではないマシンのアイデンティティを表し、チームやプロジェクトをまたいでよくあるタスクを自動化できます。サービスアカウントは、CI/CD パイプライン、自動化された学習ジョブ、その他のマシン間ワークフローに最適です。サービスアカウントの主な利点:
  • ライセンス消費なし: サービスアカウントはユーザーシートやライセンスを消費しません
  • 専用の APIキー: 自動化されたワークフロー向けの安全な認証情報
  • ユーザーへの属性付け: 自動化された run を人間のユーザーに関連付けることが可能
  • エンタープライズ対応: 大規模な本番自動化向けに構築
  • 委任された操作: サービスアカウントは、それを作成したユーザーまたは組織に代わって動作します
その他にも、サービスアカウントは、周期的な再学習やナイトリービルドなど、wandb にログされる自動ジョブを追跡するのに役立ちます。必要に応じて、environment variables WANDB_USERNAMEWANDB_USER_EMAIL を使用して、これらのマシンによって開始された run にユーザー名を関連付けることができます。サービスアカウントのベストプラクティスや詳細なセットアップ手順を含む包括的な情報については、Use service accounts to automate workflows を参照してください。チームコンテキストでのサービスアカウントの動作については、Team Service Account Behavior を参照してください。チームスコープの新しいサービスアカウントとAPIキーを作成するには、次の手順を実行します。
  1. チームの設定で Service Accounts をクリックします。
  2. New Team Service Account をクリックします。
  3. サービスアカウントの名前を入力します。
  4. Authentication Method をデフォルトの Generate API key に設定します。Federated Identity を選択した場合、そのサービスアカウントはAPIキーを所有できません。
  5. Create をクリックします。
  6. 作成したサービスアカウントを探します。
  7. アクションメニュー(...)をクリックし、Create API key をクリックします。
  8. APIキーの名前を入力し、Create をクリックします。
  9. APIキーをコピーして、安全な場所に保管します。
  10. Done をクリックします。
Built-in サービスアカウントとは別に、W&B は identity federation for SDK and CLI を使用した External service accounts(外部サービスアカウント) もサポートします。アイデンティティプロバイダで管理され、JSON Web Tokens (JWT) を発行できるサービスアイデンティティを使って W&B のタスクを自動化したい場合は、External service accounts を使用してください。
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 を通じてマルチテナント向けに Single Sign-On (SSO) をサポートしています。SSO のインテグレーションは、Okta や Azure AD など任意の OIDC 準拠のアイデンティティプロバイダ (IdP) に対応しています。OIDC プロバイダを設定するには、次の手順に従います。
  • IdP 上で Single Page Application (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 キューを使って複数の EC2 インスタンスに sweep_id をブロードキャストします。各インスタンスはキューから sweep_id を取得し、処理を開始できます。
SweepsAws
W&B に対して認証を行うには、次の手順を実行します。組み込みの Amazon SageMaker Estimator を使用する場合は、requirements.txt ファイルを作成してください。認証と requirements.txt ファイルのセットアップの詳細は、SageMaker integration ガイドを参照してください。
GitHub に完全なサンプルがあります。また、blog では追加の知見を紹介しています。
SageMaker と W&B を使用して感情分析器をデプロイする方法については、Deploy Sentiment Analyzer Using SageMaker and W&B tutorial を参照してください。
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
チームに関する詳細情報は、Teams セクションを参照してください。
Artifacts
テスト目的で W&B を no-operation(NOOP)として設定するには、wandb.init(mode="disabled") を使用するか、WANDB_MODE=disabled を設定します。
wandb.init(mode="disabled") を使用しても、W&B が WANDB_CACHE_DIR にアーティファクトを保存することは防止できません。
Experiments
wandb.Run.config.update(...) に SHA もしくは一意の識別子を渡すことで、データセットを学習 run と関連付けることができます。wandb.Run.save() がローカルファイル名を指定して呼び出されない限り、W&B はデータを保存しません。
User ManagementTeam Management
利用可能なロールと権限の概要については、Team roles and permissions ページを参照してください。
Billing
支払い方法を更新するには、次の手順に従ってください。
  1. プロフィールページに移動: まず、ユーザープロフィールページに移動します。
  2. Organization を選択: アカウントセレクターから該当する Organization を選択します。
  3. Billing 設定にアクセス: AccountBilling を選択します。
  4. 新しい支払い方法を追加:
    • Add payment method をクリックします。
    • 新しいカード情報を入力し、primary の支払い方法にするオプションを選択します。
注: 請求を管理するには、その Organization の billing admin に割り当てられている必要があります。
Reports
レポートに CSV をアップロードするには、wandb.Table 形式を使用します。Python スクリプトで CSV を読み込み、wandb.Table オブジェクトとしてログします。この操作により、レポート内でデータがテーブルとしてレンダリングされます。
Reports
新しい行で / を押し、Image オプションまでスクロールして、レポートに画像をドラッグ&ドロップします。
レポートに画像を追加する様子
PrivacySecurity
W&B の主要エンジニアおよびサポートスタッフは、ユーザーの許可を得たうえでデバッグ目的でログされた値にアクセスします。すべてのデータストアは保存時にデータを暗号化し、監査ログがアクセスを記録します。W&B 従業員からの完全なデータ分離が必要な場合は、Self-Managed ソリューションのライセンスを取得し、自社インフラ内で W&B サーバーを実行してください。
ConnectivityOutage
W&B status page にアクセスして、wandb.ai で提供される W&B Multi-tenant Cloud に障害が発生していないか確認してください。
Environment VariablesExperiments
学習スクリプト内で wandb.init() が実行されると、API コールによってサーバー上に run オブジェクトが作成されます。メトリクスをストリーミングおよび収集する新しいプロセスが開始され、メインプロセスは通常どおり動作できます。スクリプトはローカルファイルに書き込み、別プロセスがサーバーにデータ(システムメトリクスを含む)をストリーミングします。ストリーミングを停止するには、学習ディレクトリで wandb off を実行するか、WANDB_MODE 環境変数を offline に設定します。
Sweeps
スイープの実行中は、次のような挙動になります。
  • スイープで使用している train.py スクリプトが変更されても、スイープは元の train.py を引き続き使用します。
  • helper.py スクリプト内のヘルパー関数など、train.py スクリプトが参照しているファイルが変更された場合、スイープは更新後の helper.py を使用し始めます。
ArtifactsEnvironment Variables
デフォルトでは、アーティファクトは artifacts/ フォルダにダウンロードされます。保存先を変更するには、次のいずれかの方法を使用します。
  • wandb.Artifact().download に引数として渡す:
    wandb.Artifact().download(root="<path_to_download>")
    
  • WANDB_ARTIFACT_DIR 環境変数 を設定する:
    import os
    os.environ["WANDB_ARTIFACT_DIR"] = "<path_to_download>"
    
ExperimentsRuns
エクスポートの上限により、run の履歴全体を CSV や run.history API でエクスポートできない場合があります。run の履歴全体にアクセスするには、run history アーティファクトを Parquet 形式でダウンロードしてください。
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('<path to .parquet file>')
Python
このライブラリは Python 2.7 系および Python 3.6 以降をサポートしています。また、アーキテクチャは他のプログラミング言語とのインテグレーションを容易にするよう設計されています。他の言語でのモニタリングについては、contact@wandb.com までお問い合わせください。