メインコンテンツへスキップ

おすすめの記事

すべてのカテゴリーで最もよくある質問をいくつか紹介します。 お探しの情報が見つからない場合は、以下の 人気カテゴリー を参照するか、カテゴリーに基づいて記事を検索してください。

まだお探しの情報が見つかりませんか?

サポートに連絡する
学生の方は、以下の手順でアカデミックプランを申請できます:
Artifacts は、親となる Projects からアクセス権限を継承します:
  • プライベートプロジェクトでは、Teams メンバーのみが Artifacts にアクセスできます。
  • パブリックプロジェクトでは、すべての Users が Artifacts を読み取ることができますが、作成や変更ができるのは Teams メンバーのみです。
  • オープンプロジェクトでは、すべての Users が Artifacts の読み書きを行えます。

Artifacts ワークフロー

このセクションでは、Artifacts の管理と編集のためのワークフローの概要を説明します。多くのワークフローは、W&B に保存されたデータへのアクセスを提供する W&B APIクライアントライブラリ のコンポーネント)を利用します。
History オブジェクトは、wandb.log で記録されたメトリクスを追跡します。API を使用して History オブジェクトにアクセスします:
api = wandb.Api()
run = api.run("username/project/run_id")
print(run.history())
W&B Sweep が開始されると、Sweep 設定を変更することはできません。ただし、テーブルビューに移動し、チェックボックスで Runs を選択してから、Create sweep メニューオプションを選択することで、以前の Runs に基づいた新しい Sweep 設定を生成できます。
アカウントにシートを追加するには、以下の手順に従ってください:
  • 担当の Account Executive またはサポートチーム (support@wandb.com) に連絡して支援を依頼してください。
  • 組織名(Organization name)と希望するシート数をお知らせください。
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})

W&B では、1 つのサービスアカウントを複数の Teams に追加することはできません。各サービスアカウントは特定のチームに紐付けられています。
複数の著者を追加することで、レポート内のすべての貢献者を正確にクレジット表示できます。複数の著者を追加するには、著者名の横にある + アイコンをクリックします。これにより、レポートへのアクセス権を持つすべての Users が表示されたドロップダウンメニューが開きます。著者として追加したい Users を選択してください。
Adding multiple report authors
インスタンスの管理者である場合は、Users の追加や Teams の作成に関する手順について、User Management セクションを確認してください。
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 の パッケージ管理に関するドキュメント を参照してください。
  • データの永続性なし: 匿名アカウントでは Runs は 7 日間保存されます。匿名 Run のデータは、実際のアカウントに保存することで引き継ぐことができます。
Anonymous mode interface
  • Artifacts のログ記録不可: 匿名 Run に Artifacts を記録しようとすると、コマンドラインに警告が表示されます:
    wandb: WARNING Artifacts logged anonymously cannot be claimed and expire after 7 days.
    
  • プロフィールや設定ページなし: 実際のアカウントでのみ有用なため、UI には特定のページが含まれません。
2 つの Artifact バージョン間で変更されたファイルのみがストレージコストを発生させます。
Artifact deduplication
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 を分けることです。以下の手順を検討してください:
  1. 異なるモデルアーキテクチャーごとに新しい Artifact を作成します。Artifacts の metadata 属性を使用して、Run の config と同様に、アーキテクチャーの詳細な説明を提供します。
  2. 各モデルについて、log_artifact を使用して定期的にチェックポイントを記録します。W&B はこれらのチェックポイントの履歴を構築し、最新のものに latest エイリアスを付けます。architecture-name:latest を使用して、任意のモデルアーキテクチャーの最新のチェックポイントを参照できます。
Sweep でモデルを記録する効果的な方法の 1 つは、その Sweep 用のモデル Artifact を作成することです。各バージョンは Sweep の異なる Run を表します。以下のように実装します:
wandb.Artifact(name="sweep_name", type="model")
wandb.init(tags='your_tag') でユニークなタグを設定します。これにより、プロジェクトページの Runs Table で対応するタグを選択することで、プロジェクトの Runs を効率的にフィルタリングできます。wandb.init() の詳細については、wandb.init() リファレンス を参照してください。
Weights & Biases にはバグバウンティプログラムがあります。詳細は W&B セキュリティポータル をご覧ください。
  • サポートチーム (support@wandb.com) に連絡してください。
  • 組織名、アカウントに関連付けられたメールアドレス、およびユーザー名を提供してください。
W&B でアカウントを企業用からアカデミック用に変更するには、以下の手順に従ってください:
  1. アカデミックメールをリンクする:
    • アカウント設定にアクセスします。
    • アカデミックメールを追加し、プライマリメールとして設定します。
  2. アカデミックプランを申請する:
請求先住所を変更するには、サポートチーム (support@wandb.com) に連絡してください。
環境変数 WANDB_DIR を設定することで、W&B の Run データのログディレクトリーを設定できます。例:
os.environ["WANDB_DIR"] = os.path.abspath("your/directory")
API を使用して、完了した Run に割り当てられたグループを変更できます。この機能はウェブ UI には表示されません。以下のコードを使用してグループを更新してください:
import wandb

