Download an artifact from a registry
2 minute read
W&B Python SDK を使用して、レジストリにリンクされた artifact をダウンロードします。artifact をダウンロードして使用するには、レジストリの名前、コレクションの名前、およびダウンロードする artifact バージョンのエイリアスまたはインデックスを知っておく必要があります。
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 バージョンのエイリアスまたはインデックスの名前に置き換えます。
model
またはdataset
を指定します。リンクされた artifact のパスを取得したら、wandb.init.use_artifact
メソッドを使用して artifact にアクセスし、そのコンテンツをダウンロードします。次のコードスニペットは、W&B Registry にリンクされた artifact を使用およびダウンロードする方法を示しています。<>
内の値を自分の値に置き換えてください。
import wandb
REGISTRY = '<registry_name>'
COLLECTION = '<collection_name>'
ALIAS = '<artifact_alias>'
run = wandb.init(
entity = '<team_name>',
project = '<project_name>'
)
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
# artifact_name = '<artifact_name>' # Registry App で指定されたフルネームをコピーして貼り付けます
fetched_artifact = run.use_artifact(artifact_or_name = artifact_name)
download_path = fetched_artifact.download()
.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)
例:W&B Registry にリンクされた Artifact を使用およびダウンロードする
次のコード例は、ユーザーが Fine-tuned Models レジストリの phi3-finetuned
というコレクションにリンクされた artifact をダウンロードする方法を示しています。artifact バージョンのエイリアスは production
に設定されています。
import wandb
TEAM_ENTITY = "product-team-applications"
PROJECT_NAME = "user-stories"
REGISTRY = "Fine-tuned Models"
COLLECTION = "phi3-finetuned"
ALIAS = 'production'
# 指定された Team と Project 内で Run を初期化します
run = wandb.init(entity=TEAM_ENTITY, project = PROJECT_NAME)
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
# Artifact にアクセスし、リネージ追跡のために Run への入力としてマークします
fetched_artifact = run.use_artifact(artifact_or_name = name)
# Artifact をダウンロードします。ダウンロードしたコンテンツへのパスを返します
downloaded_path = fetched_artifact.download()
可能なパラメータと戻り値の型の詳細については、API Reference ガイドの use_artifact
および Artifact.download()
を参照してください。
複数の組織に属する個人 Entity を持つ Users
複数の組織に属する個人 Entity を持つ Users は、レジストリにリンクされた artifact にアクセスする際に、組織の名前を指定するか、Team Entity を使用する必要があります。
import wandb
REGISTRY = "<registry_name>"
COLLECTION = "<collection_name>"
VERSION = "<version>"
# API をインスタンス化するために、Team Entity を使用していることを確認してください
api = wandb.Api(overrides={"entity": "<team-entity>"})
artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
artifact = api.artifact(name = artifact_name)
# パスで組織の表示名または組織 Entity を使用します
api = wandb.Api()
artifact_name = f"{ORG_NAME}/wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
artifact = api.artifact(name = artifact_name)
ORG_NAME
は、組織の表示名です。マルチテナント SaaS ユーザーは、組織の設定ページ(https://wandb.ai/account-settings/
)で組織の名前を見つけることができます。Dedicated Cloud および Self-Managed ユーザーは、アカウント管理者に連絡して、組織の表示名を確認してください。
事前生成されたコードスニペットをコピーして貼り付け
W&B は、Python スクリプト、notebook、またはターミナルにコピーして貼り付けて、レジストリにリンクされた artifact をダウンロードできるコードスニペットを作成します。
- Registry App に移動します。
- artifact が含まれているレジストリの名前を選択します。
- コレクションの名前を選択します。
- artifact バージョンのリストから、アクセスするバージョンを選択します。
- Usage タブを選択します。
- Usage API セクションに表示されているコードスニペットをコピーします。
- コードスニペットを Python スクリプト、notebook、またはターミナルに貼り付けます。

[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.