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

> 여러 프로젝트에서 아티팩트를 다운로드하고 사용합니다.

# 아티팩트 다운로드 및 사용

이미 W\&B Server에 저장된 아티팩트를 다운로드해 사용할 수 있으며, 필요에 따라 중복 제거를 위해 아티팩트 객체를 생성해 전달할 수도 있습니다.

<Note>
  Models **Viewer** 시트의 팀 구성원은 아티팩트를 다운로드할 수 없습니다.
</Note>

<div id="download-and-use-an-artifact-stored-on-wb">
  ### W\&B에 저장된 아티팩트 다운로드 및 사용
</div>

W\&B Run 내부 또는 외부에서 W\&B에 저장된 아티팩트를 다운로드해 사용할 수 있습니다. Public API([`wandb.Api`](/ko/models/ref/python/public-api/api))를 사용하면 W\&B에 이미 저장된 내용을 내보내거나 데이터를 업데이트할 수 있습니다.

<Tabs>
  <Tab title="run 중">
    먼저 W\&B Python SDK를 임포트합니다. 다음으로 W\&B [Run](/ko/models/ref/python/experiments/run)을 생성합니다:

    ```python theme={null}
    import wandb

    with wandb.init(project="<example>", job_type="<job-type>") as run:
        # 다음 단계를 참조하세요
    ```

    [`wandb.Run.use_artifact()`](/ko/models/ref/python/experiments/run#use_artifact) 메서드로 사용할 아티팩트를 지정합니다. 이 메서드는 run 객체를 반환합니다. 다음 코드 스니펫에서는 `'latest'` 별칭이 붙은 `'bike-dataset'` 아티팩트를 지정합니다:

    ```python theme={null}
    # 사용할 artifact를 지정합니다. 형식은 "name:alias"입니다
    artifact = run.use_artifact("bike-dataset:latest")
    ```

    반환된 객체를 사용해 아티팩트의 전체 내용을 다운로드합니다:

    ```python theme={null}
    # 전체 artifact 다운로드
    datadir = artifact.download()
    ```

    선택적으로 `root` parameter에 경로를 전달해 아티팩트의 내용을 특정 디렉터리로 다운로드할 수 있습니다.

    [`wandb.Artifact.get_entry()`](/ko/models/ref/python/experiments/artifact#get_entry) 메서드를 사용하면 파일의 일부만 다운로드할 수 있습니다:

    ```python theme={null}
    # 특정 파일 다운로드
    entry = artifact.get_entry(name)
    ```

    이를 모두 합치면 전체 코드 예제는 다음과 같습니다:

    ```python theme={null}
    import wandb    

    with wandb.init(project="<example>", job_type="<job-type>") as run:
        # 사용할 artifact를 지정합니다. 형식은 "name:alias"입니다
        artifact = run.use_artifact("bike-dataset:latest")

        # 전체 artifact 다운로드
        datadir = artifact.download()

        # 특정 파일 다운로드
        entry = artifact.get_entry("bike.png")
    ```

    이렇게 하면 경로 `name`에 있는 파일만 가져옵니다. 다음 메서드가 있는 `Entry` 객체를 반환합니다:

    * `Entry.download`: 아티팩트의 경로 `name`에 있는 파일을 다운로드합니다
    * `Entry.ref`: `add_reference`가 항목을 reference로 저장한 경우 URI를 반환합니다
  </Tab>

  <Tab title="Outside of a run">
    먼저 W\&B SDK를 임포트합니다. 다음으로 Public API 클래스에서 아티팩트 객체를 생성합니다. 해당 아티팩트와 연결된 entity, 프로젝트, 아티팩트, 별칭를 지정합니다:

    ```python theme={null}
    import wandb

    api = wandb.Api()
    artifact = api.artifact("entity/project/artifact:alias")
    ```

    반환된 객체를 사용해 아티팩트의 내용을 다운로드합니다:

    ```python theme={null}
    artifact.download()
    ```

    선택적으로 `root` parameter에 경로를 전달해 아티팩트의 내용을 특정 디렉터리로 다운로드할 수 있습니다. 자세한 내용은 [Python SDK 레퍼런스 가이드](/ko/models/ref/python/experiments/artifact#download)를 참조하세요.
  </Tab>

  <Tab title="W&B CLI">
    `wandb artifact get` command를 사용해 W\&B Server에서 아티팩트를 다운로드합니다.

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

<div id="partially-download-an-artifact">
  ### 아티팩트 일부 다운로드
</div>

접두사를 기준으로 아티팩트의 일부만 선택해 다운로드할 수 있습니다. `path_prefix=` (`wandb.Artifact.download(path_prefix=)`) 매개변수를 사용해 단일 파일 또는 하위 폴더의 내용을 다운로드하세요.

```python theme={null}
with wandb.init(project="<example>", 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={null}
# images/bikes 디렉터리의 파일을 다운로드합니다
artifact.download(path_prefix="images/bikes/") 
```

<div id="use-an-artifact-from-a-different-project">
  ### 다른 프로젝트의 아티팩트 사용
</div>

아티팩트를 참조하려면 프로젝트 이름과 함께 아티팩트 이름을 지정하세요. entity 이름과 함께 아티팩트 이름을 지정하면 entity 간에도 아티팩트를 참조할 수 있습니다.

다음 코드 예제는 현재 W\&B run의 입력으로 다른 프로젝트의 아티팩트를 쿼리하는 방법을 보여줍니다.

```python theme={null}
with wandb.init(project="<example>", job_type="<job-type>") as run:
    # 다른 프로젝트의 아티팩트를 W&B에서 쿼리하고
    # 이 run의 입력으로 표시합니다.
    artifact = run.use_artifact("my-project/artifact:alias")

    # 다른 entity의 아티팩트를 사용하고 이 run의 입력으로
    # 표시합니다.
    artifact = run.use_artifact("my-entity/my-project/artifact:alias")

```

<div id="construct-and-use-an-artifact-simultaneously">
  ### 아티팩트를 생성과 동시에 사용하기
</div>

아티팩트를 생성하는 동시에 사용할 수 있습니다. 아티팩트 객체를 만든 다음 use\_artifact에 전달하세요. 이렇게 하면 아직 존재하지 않는 경우 W\&B에서 아티팩트가 생성됩니다. [`wandb.Run.use_artifact()`](/ko/models/ref/python/experiments/run#use_artifact) API는 멱등적이므로 원하는 만큼 여러 번 호출해도 됩니다.

```python theme={null}
import wandb

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

아티팩트를 생성하는 방법에 대한 자세한 내용은 [아티팩트 생성하기](/ko/models/artifacts/construct-an-artifact/)를 참조하세요.