api = wandb.Api()
run = api.run("<ENTITY>/<PROJECT>/<RUN_ID>")
run.group = "NEW-GROUP-NAME"
run.update()
アカウント作成後にユーザー名を変更することはできません。代わりに、希望するユーザー名で新しいアカウントを作成してください。
W&B クライアントライブラリは、バージョン 0.10 まで Python 2.7 と Python 3 の両方をサポートしていました。Python 2 の EOL(製品寿命終了)に伴い、バージョン 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 です。
W&B クライアントライブラリは、バージョン 0.11 まで Python 3.5 をサポートしていました。Python 3.5 の EOL に合わせ、バージョン 0.12 でサポートを終了しました。詳細については、バージョン 0.12 リリースノート をご覧ください。
画像パネルを展開し、ステップスライダーを使用して異なるステップの画像間を移動します。このプロセスにより、トレーニング中のモデル出力の変化を容易に比較できます。
トレーニングスクリプトの冒頭で、実験名を指定して wandb.init を呼び出します。例:wandb.init(name="my_awesome_run")
上部のメッセージを通じてレポートの変換を行った場合は、赤い「Revert」ボタンをクリックして以前の状態を復元してください。変換後に行った変更は失われることに注意してください。単一の Markdown ブロックを変換した場合は、cmd+z で元に戻せます。セッションが終了しているなどの理由で元に戻すオプションが利用できない場合は、ドラフトを破棄するか、最後に保存されたバージョンから編集することを検討してください。どちらも機能しない場合は、W&B サポートまでご連絡ください。
トレーニング Run への干渉を避けることは極めて重要です。W&B は別のプロセスで動作するため、W&B がクラッシュしてもトレーニングは継続されます。インターネットが切断された場合、W&B は wandb.ai へのデータ送信を継続的に再試行します。
削除されたアカウントに以前関連付けられていたメールアドレスを使用して、新しいアカウントを作成できます。
ロールと権限の詳細については、こちらのリンクを参照してください:Team Roles and Permissions
トレーニング設定がコマンドライン引数を渡すようになっている場合、カスタム CLI コマンドで W&B Sweeps を使用できます。以下の例では、コードスニペットは 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}
ダークモードはベータ版であり、アクセシビリティについては最適化されていません。ダークモードを有効にするには:
  1. W&B アカウント設定 に移動します。
  2. Public preview features セクションまでスクロールします。
  3. UI Display で、ドロップダウンから Dark mode を選択します。
wandb: Network error (ConnectionError), entering retry loop などの SSL またはネットワークエラーが発生した場合は、以下の解決策を試してください:
  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
カスタムチャートエディターにアクセスします。現在選択されているチャートタイプをクリックして、すべてのプリセットを表示するメニューを開きます。削除したいプリセットの上にホバーし、ゴミ箱アイコンをクリックします。
Deleting chart preset
組織アカウントを削除するには、サポートチーム (support@wandb.com) に連絡してください。
パネルグリッドを選択し、delete キーまたは backspace キーを押します。右上隅のドラッグハンドルをクリックして、パネルグリッドを選択します。
アカウントからチームを削除するには:
  • 管理者としてチーム設定にアクセスします。
  • ページ下部にある Delete ボタンをクリックします。
Run に明示的に名前を付けない場合、W&B はプロジェクト内で識別するためにランダムな名前を割り当てます。ランダムな名前の例には、pleasant-flower-4misunderstood-glade-2 などがあります。
Summary はテーブルに表示され、Log は将来のプロットのためにすべての値を保存します。例えば、精度(accuracy)が変化するたびに run.log() を呼び出します。デフォルトでは、メトリクスに対して手動で設定されない限り、run.log() は Summary の値を更新します。散布図や並行座標プロットは Summary の値を使用し、折れ線グラフは run.log で記録されたすべての値を表示します。Users によっては、最後にログに記録された精度ではなく、最適(optimal)な精度を反映させるために Summary を手動で設定することを好む場合もあります。
チームは、同じプロジェクトに取り組む Users のための共同作業用ワークスペースとして機能します。エンティティは、ユーザー名またはチーム名のいずれかを表します。W&B で Runs を記録する際は、wandb.init(entity="example-team") を使用して、エンティティを個人アカウントまたはチームアカウントに設定します。
チームは、同じプロジェクトに取り組む Users のための共同作業用ワークスペースとして機能します。組織は、複数の Teams を含めることができる上位レベルのエンティティであり、多くの場合、請求(billing)やアカウント管理に関連付けられます。
以下のモードが利用可能です:
  • online (デフォルト): クライアントはデータを wandb サーバーに送信します。
  • offline: クライアントはデータを wandb サーバーに送信せず、マシン上にローカルに保存します。後でデータを同期するには wandb sync コマンドを使用します。
  • disabled: クライアントはモックオブジェクトを返すことで動作をシミュレートし、ネットワーク通信を一切行いません。すべてのログ記録はオフになりますが、すべての API メソッドスタブは呼び出し可能なままです。このモードは主にテストに使用されます。
W&B は TensorBoard と統合し、実験管理ツールを改善します。W&B の創設者は、TensorBoard ユーザーが直面する一般的な不満を解消するために W&B を作成しました。主な改善点は以下の通りです:
  1. モデルの再現性: W&B は実験、探索、およびモデルの再現を容易にします。メトリクス、ハイパーパラメーター、コードバージョンをキャプチャし、モデルのチェックポイントを保存して再現性を確保します。
  2. 自動整理: W&B は、試行したすべてのモデルの概要を提供することで、プロジェクトの引き継ぎや休暇中の対応を効率化し、古い実験の再実行を防ぐことで時間を節約します。
  3. 迅速な統合: 5 分でプロジェクトに W&B を統合できます。無料のオープンソース Python パッケージをインストールし、数行のコードを追加するだけです。モデルの Run ごとにログに記録されたメトリクスとレコードが表示されます。
  4. 一元化されたダッシュボード: ローカル、ラボのクラスター、クラウドのスポットインスタンスなど、トレーニング場所に関わらず一貫したダッシュボードにアクセスできます。異なるマシン間で TensorBoard ファイルを管理する必要がなくなります。
  5. 堅牢なフィルタリングテーブル: 様々なモデルの結果を効率的に検索、フィルタリング、ソート、グループ化できます。TensorBoard が大規模プロジェクトで苦労しがちな、異なるタスクにおけるベストパフォーマンスモデルの特定も容易です。
  6. コラボレーションツール: W&B は、複雑な機械学習プロジェクトのコラボレーションを強化します。プロジェクトリンクを共有したり、結果共有のためにプライベートチームを活用したりできます。インタラクティブな可視化と Markdown の説明を含むレポートを作成し、作業ログやプレゼンテーションに利用できます。
