メインコンテンツへスキップ
W&B Public API は、W&B に保存されたデータをプログラムからクエリ、エクスポート、更新するためのアクセスを提供します。事後分析、データのエクスポート、run、artifact、sweep のプログラムによる管理には、この API を使用します。メインの SDK はトレーニング中のリアルタイム logging を処理しますが、Public API では、過去のデータの取得、メタデータの更新、artifact の管理、完了した実験に対する分析を行えます。メインの Api クラスは、ほとんどの機能のエントリ ポイントです。
モデルのトレーニングとファインチューニングは、W&B Python SDK の別の箇所で行います。Public API は、データが W&B にログされたに、そのデータのクエリや管理を行うために使用します。

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

ComponentDescription
ApiPublic API の主要なエントリポイントです。組織全体の run、プロジェクト、Artifacts をクエリできます。
Runshistory、ログ、メトリクスを含む、個々のトレーニング run にアクセスして管理します。
Artifactsモデル Artifacts、データセット、その他のバージョン付きファイルをクエリしてダウンロードします。
Sweepsハイパーパラメーター sweep のデータにアクセスし、最適化結果を分析します。
ProjectsProjects を管理し、プロジェクトレベルのメタデータと設定にアクセスします。
ReportsW&B Reports にプログラムからアクセスして管理します。
Teamチーム情報をクエリし、チームレベルのリソースを管理します。
Userユーザープロフィールとユーザー固有のデータにアクセスします。
Filesrun に関連付けられたファイルをダウンロードして管理します。
Historyトレーニング中にログされた詳細な時系列メトリクスにアクセスします (Run.history を参照) 。
Automations自動化されたワークフローとアクションを管理します。
Integrationsサードパーティのインテグレーションを設定、管理します。

よくあるユースケース

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

  • Jupyter Notebookで分析できるよう、runの履歴をDataFrame形式でエクスポートします
  • 独自の可視化やレポート作成のためにメトリクスをダウンロードします
  • 複数のExperimentsにまたがる結果を集約します

事後更新

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

Artifact 管理

  • バージョンまたはエイリアスで Artifact をクエリする
  • プログラムでモデル チェックポイントをダウンロードする
  • Artifact のリネージと依存関係をトラッキングする

sweepの分析

  • sweepの結果や、最も高いパフォーマンスを示したRunsにアクセスする
  • ハイパーパラメーター探索の結果をエクスポートする
  • パラメーターの重要度を分析する

認証

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()

使用例

名とエイリアスで Artifact をダウンロードする

次の例では、W&B にログした Artifact を名とエイリアスで取得し、その内容をダウンロードする方法を示します。
import wandb

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

RegistryからArtifactをダウンロードする

次の例では、W&B RegistryからリンクされたArtifactを取得する方法を示します
import wandb

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

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

# artifactを取得する
fetched_artifact = api.artifact(name = artifact_name)

# artifactをダウンロードする。ダウンロードしたコンテンツのパスを返す
downloaded_path = fetched_artifact.download()

W&B Registry をクエリする

MongoDB ライクなフィルターを使用して、W&B Registries、Collections、Artifacts をクエリできます。次の例では、正規表現を使用して名で Collections をフィルターする方法を示します。
import wandb

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

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

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