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

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

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

# エイリアスを指定したArtifact名
f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
波かっこ {} 内の値を、アクセスしたいアーティファクト バージョンの Registry 名、collection 名、および alias またはインデックスに置き換えてください。 リンクされたアーティファクト のパスがわかったら、wandb.Run.use_artifact() method を使用してアーティファクト にアクセスし、その内容をダウンロードします。次のコードスニペットは、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() method は、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() を参照してください。
複数の組織に属する personal entity を持つ Users複数の組織に属し、personal entity を持つ Users が Registry にリンクされたアーティファクト にアクセスする場合は、組織名を指定するか、チーム entity を使用する必要があります。
import wandb

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

# チーム entity を使用して 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 スクリプト、ノートブック、またはターミナルに貼り付けます。
レジストリ UI で使用コードスニペットを見つけてコピーする手順