サブスクリプションプランをダウングレードするには、現在のプランの詳細と希望するプランを添えて、サポートチーム (support@wandb.com) までご連絡ください。
個人のプライベートプロジェクト内で作成された Reports は、そのユーザーにのみ表示されます。ユーザーはプロジェクトをチームまたはパブリックに共有できます。チームプロジェクトでは、管理者またはレポートを作成したメンバーが、他のチームメンバーに対して編集アクセス権または閲覧アクセス権を切り替えることができます。チームメンバーはレポートを共有できます。レポートを共有するには、右上隅にある Share ボタンを選択します。メールアドレスを入力するか、マジックリンクをコピーしてください。メールで招待された Users は、レポートを閲覧するために W&B にログインする必要がありますが、マジックリンクを持つ Users はログイン不要です。共有されたレポートは、閲覧専用アクセス権が維持されます。
レポートを埋め込むことで共有できます。レポートの右上にある Share ボタンをクリックし、ポップアップウィンドウの下部から埋め込みコードをコピーしてください。
Embedding reports
Sweeps でコードのログ記録を有効にするには、W&B Run を初期化した後に wandb.log_code() を追加します。これは、W&B プロフィール設定でコードのログ記録が有効になっている場合でも必要です。高度なコードログ記録については、こちらの wandb.log_code() ドキュメント を参照してください。
wandb.init に渡された引数は環境変数を上書きします。環境変数が設定されていない場合にシステムデフォルト以外のデフォルトディレクトリーを設定するには、wandb.init(dir=os.getenv("WANDB_DIR", my_default_override)) を使用してください。
W&B は、離散的な探索空間を持つ W&B Sweep を作成する際に生成される、推定 Run 数を提供します。この合計は、探索空間のデカルト積を反映しています。例えば、以下のような探索空間を考えます:
Estimated runs column
この場合、デカルト積は 9 になります。W&B はアプリ 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}")
W&B 組織から Users のリストをエクスポートするには、管理者が以下のコードを使用して 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']])
必要に応じて、出力を保存するようにスクリプトを変更してください。
W&B で Artifact の参照がログに記録され、バケットでバージョニングが有効になっている場合、Amazon S3 UI に Version ID が表示されます。W&B でこれらの Version 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")
該当する Run について、コードを実行しているディレクトリー内の wandb/run-<date>_<time>-<run-id>/logs にある debug.logdebug-internal.log を確認してください。
W&B で “Filestream rate limit exceeded” エラーを解決するには、以下の手順に従ってください:ログ記録の最適化:
  • ログの記録頻度を減らすか、ログをバッチ処理して API リクエストを削減します。
  • API リクエストが集中しないよう、実験の開始時間をずらします。
障害の確認:サポートに連絡:
  • 実験設定の詳細を添えて W&B サポート (support@wandb.com) に連絡し、レート制限の引き上げを依頼してください。
検索バーを使用してレポートリストをフィルタリングします。不要なレポートを選択して個別に削除するか、すべてのレポートを選択して「Delete Reports」をクリックし、プロジェクトから削除します。
Delete unwanted reports and drafts
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.
Sweep で最高のパフォーマンスを示した Run から Artifacts を取得するには、以下のコードを使用してください:
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)
W&B は、各 Run によってログ記録された Artifacts と、各 Run が使用した Artifacts を追跡して Artifact グラフを構築します。このグラフは、Runs と 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()
設定のコマンドセクションで ${args_no_boolean_flags} マクロを使用することで、ハイパーパラメーターをブーリアンフラグとして渡すことができます。このマクロは、ブーリアンパラメータを自動的にフラグとして含めます。paramTrue の場合、コマンドは --param を受け取ります。paramFalse の場合、フラグは省略されます。
指数移動平均(EMA)の式は TensorBoard で使用されているものと一致しています。同等の Python 実装の詳細については、Stack OverFlow での解説 を参照してください。TensorBoard のスムージングアルゴリズムのソースコード(執筆時点)は こちら にあります。
一部の機能は、チーム設定の Beta Features セクションにある機能フラグの下に隠されています。
Available beta features hidden under a feature flag
“No visualization data logged yet” というメッセージが表示される場合、スクリプトで最初の wandb.log 呼び出しがまだ実行されていません。これは、Run が 1 ステップの完了に長い時間を要している場合に発生することがあります。データのログ記録を早めるには、エポックの最後だけでなく、エポック内に複数回ログを記録するようにしてください。
グループ内の個々の Run の色を変更することはできません。同じグループ内のすべての Runs は共通の色を共有します。
1 つの Run に複数のタグを付けることができるため、タグによるグループ化はサポートされていません。代わりに、これらの Runs の config オブジェクトに値を追加し、その設定値でグループ化してください。これは API を使用して行えます。
はい、タグやカスタムメタデータを使用して Runs をカテゴリ分けすることも可能です。これはプロジェクトの Workspace や Runs ビューにある Group ボタンを使用して行えます。
チーム管理者は、チーム設定の Users タブからあなたを チームから削除 できます。
  • 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/ です。
