> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-feat-cli-docs-generator.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# レジストリからアーティファクトをダウンロードする

W\&B Python SDK を使用して、レジストリにリンクされたアーティファクトをダウンロードします。アーティファクトをダウンロードして使用するには、レジストリ名、コレクション名、およびダウンロードしたいアーティファクトバージョンのエイリアスまたはインデックスを知る必要があります。

アーティファクトのプロパティを知ったら、[リンクされたアーティファクトへのパスを構築](#construct-path-to-linked-artifact)してアーティファクトをダウンロードできます。または、W\&B アプリ UI から事前に生成されたコードスニペットを[コピーして貼り付け](#copy-and-paste-pre-generated-code-snippet)することで、レジストリにリンクされたアーティファクトをダウンロードすることもできます。

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

レジストリにリンクされたアーティファクトをダウンロードするには、そのリンクされたアーティファクトのパスを知っている必要があります。パスは、レジストリ名、コレクション名、およびアクセスしたいアーティファクトバージョンのエイリアスまたはインデックスで構成されます。

レジストリ、コレクション、およびアーティファクトバージョンのエイリアスまたはインデックスを手に入れたら、以下の文字列テンプレートを使用してリンクされたアーティファクトへのパスを構築できます。

```python theme={null}
# バージョンインデックスを指定したアーティファクト名
f"wandb-registry-{REGISTRY}/{COLLECTION}:v{INDEX}"

# エイリアスを指定したアーティファクト名
f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"
```

中括弧 `{}` 内の値を、アクセスしたいレジストリ、コレクション、およびアーティファクトバージョンのエイリアスまたはインデックスの名前で置き換えてください。

<Note>
  アーティファクトバージョンをコアモデルレジストリまたはコアデータセットレジストリにリンクするには、`model` または `dataset` を指定してください。
</Note>

リンクされたアーティファクトのパスを取得したら、`wandb.init.use_artifact` メソッドを使用してアーティファクトにアクセスし、その内容をダウンロードします。以下のコードスニペットは、W\&B レジストリにリンクされたアーティファクトを使用およびダウンロードする方法を示しています。`<>` 内の値を自分のものに置き換えてください。

```python theme={null}
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](/ja/models/runs/)を作成するとともに、ダウンロードしたアーティファクトをその run の入力としてマークします。 アーティファクトを run の入力としてマークすることにより、W\&B はそのアーティファクトのリネージを追跡できます。

runを作成したくない場合は、`wandb.Api()` オブジェクトを使用してアーティファクトにアクセスできます。

```python theme={null}
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)
```

<details>
  <summary>例: W\&B レジストリにリンクされたアーティファクトを使用およびダウンロード</summary>

  次のコード例は、ユーザーが **Fine-tuned Models** レジストリにある `phi3-finetuned` というコレクションにリンクされたアーティファクトをダウンロードする方法を示しています。アーティファクトバージョンのエイリアスは `production` に設定されています。

  ```python theme={null}
  import wandb

  TEAM_ENTITY = "product-team-applications"
  PROJECT_NAME = "user-stories"

  REGISTRY = "Fine-tuned Models"
  COLLECTION = "phi3-finetuned"
  ALIAS = 'production'

  # 指定されたチームとプロジェクト内で run を初期化
  run = wandb.init(entity=TEAM_ENTITY, project = PROJECT_NAME)

  artifact_name = f"wandb-registry-{REGISTRY}/{COLLECTION}:{ALIAS}"

  # アーティファクトにアクセスし、それをリネージ追跡のために run の入力としてマーク
  fetched_artifact = run.use_artifact(artifact_or_name = name)  

  # アーティファクトをダウンロード。ダウンロードされたコンテンツのパスを返します
  downloaded_path = fetched_artifact.download()  
  ```
</details>

APIリファレンスガイドの [`use_artifact`](/ja/models/ref/python/run#use_artifact) と [`Artifact.download()`](/ja/models/ref/python/artifact#download) で可能なパラメータや返り値の種類について詳しく見てください。

<Note>
  **複数の組織に所属する個人エンティティを持つユーザー**

  複数の組織に所属する個人エンティティを持つユーザーは、レジストリにリンクされたアーティファクトにアクセスする際、組織名を指定するか、チームエンティティを使用する必要があります。

  ```python theme={null}
  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"{ORG_NAME}/wandb-registry-{REGISTRY}/{COLLECTION}:{VERSION}"
  artifact = api.artifact(name = artifact_name)
  ```

  `ORG_NAME` は組織の表示名です。マルチテナント SaaS ユーザーは、`https://wandb.ai/account-settings/` の組織の設定ページで組織名を見つけることができます。専用クラウドおよび自己管理ユーザーの場合、組織の表示名を確認するには、アカウント管理者に連絡してください。
</Note>

## 事前に生成されたコードスニペットのコピーと貼り付け

W\&B は、レジストリにリンクされたアーティファクトをダウンロードするために、Pythonスクリプト、ノートブック、またはターミナルにコピーして貼り付けることができるコードスニペットを作成します。

1. レジストリアプリに移動します。
2. アーティファクトを含むレジストリの名前を選択します。
3. コレクションの名前を選択します。
4. アーティファクトバージョンのリストからアクセスするバージョンを選択します。
5. **Usage** タブを選択します。
6. **Usage API** セクションに表示されたコードスニペットをコピーします。
7. コピーしたコードスニペットを Python スクリプト、ノートブック、またはターミナルに貼り付けます。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-feat-cli-docs-generator/odvsXuVtRq39LmE_/images/registry/find_usage_in_registry_ui.gif?s=58efe769bd81470c4ab3c8289e6e1724" width="600" height="347" data-path="images/registry/find_usage_in_registry_ui.gif" />
</Frame>
