> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

> 複数の project からアーティファクトをダウンロードして使用します。

# アーティファクトをダウンロードして使用する

W\&B サーバーにすでに保存されているアーティファクトをダウンロードして使用するか、アーティファクト オブジェクトを作成して渡し、必要に応じて重複排除を行います。

<h2 id="download-and-use-an-artifact-stored-on-wb">
  W\&B に保存されたアーティファクトをダウンロードして使用する
</h2>

アーティファクトが run の依存関係である場合、追跡された run 入力としてダウンロードするか、リネージ追跡を必要としないワークフローでは直接取得します。

<Info>
  W\&B が処理方法を把握しているスキームを持つリファレンスは、アーティファクトファイルと同様にダウンロードされます。詳細については、[外部ファイルをトラッキングする](/ja/products/wandb/artifacts/track-external-files) を参照してください。
</Info>

アーティファクト内のすべてのファイルをダウンロードするか、個別のファイルをダウンロードできます：

* すべてのファイルをダウンロードするには [`Artifact.download()`](/ja/products/wandb/ref/python/experiments/artifact#download) を使用します。
* 特定のエントリを取得するには [`Artifact.get_entry()`](/ja/products/wandb/ref/python/experiments/artifact#get_entry) を使用し、その後 `.download()` を呼び出してダウンロードします。

<Tabs>
  <Tab title="run 入力をトラッキングする">
    W\&B run の一部としてアーティファクトをダウンロードするには `wandb.Run.use_artifact()` を使用します。W\&B はアーティファクトを run の入力として記録します。

    1. W\&B Python SDK をインポートし、W\&B [Run](/ja/products/wandb/ref/python/experiments/run) を初期化します。
    2. `wandb.Run.use_artifact()` でアーティファクトのバージョンを取得します。
    3. 返された `Artifact` オブジェクトからすべてのファイルまたは特定のファイルをダウンロードします。

    ```python theme={"system"}
    import wandb    

    with wandb.init(project="project-name", job_type="job-type") as run:
        # 使用するアーティファクトを示します。形式は "name:alias"
        artifact = run.use_artifact("bike-dataset:latest")

        # アーティファクト全体をダウンロード
        datadir = artifact.download()

        # 特定のファイルをダウンロード
        entry = artifact.get_entry("bike.png")
        file_path = entry.download() # bike.png のみをダウンロード
    ```
  </Tab>

  <Tab title="直接取得する">
    run を作成したり run 入力関係を記録したりせずにアーティファクトをダウンロードするには Public API を使用します。

    1. W\&B Python SDK をインポートし、`wandb.Api()` でクライアントオブジェクトを作成します。
    2. `wandb.Api.artifact()` でアーティファクトのバージョンを取得します。
    3. 返された `Artifact` オブジェクトからすべてのファイルまたは特定のファイルをダウンロードします。

    アーティファクト パスを `entity/project/artifact:alias` の形式で指定します。

    ```python theme={"system"}
    import wandb

    api = wandb.Api()
    artifact = api.artifact("entity/project/artifact:alias")
    artifact.download()
    ```
  </Tab>

  <Tab title="W&B CLI">
    W\&B サーバーからアーティファクトをダウンロードするには `wandb artifact get` コマンドを使用します。

    ```
    $ wandb artifact get project/artifact:alias --root mnist/
    ```
  </Tab>
</Tabs>

<h2 id="partially-download-an-artifact">
  アーティファクトを部分的にダウンロードする
</h2>

接頭辞を指定して、アーティファクトの一部だけをダウンロードすることもできます。`path_prefix=` (`wandb.Artifact.download(path_prefix=)`) パラメーターを使用すると、単一のファイルやサブフォルダーの内容をダウンロードできます。

```python theme={"system"}
with wandb.init(project="project-name", job_type="job-type") as run:
    # 使用するアーティファクトを指定します。形式は "name:alias" です
    artifact = run.use_artifact("bike-dataset:latest")

    # 特定のファイルまたはサブフォルダーをダウンロードします
    artifact.download(path_prefix="bike.png") # bike.png のみをダウンロードします
```

また、特定のディレクトリ内のファイルをダウンロードすることもできます。その場合は、`path_prefix=` パラメーターにディレクトリを指定します。前のコードスニペットに続けて、次のように記述します。

```python theme={"system"}
# images/bikes ディレクトリ内のファイルをダウンロード
artifact.download(path_prefix="images/bikes/") 
```

<h2 id="verify-downloaded-artifact-files">
  ダウンロードしたアーティファクトファイルを検証する
</h2>

アーティファクトをダウンロードしたら、`wandb.Artifact.verify()` を呼び出して、ディスク上のローカルファイルがアーティファクトのマニフェストと一致していることを確認します。

次の例では、run 内でアーティファクトをダウンロードし、ダウンロードしたファイルを検証します。

```python theme={"system"}
import wandb

with wandb.init(project="project-name", job_type="job-type") as run:
    artifact = run.use_artifact("entity/project/my-dataset:latest")
    artifact_dir = artifact.download()
    artifact.verify(artifact_dir)
```

[`wandb.Artifact.verify()`](/ja/products/wandb/ref/python/experiments/artifact#method-artifact-verify) は、ローカルファイルのチェックサムを再計算し、アーティファクトの manifest に記録されたチェックサムと比較します。ファイルが欠落または変更されている場合や、アーティファクトに含まれていないファイルがディレクトリ内に存在する場合は、検証が失敗します。

<Note>
  **アーティファクト検証に関する考慮事項**

  * `wandb.Artifact.verify()` は[参照エントリ](/ja/products/wandb/artifacts/track-external-files)を検証しません。

  * `digest_algorithm="XXH128"` で作成されたアーティファクトに `wandb.Artifact.verify()` を使用するには、W\&B Python SDK バージョン 0.29.0 以降が必要です。それより前の SDK バージョンは XXH128 の manifest エントリをサポートしていないため、検証が失敗します。
</Note>

<h2 id="use-an-artifact-from-a-different-project">
  別の project のアーティファクトを使用する
</h2>

アーティファクトを参照するには、アーティファクト名とプロジェクト名を指定します。アーティファクト名と entity 名を指定すると、異なる entity のアーティファクトも参照できます。

次のコード例は、現在の W\&B run の入力として、別の project のアーティファクトをクエリする方法を示しています。

```python theme={"system"}
with wandb.init(project="project-name", job_type="job-type") as run:
    # W&B に別の project のアーティファクトをクエリし、
    # この run の入力として指定します。
    artifact = run.use_artifact("my-project/artifact:alias")

    # 別の entity のアーティファクトを使用し、
    # この run の入力として指定します。
    artifact = run.use_artifact("my-entity/my-project/artifact:alias")
```

<h2 id="construct-and-use-an-artifact-simultaneously">
  アーティファクトの作成と使用を同時に行う
</h2>

アーティファクトの作成と使用を同時に行います。アーティファクト オブジェクトを作成し、use\_artifact に渡してください。W\&B にアーティファクトがまだ存在しない場合は、この時点で作成されます。[`wandb.Run.use_artifact()`](/ja/products/wandb/ref/python/experiments/run#use_artifact) API はべき等なので、何度呼び出しても問題ありません。

```python theme={"system"}
import wandb

with wandb.init(project="project-name", job_type="job-type") as run:
    artifact = wandb.Artifact("reference model")
    artifact.add_file("model.h5")
    run.use_artifact(artifact)
```

アーティファクトの作成方法の詳細については、[アーティファクトを構築する](/ja/products/wandb/artifacts/construct-an-artifact)を参照してください。