public API を使用して、1 回の操作で複数の Runs を削除します:
import wandb

api = wandb.Api()
runs = api.runs('<entity>/<project>')
for run in runs:
    if <condition>:
        run.delete()
ユーザー設定Delete account をクリックして、ユーザーアカウントを削除します。この操作は取り消し不可能であり、即座に有効になることに注意してください。
システムメトリクス のログ記録を無効にするには、_disable_statsTrue に設定します:
wandb.init(settings=wandb.Settings(x_disable_stats=True))
以下のいずれかの方法でログイン URL を設定します:
  • 環境変数 WANDB_BASE_URL をサーバー URL に設定します。
  • wandb login--host フラグをサーバー URL に設定します。
以前のステップのログを上書きするには、ForkingRewind を使用します。
システムメトリクス のログ記録頻度を設定するには、_stats_sampling_interval を秒数(float 型)で指定します。デフォルトは 10.0 です。
wandb.init(settings=wandb.Settings(x_stats_sampling_interval=30.0))
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
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()
resume='must' but run (<run_id>) doesn't exist というエラーが発生する場合、再開しようとしている Run がプロジェクトまたはエンティティ内に存在しません。正しいインスタンスにログインしていること、およびプロジェクトとエンティティが設定されていることを確認してください:
wandb.init(entity=<entity>, project=<project>, id=<run-id>, resume='must')
wandb login --relogin を実行して、認証されているか確認してください。
LaTeX はレポートにシームレスに統合できます。LaTeX を追加するには、新しいレポートを作成し、リッチテキストエリアにノートを書き込み、カスタム可視化やテーブルを保存します。新しい行で / を押し、インライン数式タブに移動して LaTeX コンテンツを挿入します。
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キー を作成してみてください
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("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 呼び出しを削減します。
クォータ不足エラー (402) は、プランの残存クレジットがなくなったときに発生します。エラー: “You exceeded your current quota, please check your plan and billing details”解決策:
  • W&B 請求(Billing)ページでクレジット残高を確認してください。
  • クレジットを追加購入するか、プランをアップグレードしてください。
  • サポート に制限の引き上げを依頼してください。
「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 アドレスの場所によって判断されます。
レート制限エラー (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/年
制限を調整するには、担当の Account Executive またはサポートに連絡してください。
サーバーエラーは、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 のエンティティ名とプロジェクト名
Run の初期化タイムアウトエラーを解決するには、以下の手順に従ってください:
  • 初期化の再試行: Run を再開してみてください。
  • ネットワーク接続の確認: 安定したインターネット接続を確認してください。
  • wandb バージョンの更新: 最新バージョンの wandb をインストールしてください。
  • タイムアウト設定の引き上げ: WANDB_INIT_TIMEOUT 環境変数を変更します:
    import os
    os.environ['WANDB_INIT_TIMEOUT'] = '600'
    
  • デバッグの有効化: 詳細なログを取得するために WANDB_DEBUG=true および WANDB_CORE_DEBUG=true を設定します。
  • 設定の検証: APIキー とプロジェクト設定が正しいか確認してください。
  • ログの確認: エラーの詳細について debug.logdebug-internal.logdebug-core.log、および output.log を検査してください。
このエラーは、データをサーバーと同期させるプロセスの起動にライブラリが失敗したことを示しています。特定の環境では、以下の回避策で問題が解決します:
wandb.init(settings=wandb.Settings(start_method="fork"))
Tables は、Markdown の機能の中で直接的な WYSIWYG 版が存在しない唯一の機能です。テーブルを追加するには、Markdown ブロックを挿入し、その中でテーブルを作成してください。
wandb のインストール中に以下のようなエラーが発生した場合:
unable to execute 'gcc': No such file or directory
error: command 'gcc' failed with exit status 1
プリビルドされた Wheel から直接 psutil をインストールしてください。お使いの Python バージョンと OS に適したものを 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 のインストールを完了させます。
W&B は、アップロードするファイルやデータを明示的に指定できるようにすることで、スカラー(scalar)のみを記録するプロジェクトもサポートしています。画像を使用せずにログを記録する方法を示す、PyTorch での例 を参照してください。
ライブラリがインターネットに接続できない場合、リトライループに入り、ネットワークが復旧するまでメトリクスのストリーミングを試み続けます。その間もプログラムは実行を継続します。インターネットのないマシンで実行するには、WANDB_MODE=offline を設定します。この設定では、メトリクスはハードドライブにローカル保存されます。後で wandb sync DIRECTORY を呼び出すことで、データをサーバーにストリーミングできます。
チームに参加するには、以下の手順に従ってください:
  • チーム管理者または管理権限を持つ人に連絡して、招待を依頼してください。
  • 招待メールを確認し、指示に従ってチームに参加してください。
デフォルトでは、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 のトグルをオフにします。
はい。Run 名を Run ID で上書きするには、以下のコードスニペットを使用してください:
import wandb

with wandb.init() as run:
   run.name = run.id
   run.save()
W&B が組み込まれたスクリプトを停止するには、キーボードで Ctrl+D を押します。
1 つのスクリプト内で複数の Runs を記録するには、新しい Run を開始する前に前の Run を終了させる必要があります。推奨される方法は、wandb.init() をコンテキストマネージャーとして使用することです。これにより、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()

複数のアクティブな Runs

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 インテグレーションに関する注意点については、1つのプロセスで複数のRunsを実行する を参照してください。
Debug Bundle を確認してください。管理者は、右上隅の W&B アイコンから /system-admin ページに移動し、Debug Bundle を選択することで取得できます。
Debug Bundle download
System settings
実験を管理する方法はいくつかあります。複雑なワークフローの場合は、複数の Runs を使用し、wandb.init() のグループパラメータを単一の実験内のすべてのプロセスで共通のユニークな値に設定します。Runs タブ ではテーブルがグループ ID でグループ化され、可視化が適切に機能します。このアプローチにより、並行する実験やトレーニング Run を行いながら、結果を 1 か所に記録できます。より単純なワークフローの場合は、resume=Trueid=UNIQUE_ID を指定して wandb.init() を呼び出し、その後同じ id=UNIQUE_ID で再度 wandb.init() を呼び出します。通常通り run.log()run.summary() でログを記録すれば、Run の値が適切に更新されます。
以前に記録した 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)
W&B にログを記録する自動テストや内部ツールを起動するには、チーム設定ページで Service Account を作成します。これにより、継続的インテグレーションを通じて実行されるジョブを含む自動化されたジョブにサービス APIキー を使用できるようになります。サービスアカウントのジョブを特定のユーザーに紐付けるには、WANDB_USERNAME または WANDB_USER_EMAIL 環境変数を設定してください。
Creating service account
以下の例では、wandb.Run.log() を使用して損失(losses)をログに記録するいくつかの方法を示しています。
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)})
詳細は ログ記録に関するドキュメント を参照してください。
run.log({'final_accuracy': 0.9}) を使用すると、最終精度が正しく更新されます。デフォルトでは、run.log({'final_accuracy': <value>})run.settings['final_accuracy'] を更新し、これが Runs テーブルに反映されます。
各バッチで特定のメトリクスを記録し、プロットを標準化するには、メトリクスと一緒に希望する 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})
例えば、バッチごとにトレーニング精度を、エポックごとに検証精度を記録したい場合です。はい、メトリクスと一緒に 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")
送信されるデータポイントの数は、UI のグラフの読み込み時間に影響します。1,000 ポイントを超える折れ線グラフの場合、バックエンドはブラウザに送信する前にデータを 1,000 ポイントにダウンサンプリングします。このサンプリングは非決定的であるため、ページをリフレッシュするたびにサンプリングされるポイントが異なる場合があります。1 つのメトリクスにつき 10,000 ポイント未満に抑えるようにしてください。1 つの線で 100 万ポイント以上を記録すると、ページの読み込み時間が大幅に長くなります。精度を犠牲にせずにログのフットプリントを最小限に抑える戦略については、こちらの Colab を参照してください。設定(config)やサマリーメトリクスが 500 カラムを超えると、テーブルには 500 までしか表示されません。
個人エンティティ(Personal Entities)は、2024 年 5 月 21 日以降に作成されたアカウントでは利用できません。W&B は、結果を共有できるように、すべての Users が新しいプロジェクトを Teams に記録することを推奨しています。
共有マシンを使用する際、認証のために WANDB_API_KEY 環境変数を設定することで、Runs が正しい W&B アカウントに記録されるようにします。環境でソース指定されている場合、この変数はログイン時に正しい認証情報を提供します。または、スクリプト内で直接環境変数を設定することもできます。コマンド export WANDB_API_KEY=X を実行してください(X はあなたの APIキー に置き換えてください)。APIキー は wandb.ai/settings で作成できます。
「ログ機能は遅延実行されますか?ローカル操作の実行中に、サーバーに結果を送信するためにネットワークに依存したくありません。」wandb.log 関数はローカルファイルに 1 行書き込むだけで、ネットワーク呼び出しをブロックしません。wandb.init を呼び出すと、同じマシン上で新しいプロセスが開始されます。このプロセスがファイルシステムの変更を監視し、ウェブサービスと非同期に通信するため、ローカル操作は中断されることなく継続されます。
コマンド wandb offline は環境変数 WANDB_MODE=offline を設定し、リモートの W&B サーバーへのデータ同期を防ぎます。この操作はすべてのプロジェクトに影響し、W&B サーバーへのデータログ記録を停止します。警告メッセージを抑制するには、以下のコードを使用してください:
import logging

