> ## 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.

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

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

W\&B 서버에 이미 저장된 아티팩트를 다운로드하여 사용하거나, 필요한 경우 아티팩트 객체를 생성하고 전달하여 중복을 제거하세요.

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

아티팩트가 run의 의존성인 경우 추적되는 run 입력으로 다운로드하고, 리니지 추적이 필요 없는 워크플로에서는 직접 가져오세요.

<Info>
  W\&B가 처리할 수 있는 스킴의 레퍼런스는 아티팩트 파일과 동일한 방식으로 다운로드됩니다. 자세한 내용은 [외부 파일 추적](/ko/products/wandb/artifacts/track-external-files)을 참조하세요.
</Info>

아티팩트의 파일 전체를 다운로드하거나 개별 파일만 다운로드할 수 있습니다.

* 모든 파일을 다운로드하려면 [`Artifact.download()`](/ko/products/wandb/ref/python/experiments/artifact#download)를 사용하세요.
* 특정 엔트리를 다운로드하려면 [`Artifact.get_entry()`](/ko/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](/ko/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()`](/ko/products/wandb/ref/python/experiments/artifact#method-artifact-verify)는 로컬 파일의 체크섬을 다시 계산하여 아티팩트 매니페스트에 기록된 체크섬과 비교합니다. 파일이 누락되었거나 수정된 경우, 또는 디렉터리에 아티팩트에 포함되지 않은 파일이 있는 경우에는 확인에 실패합니다.

<Note>
  **아티팩트 확인 시 고려 사항**

  * `wandb.Artifact.verify()`는 [참조 항목](/ko/products/wandb/artifacts/track-external-files)을 확인하지 않습니다.

  * `digest_algorithm="XXH128"`로 생성한 아티팩트에 `wandb.Artifact.verify()`를 사용하려면 W\&B Python SDK 0.29.0 이상 버전이 필요합니다. 이전 버전의 SDK는 XXH128 매니페스트 항목을 지원하지 않으므로 확인에 실패합니다.
</Note>

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

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

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

```python theme={"system"}
with wandb.init(project="project-name", 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")
```

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

아티팩트를 생성하면서 동시에 사용할 수 있습니다. 아티팩트 객체를 만든 다음 use\_artifact에 전달하세요. W\&B에 해당 아티팩트가 아직 없으면 새로 생성됩니다. [`wandb.Run.use_artifact()`](/ko/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)
```

아티팩트 구성에 대한 자세한 내용은 [아티팩트 구성하기](/ko/products/wandb/artifacts/construct-an-artifact)를 참조하세요.
