メインコンテンツへスキップ
W&B Python SDK を使用して、リポジトリにリンクされた Artifacts をダウンロードします。Artifacts をダウンロードして使用するには、レジストリ名、コレクション名、およびダウンロードしたい Artifact バージョンの エイリアス またはインデックスを知る必要があります。 Artifact のプロパティを確認したら、リンクされた Artifact へのパスを作成 してダウンロードできます。あるいは、W&B App UI から 事前生成されたコードスニペットをコピー&ペースト して、レジストリにリンクされた Artifact をダウンロードすることも可能です。

リンクされた Artifact へのパスを作成する

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

# エイリアスを指定した Artifact 名
f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
波括弧 {} 内の値を、アクセス したいレジストリ名、コレクション名、および Artifact バージョンの エイリアス またはインデックスに置き換えてください。 リンクされた Artifact のパスを取得したら、wandb.Run.use_artifact() メソッドを使用して Artifact に アクセス し、その内容をダウンロードします。以下の コードスニペット は、W&B Registry にリンクされた Artifact を使用およびダウンロードする方法を示しています。<> 内の値は自身の環境に合わせて置き換えてください。
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 を作成すると同時に、ダウンロードした Artifact をその run のインプットとしてマークします。 Artifact を run のインプットとしてマークすることで、W&B はその Artifact の リネージ を追跡できるようになります。 run を作成したくない場合は、wandb.Api() オブジェクト を使用して Artifact に アクセス できます。
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 リファレンスの wandb.Run.use_artifact() および Artifact.download() を参照してください。
複数の組織に所属する個人エンティティのユーザー複数の組織に所属する個人エンティティの Users は、レジストリにリンクされた Artifacts に アクセス する際、組織名を指定するか、チームエンティティを使用する必要があります。
import wandb

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

# API をインスタンス化する際にチームエンティティを使用していることを確認してください
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 は、レジストリにリンクされた Artifact をダウンロードするために、Python スクリプト、ノートブック、または ターミナル にコピー&ペーストできる コードスニペット を生成します。
  1. W&B Registry に移動します。
  2. Artifact が含まれているレジストリ名を選択します。
  3. コレクション名を選択します。
  4. Artifact バージョンのリストから、アクセス したい バージョン を選択します。
  5. Usage タブを選択します。
  6. Usage API セクションに表示されている コードスニペット をコピーします。
  7. コードスニペット を Python スクリプト、ノートブック、または ターミナル に貼り付けます。