logger = logging.getLogger("wandb")
logger.setLevel(logging.WARNING)
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"
詳細は メトリクス命名の制約 を参照してください。
Teams プランには月額サブスクリプションのオプションはありません。このサブスクリプションは年単位で請求されます。
以下の手順で、Run をあるプロジェクトから別のプロジェクトに移動できます:
  • 移動したい Run があるプロジェクトページに移動します。
  • Runs タブをクリックして Runs テーブルを開きます。
  • 移動する Runs を選択します。
  • Move ボタンをクリックします。
  • 移動先のプロジェクトを選択し、操作を確定します。
W&B は UI を通じた Run の移動をサポートしていますが、Run のコピーはサポートしていません。Runs と一緒にログ記録された Artifacts は、新しいプロジェクトには転送されません。Artifacts を手動で新しい場所に移動するには、wandb artifact get SDK コマンドや Api.artifact API を使用して Artifact をダウンロードし、その後 wandb artifact put または Api.artifact API を使用してアップロードしてください。
W&B Reports で以下の手順に従います:
  1. 複数のパネルグリッドを作成します。
  2. 各パネルグリッドに対してフィルタを適用し、希望する Run セットを選択します。
  3. パネルグリッド内で目的のチャートを生成します。
トレーニングプログラムが複数のプロセスを使用する場合、wandb.init() を実行していないプロセスから wandb メソッドを呼び出さないようにプログラムを構成してください。マルチプロセストレーニングは、以下の方法で管理します:
  1. すべてのプロセスで wandb.init を呼び出し、Group キーワード引数を使用して共有グループを作成します。各プロセスが独自の wandb run を持ち、UI 上でトレーニングプロセスがグループ化されます。
  2. 1 つのプロセスからのみ wandb.init を呼び出し、multiprocessing queues を通じてログに記録するデータを渡します。
