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

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

> パスを組み立てて Python SDK を使用し、W&B Registry のコレクションにリンクされたアーティファクトをダウンロードします。

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

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

<div id="construct-path-to-linked-artifact">
  ## リンクされたアーティファクト へのパスを構築する
</div>

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

アーティファクト バージョンの Registry、コレクション、エイリアス またはインデックスがわかれば、次の文字列テンプレートを使ってリンクされたアーティファクト へのパスを構築できます:

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

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

波かっこ `{}` 内の値を、アクセスしたいアーティファクト バージョンの Registry 名、コレクション 名、および alias またはインデックスに置き換えてください。

リンクされたアーティファクト のパスがわかったら、`wandb.Run.use_artifact()` method を使用してアーティファクト にアクセスし、その内容をダウンロードします。次のコードスニペットは、W\&B Registry にリンクされた アーティファクト の使い方とダウンロード方法を示しています。`<>` 内の値は必ずご自身のものに置き換えてください。

```python theme={null}
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](/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 Registry にリンクされた アーティファクト を使用してダウンロードする</summary>

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

  ```python theme={null}
  import wandb

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

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

  # 指定したチームと project 内で run を初期化
  with wandb.init(entity=TEAM_ENTITY, project = PROJECT_NAME) as run:

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

      # アーティファクト にアクセスし、リネージのトラッキングのために run への入力としてマーク
      fetched_artifact = run.use_artifact(artifact_or_name = artifact_name)  

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

パラメーターと戻り値の型については、API Reference の [`wandb.Run.use_artifact()`](/ja/models/ref/python/experiments/run#use_artifact) と [`Artifact.download()`](/ja/models/ref/python/experiments/artifact#download) を参照してください。

<Note>
  **複数の組織に属する personal entity を持つ Users**

  複数の組織に属し、personal entity を持つ Users が Registry にリンクされたアーティファクト にアクセスする場合は、組織名を指定するか、チーム entity を使用する必要があります。

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

<div id="copy-and-paste-pre-generated-code-snippet">
  ## 事前に生成されたコードスニペットをコピー＆ペーストする
</div>

W\&B では、Registry に関連付けられた アーティファクト をダウンロードするためのコードスニペットが生成されます。このコードスニペットは、Python スクリプト、ノートブック、またはターミナルにコピー＆ペーストして使用できます。

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