メインコンテンツへスキップ
W&B Python SDK を使用して、レジストリにリンクされたアーティファクトをダウンロードします。アーティファクトをダウンロードして使用するには、レジストリ名、コレクション名、そしてダウンロードしたいアーティファクトバージョンのエイリアスまたはインデックスを知っておく必要があります。 アーティファクトのプロパティが分かったら、リンクされたアーティファクトへのパスを構築してアーティファクトをダウンロードできます。別の方法として、W&B App UI から あらかじめ生成されたコードスニペットをコピー&ペーストして、レジストリにリンクされたアーティファクトをダウンロードすることもできます。

リンクされたアーティファクトへのパスを構築する

レジストリにリンクされたアーティファクトをダウンロードするには、そのリンクされたアーティファクトのパスを知っている必要があります。パスは、レジストリ名、コレクション名、およびアクセスしたいアーティファクトバージョンのエイリアスまたはインデックスで構成されます。 レジストリ、コレクション、およびアーティファクトバージョンのエイリアスまたはインデックスがわかったら、次の文字列テンプレートを使用して、リンクされたアーティファクトへのパスを構築できます。
# バージョンインデックスを指定したアーティファクト名
f"wandb-registry-{REGISTRY}/{COLLECTION}:v{INDEX}"

# エイリアスを指定したアーティファクト名
f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
中括弧 {} 内の値を、利用したいレジストリ名、コレクション名、およびアーティファクトバージョンのエイリアスまたはインデックスに置き換えてください。 リンクされているアーティファクトのパスを取得したら、wandb.Run.use_artifact() メソッドを使ってそのアーティファクトにアクセスし、内容をダウンロードします。次のコードスニペットは、W&B Registry にリンクされたアーティファクトを利用して内容をダウンロードする方法を示しています。<> 内の値は必ず自身の値に置き換えてください。
import wandb

REGISTRY = '<registry_name>'
COLLECTION = '<collection_name>'
ALIAS = '<artifact_alias>'

with wandb.init(entity = '<team_name>', project = '<project_name>')  as run:
    artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
    # artifact_name = '<artifact_name>' # W&B Registry UIに表示されているフルネームをコピーして貼り付ける
    fetched_artifact = run.use_artifact(artifact_or_name = artifact_name)  
    download_path = fetched_artifact.download()  
wandb.Run.use_artifact() メソッドは、run を作成すると同時に、ダウンロードしたアーティファクトをその run の入力としてマークします。 アーティファクトを run の入力としてマークすると、W&B はそのアーティファクトの来歴を追跡できるようになります。 run を作成したくない場合は、wandb.Api() オブジェクトを使用してアーティファクトにアクセスできます。
import wandb

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

api = wandb.Api()
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
artifact = api.artifact(name = artifact_name)
パラメータと戻り値の型については、API Reference の wandb.Run.use_artifact()Artifact.download() を参照してください。
Users with a personal entity that belong to multiple organizations個人エンティティが複数の組織に属している Users は、レジストリにリンクされたアーティファクトへアクセスする際に、組織名を指定するか、チームの entity を使用する必要があります。
import wandb

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

# API を初期化する際に、チームの entity を使用していることを確認
api = wandb.Api(overrides={"entity": "<team-entity>"})
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
artifact = api.artifact(name = artifact_name)

# パスを構成
api = wandb.Api()
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
artifact = api.artifact(name = artifact_name)

自動生成されたコードスニペットをコピー&ペーストする

W&B は、レジストリにリンクされたアーティファクトをダウンロードするために、Python スクリプト、ノートブック、またはターミナルにコピー&ペーストできるコードスニペットを生成します。
  1. W&B Registry に移動します。
  2. 対象のアーティファクトを含むレジストリ名を選択します。
  3. コレクション名を選択します。
  4. アーティファクトバージョンの一覧から、アクセスしたいバージョンを選択します。
  5. Usage タブを開きます。
  6. Usage API セクションに表示されるコードスニペットをコピーします。
  7. コピーしたコードスニペットを Python スクリプト、ノートブック、またはターミナルにペーストします。
レジストリ UI から Usage のコードスニペットを探してコピーする手順