これらのアプローチの詳細な説明や Torch DDP を使用したコード例については、分散トレーニングガイド を参照してください。
はい、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 を実行する際に必要です。
辞書のように機能する (run.config()) を使用して、スイープ設定からハイパーパラメーターの名前と値にアクセスできます。スイープ以外の Run の場合は、wandb.init()config 引数に辞書を渡すことで wandb.Run.config() の値を設定します。スイープでは、wandb.init() に提供された設定はデフォルト値として機能し、スイープによって上書きされる可能性があります。明示的な動作をさせるには rwandb.Run.config.setdefaults() を使用します。以下のコードスニペットは両方の方法を示しています:
# ハイパーパラメーターのデフォルト値を設定
config_defaults = {"lr": 0.1, "batch_size": 256}

# run を開始し、スイープが
# 上書き可能なデフォルト値を提供
with wandb.init(config=config_defaults) as run:
    # ここにトレーニングコードを追加
    ...
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})
新しい複合メトリクスをログに記録し、それを最適化の目的(objective)として設定します:
metric:
  name: metric_combined
  goal: minimize
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 の設定で、最初のセグメント、または / で区切られたすべてのセグメントに基づいてパネルのグループ化を調整できます。
このエラーを解決するには、URL の末尾に ?workspace=clear を追加して Enter キーを押してください。これにより、プロジェクトページのワークスペースのクリアされたバージョンが表示されます。
クラス属性を wandb.Run.log() に渡すのは避けてください。ネットワーク呼び出しが実行される前に属性が変更される可能性があります。メトリクスをクラス属性として保存する場合は、ディープコピー(deep copy)を使用して、ログに記録されるメトリクスが wandb.Run.log() 呼び出し時点の属性値と一致するようにしてください。
メトリクスの散布図を作成します。Edit メニューを開き、Annotations を選択します。そこから、値のランニング最大値(running maximum)をプロットするように設定します。
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 タブを参照してください。
wandb.Run.name 属性には以下のようにアクセスできます:
import wandb

with wandb.init() as run:
   run_name = run.name
   print(f"The human-readable run name is: {run_name}")
プロジェクトのプライバシー(可視性)を変更するには:
  1. W&B アプリで、プロジェクト内の任意のページから左ナビゲーションの Overview をクリックします。
  2. 右上の Edit をクリックします。
  3. Project visibility に新しい値を選択します:
    • Team (デフォルト): チームメンバーのみがプロジェクトの閲覧と編集が可能です。
    • Restricted: 招待されたメンバーのみがプロジェクトにアクセスでき、パブリックアクセスはオフになります。
    • Open: 誰でも Runs の送信や Reports の作成ができますが、編集できるのはチームメンバーのみです。教室での利用、公開ベンチマークコンペティション、その他の一時的なコンテキストにのみ適しています。
    • Public: 誰でもプロジェクトを閲覧できますが、編集できるのはチームメンバーのみです。
      W&B 管理者が Public 可視化をオフにしている場合、これを選択することはできません。代わりに閲覧専用の W&B Report を共有するか、W&B 組織の管理者に相談してください。
  4. Save をクリックします。
プロジェクトをより厳密なプライバシー設定に更新した場合、アクセス権を復元するために個々の Users を再度招待する必要がある場合があります。
"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"
Run オブジェクトの .save() メソッドを呼び出して現在の Run を保存します。Run オブジェクトの name 属性を使用して名前を取得してください。
Run を削除する際、関連する Artifacts も削除するかどうかを尋ねるプロンプトが表示されます。このオプションを選択すると Artifacts は永久に削除され、後で Run 自体を復元したとしても復元することはできません。
削除された Runs を復元するには、以下の手順を完了してください:
  • Project Overview ページに移動します。
  • 右上隅にある 3 つのドットをクリックします。
  • Undelete recently deleted runs を選択します。
注意:
  • 復元できるのは、過去 7 日以内に削除された Runs のみです。
  • 復元オプションがない場合は、W&B API を使用して手動でログをアップロードできます。
Workspaces は更新されたデータを自動的に読み込みます。オートリフレッシュは Reports には適用されません。レポートデータを更新するには、ページをリロードしてください。
パスワードリセットメールを受信できずアカウントへのアクセスを回復できない場合:
  1. 迷惑メールフォルダを確認する: メールがフィルタリングされていないか確認してください。
  2. メールアドレスの確認: アカウントに関連付けられた正しいメールアドレスであることを確認してください。
  3. SSO オプションを確認する: 利用可能な場合は「Google でサインイン」などのサービスを使用してください。
  4. サポートに連絡する: 問題が解決しない場合は、サポート (support@wandb.com) に連絡し、ユーザー名とメールアドレスを提供して支援を依頼してください。
管理者権限なしでチームスペースからプロジェクトを削除するには、以下のオプションがあります:
  • 現在の管理者にプロジェクトの削除を依頼してください。
  • 管理者にプロジェクト管理のための一時的なアクセス権限を付与するよう依頼してください。
