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

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

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

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

<Note>
  View-Only 시트를 가진 팀 구성원은 아티팩트를 다운로드할 수 없습니다.
</Note>

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

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

<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) 방법을 사용해 사용할 아티팩트를 지정합니다. 이 방법은 객체를 반환합니다. 다음 코드 스니펫에서는 별칭이 `'latest'`인 `'bike-dataset'` 아티팩트를 지정합니다.

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

    반환된 객체를 사용해 아티팩트의 전체 콘텐츠를 다운로드합니다.

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

    선택적으로 `root` 매개변수에 경로를 전달해 아티팩트의 콘텐츠를 특정 디렉터리로 다운로드할 수 있습니다.

    파일 일부만 다운로드하려면 [`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:
        # 사용할 아티팩트를 지정합니다. 형식은 "name:alias"입니다
        artifact = run.use_artifact("bike-dataset:latest")

        # 전체 아티팩트 다운로드
        datadir = artifact.download()

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

    이렇게 하면 경로 `name`에 있는 파일만 가져옵니다. 다음 방법을 가진 `Entry` 객체를 반환합니다.

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

  <Tab title="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` 매개변수에 경로를 전달해 아티팩트의 콘텐츠를 특정 디렉터리로 다운로드할 수 있습니다. 자세한 내용은 [Python SDK 레퍼런스 가이드](/ko/models/ref/python/experiments/artifact#download)를 참조하세요.
  </Tab>

  <Tab title="W&B CLI">
    W\&B 서버에서 아티팩트를 다운로드하려면 `wandb artifact get` 명령을 사용하세요.

    ```
    $ 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 이름과 함께 아티팩트 이름을 지정하면 서로 다른 Entities에 있는 아티팩트도 참조할 수 있습니다.

다음 코드 예제는 현재 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/)를 참조하세요.
