メインコンテンツへスキップ
W&B Public API は、W&B に保存されているデータを照会、エクスポート、および更新するためのプログラムからのアクセス手段を提供します。事後分析(post-hoc 分析)、データエクスポート、run・アーティファクト・スイープのプログラムによる管理には、この API を使用します。メインの SDK が学習中のリアルタイムロギングを処理する一方で、Public API を使うと、履歴データの取得、メタデータの更新、アーティファクトの管理、完了した Experiments の分析を行えます。メインの Api クラスが、ほとんどの機能へのエントリーポイントとして機能します。
モデルの学習およびファインチューニングは、W&B Python SDK で行います。データが W&B にログされた に、そのデータのクエリ実行や管理には Public API を使用します。

利用可能なコンポーネント

コンポーネント説明
ApiPublic API への主なエントリポイントです。組織全体の run、プロジェクト、アーティファクトをクエリします。
Runs個々の学習 run にアクセスして管理します。履歴、ログ、メトリクスを含みます。
Artifactsモデルのアーティファクト、データセット、その他のバージョン管理されたファイルをクエリおよびダウンロードします。
Sweepsハイパーパラメータスイープのデータにアクセスし、最適化結果を分析します。
Projectsプロジェクトを管理し、プロジェクトレベルのメタデータと設定にアクセスします。
Reportsプログラム経由で W&B Reports にアクセスして管理します。
Teamチーム情報をクエリし、チームレベルのリソースを管理します。
Userユーザープロフィールおよびユーザー固有のデータにアクセスします。
Filesrun に関連付けられたファイルをダウンロードおよび管理します。
History学習中に記録された詳細な時系列メトリクスにアクセスします(Run.history を参照)。
Automations自動化されたワークフローとアクションを管理します。
Integrationsサードパーティのインテグレーションを設定および管理します。

代表的なユースケース

データのエクスポートと分析

  • run の履歴を DataFrame としてエクスポートして、Jupyter Notebook で分析する
  • カスタム可視化やレポート作成のためにメトリクスをダウンロードする
  • 複数の Experiments にまたがる結果を横断的に集計する

終了後の更新

  • 完了した run のメタデータを更新する
  • 完了した Experiments にタグやメモを追加する
  • run の設定やサマリーを変更する

アーティファクト管理

  • バージョンまたはエイリアスでアーティファクトを検索する
  • モデルのチェックポイントをプログラムでダウンロードする
  • アーティファクトの系統と依存関係を追跡する

スイープの分析

  • スイープ結果と最も良い成績の run にアクセスする
  • ハイパーパラメータ探索結果をエクスポートする
  • パラメータの重要度を分析する

認証

Public API は Python SDK と同じ認証方式を使用します。認証方法はいくつかあります。 WANDB_API_KEY 環境変数を使用して APIキー を設定します:
export WANDB_API_KEY=your_api_key
Api クラスを初期化するときに、APIキーを直接渡します。
api = Api(api_key="your_api_key")
または wandb.login() を実行して現在のセッションを認証します:
import wandb

wandb.login()
api = Api()

使用例

名前とエイリアスでアーティファクトをダウンロードする

次の例では、W&B にログされたアーティファクトを名前とエイリアスを指定して取得し、その内容をダウンロードする方法を示します。
import wandb

api = wandb.Api()
artifact = api.artifact("entity/project/artifact:alias")
artifact.download()

レジストリからアーティファクトをダウンロードする

次の例は、W&B Registry からリンクされたアーティファクトを取得する方法を示します。
import wandb

REGISTRY = "<registry_name>"
COLLECTION = "<collection_name>"
VERSION = "<version>"

api = wandb.Api()
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"

# アーティファクトを取得する
fetched_artifact = api.artifact(name = artifact_name)

# アーティファクトをダウンロードする。ダウンロードされたコンテンツへのパスを返す
downloaded_path = fetched_artifact.download()

W&B Registry をクエリする

Mongo ライクなフィルターを使用して、W&B Registry、Collection、アーティファクトをクエリできます。次の例では、正規表現を使用して Collection を名前で絞り込む方法を示します。
import wandb

# wandb APIを初期化する
api = wandb.Api()

# レジストリに関係なく、コレクション名に文字列`yolo`を
# 含むすべてのコレクションをフィルタリングする
collection_filters = {
    "name": {"$regex": "yolo"}
}

# フィルターに一致するすべてのコレクションのイテラブルを返す
collections = api.registries().collections(filter=collection_filters)
レジストリ、コレクション、またはアーティファクトを検索する方法の詳細については、Find registry items を参照してください。