管理者に連絡できない場合は、組織内の請求(billing)管理者または別の権限を持つユーザーに支援を求めてください。
プロジェクト名を変更するには:
  • Project overview に移動します。
  • Edit Project をクリックします。
注意:
  • model-registry などの保護されたプロジェクト名は変更できません。保護された名前に関する支援については、サポートにお問い合わせください。
期限切れのライセンスを更新するには、サポートチーム (support@wandb.com) に連絡して更新プロセスの支援を受け、新しいライセンスキーを受け取ってください。
目標は WYSIWYG への移行後も元の外観を維持することですが、変換プロセスは完璧ではありません。大きな不一致が生じた場合は、評価のために報告してください。ユーザーは編集セッションが終了するまで、以前の状態に戻すことができます。
古いハードウェアや非常に大きなレポートでは、パフォーマンスの問題が発生することがあります。これを軽減するには、現在使用していないレポートのセクションを折りたたんでください。
はい。ドキュメントの任意の場所で「/mark」と入力して Enter キーを押すと、Markdown ブロックが挿入されます。これにより、以前と同様に Markdown で編集できます。
W&B アカウントを削除するには、User settings ページに移動し、一番下までスクロールして Delete Account ボタンをクリックしてください。
ログイン問題を解決するには、以下の手順に従ってください:
  • アクセスの確認: 正しいメールアドレスまたはユーザー名を使用しているか確認し、関連する Teams や Projects への所属を確認してください。
  • ブラウザのトラブルシューティング:
    • キャッシュデータの干渉を避けるため、シークレットウィンドウを使用してください。
    • ブラウザのキャッシュをクリアしてください。
    • 別のブラウザやデバイスからログインを試みてください。
  • SSO と権限:
    • ID プロバイダー (IdP) とシングルサインオン (SSO) の設定を確認してください。
    • SSO を使用している場合は、適切な SSO グループに含まれていることを確認してください。
  • 技術的な問題:
    • 詳細なトラブルシューティングのために、特定のエラーメッセージをメモしてください。
    • 問題が解決しない場合は、サポートチームに詳細な支援を求めてください。
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>
    
W&B で resume パラメータを使用するには、wandb.init()entityproject、および id を指定した上で、resume 引数を設定します。resume 引数は "must" または "allow" の値を受け入れます。
run = wandb.init(entity="your-entity", project="your-project", id="your-run-id", resume="must")
スイープを再開するには、wandb.agent() 関数に sweep_id を渡します。
import wandb

sweep_id = "your_sweep_id"

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

wandb.agent(sweep_id=sweep_id, function=train)
機密データを含む Artifacts を管理したり、Artifact バージョンの削除をスケジュールしたりするには、TTL (time-to-live) ポリシーを設定します。詳細な手順については、TTL ガイド を参照してください。
個人用キーやサービスアカウントキーのローテーションや取り消しが可能です。新しい APIキー またはサービスアカウントユーザーを作成し、新しいキーを使用するようにスクリプトを再設定してください。再設定後、プロフィールまたはチームから古い APIキー を削除してください。
いいえ。Run Finished アラート(ユーザー設定の Run Finished 設定で有効化)は Python スクリプトでのみ動作し、セルが実行されるたびに通知が来るのを避けるため、Jupyter Notebook 環境ではオフになっています。ノートブック環境では、代わりに run.alert() を使用してください。
これは接続の問題を示しています。サーバーがインターネットアクセスを失い、データの W&B への同期が停止すると、短期間のリトライ後、システムはその Run を crashed としてマークします。
anonymous="allow" を指定してスクリプトを実行した場合:
  1. 一時アカウントの自動作成: W&B はサインイン済みのアカウントを確認します。存在しない場合、W&B は新しい匿名アカウントを作成し、そのセッション用の APIキー を保存します。
  2. 迅速な結果ログ記録: ユーザーは繰り返しスクリプトを実行し、W&B ダッシュボードで即座に結果を確認できます。これらの未登録の匿名 Runs は 7 日間利用可能です。
  3. 有用なデータの登録: W&B で価値のある結果が見つかったら、ページ上部のバナーにあるボタンをクリックして、Run データを実際のアカウントに保存できます。登録しない場合、Run データは 7 日後に削除されます。
匿名 Run のリンクは慎重に扱ってください。これらのリンクは、7 日間誰でも実験結果を閲覧し、自分のアカウントに登録することを許可するため、信頼できる相手にのみ共有してください。著者の身元を隠したまま結果を公開共有したい場合は、support@wandb.com までお問い合わせください。
W&B ユーザーがスクリプトを見つけて実行した場合、その結果は通常の Run と同様に、そのユーザーのアカウントに正しく記録されます。
SLURM スケジューリングシステム でスイープを使用する場合、各スケジュールされたジョブ内で wandb agent --count 1 SWEEP_ID を実行してください。このコマンドは単一のトレーニングジョブを実行して終了するため、ハイパーパラメーター探索の並列性を活かしつつ、リソースリクエストのための実行時間予測が容易になります。
オフラインのマシンでトレーニングを行う場合は、以下の手順で結果をサーバーにアップロードします:
  1. 環境変数 WANDB_MODE=offline を設定し、インターネット接続なしでメトリクスをローカルに保存します。
  2. アップロードの準備ができたら、ディレクトリー内で wandb init を実行してプロジェクト名を設定します。
  3. wandb sync YOUR_RUN_DIRECTORY を使用して、メトリクスをクラウドサービスに転送し、ホストされたウェブアプリで結果にアクセスします。
Run がオフラインであることを確認するには、wandb.init() 実行後に run.settings._offline または run.settings.mode を確認してください。
最適なパフォーマンスを得るために、各プロジェクトの Runs 数は約 10,000 以内に抑えてください。
トレーニング中にマシンへの接続が切断された可能性があります。wandb sync [PATH_TO_RUN] を実行してデータを復旧してください。Run へのパスは、wandb ディレクトリー内の、実行中の Run ID と一致するフォルダーです。
同じキーで異なるデータタイプをログに記録すると、データベース内で分割されます。その結果、UI のドロップダウンに同じメトリクス名のエントリが複数表示されます。グループ化されるデータタイプは、numberstringboolother(主に配列)、および HistogramImage などの W&B データタイプです。この問題を避けるために、1 つのキーに対して 1 つのタイプのみを送信するようにしてください。メトリクス名は大文字と小文字を区別しません。"My-Metric""my-metric" のように、大文字小文字のみが異なる名前の使用は避けてください。
wandb.initsave_code=True を使用すると、Run を起動したメインスクリプトまたはノートブックを保存できます。Run のすべてのコードを保存するには、Artifacts でコードをバージョン管理してください。以下の例はこのプロセスを示しています:
code_artifact = wandb.Artifact(type="code")
code_artifact.add_file("./train.py")
wandb.log_artifact(code_artifact)
wandb.init が呼び出されると、システムは自動的に Git 情報(リモートリポジトリのリンクや最新コミットの SHA など)を収集します。この情報は Run ページ に表示されます。この情報を表示するには、スクリプト実行時のカレント作業ディレクトリーが Git 管理下のフォルダー内にあることを確認してください。Git コミットと実験の実行に使用されたコマンドは、実行ユーザーには表示されますが、外部ユーザーからは隠されます。パブリックプロジェクトでも、これらの詳細はプライベートなままです。
デフォルトでは、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})
ターミナル出力のサンプルは以下の通りです:
Offline mode terminal output
作業完了後、以下のコマンドを実行してデータをクラウドに同期します:
wandb sync wandb/dryrun-folder-name
Cloud sync terminal output
組織設定内で、組織の Bytes stored、Bytes tracked、および Tracked hours を確認できます:
  1. https://wandb.ai/account-settings/<organization-name>/settings で組織の設定に移動します。
  2. Billing タブを選択します。
  3. Usage this billing period セクションで、View usage ボタンを選択します。
<> で囲まれた部分は、ご自身の組織名に置き換えてください。
Step 以外の X 軸に対してメトリクスを可視化する場合、データポイントが少なく表示されることが予想されます。メトリクスが同期を保つには、同じ Step でログ記録される必要があります。サンプリング間の補間中には、同じ Step で記録されたメトリクスのみがサンプリングされます。ガイドラインメトリクスを単一の 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)
2 つの log() 呼び出しで step の値が同じであることを確認してください。これにより、メトリクスが同じステップの下で記録され、一緒にサンプリングされます。step の値は、各呼び出しにおいて単調増加(monotonically increase)する必要があります。そうでない場合、step の値は無視されます。
Teams で W&B アラートを受信するには、以下の手順に従ってください:
  • Teams チャンネルのメールアドレスを設定する。 アラートを受信したい Teams チャンネル用のメールアドレスを作成します。
  • W&B アラートメールを Teams チャンネルのメールアドレスに転送する。 W&B がメールでアラートを送信するように設定し、それらのメールを Teams チャンネルのメールアドレスに転送するように設定してください。
サービスアカウント は人間以外の ID(マシン ID)を表し、Teams や Projects を横断して共通のタスクを自動化できます。サービスアカウントは、CI/CD パイプライン、自動トレーニングジョブ、その他のマシン間ワークフローに最適です。サービスアカウントの主なメリット:
  • ライセンスの消費なし: サービスアカウントはユーザーシートやライセンスを消費しません。
  • 専用の APIキー: 自動化ワークフロー用の安全な認証情報。
  • ユーザー属性(User attribution): オプションで自動化された Runs を特定のユーザーに紐付けることが可能。
  • エンタープライズ対応: 大規模な本番自動化向けに構築されています。
  • 委任された操作: サービスアカウントは、それを作成したユーザーまたは組織に代わって操作します。
特に、定期的な再トレーニングやナイトリービルドなど、wandb にログ記録される自動ジョブの追跡に便利です。必要であれば、環境変数 WANDB_USERNAME または WANDB_USER_EMAIL を使用して、これらのマシンから起動された Runs にユーザー名を関連付けることができます。ベストプラクティスや詳細な設定手順を含むサービスアカウントの包括的な情報については、サービスアカウントを使用してワークフローを自動化する を参照してください。チームコンテキストでのサービスアカウントの振る舞いについては、Team Service Account Behavior を参照してください。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.
組み込み(Built-in) のサービスアカウント以外にも、W&B は SDK および CLI 用の ID フェデレーション を使用した 外部(External)サービスアカウント もサポートしています。JSON Web Token (JWT) を発行できる ID プロバイダーで管理されているサービス ID を使用して W&B タスクを自動化したい場合は、外部サービスアカウントを使用してください。
カスタムチャートエディターの「Other settings」ページでこのオプションを有効にします。クエリを summaryTable ではなく historyTable を使用するように変更すると、カスタムチャートエディターに「Show step selector」オプションが表示されます。この機能には、ステップを選択するためのスライダーが含まれます。
ノートブックで以下のようなログメッセージを抑制するには:
INFO SenderThread:11484 [sender.py:finish():979]
ログレベルを logging.ERROR に設定してエラーのみを表示させ、情報レベルのログ出力を抑制します。
import logging

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