메인 콘텐츠로 건너뛰기
W&B 실행의 입력과 출력으로 사용되는 데이터를 추적하고 버전 관리하려면 W&B 아티팩트를 사용하세요. 예를 들어, 모델 학습 실행은 입력으로 데이터셋을 받아들이고 출력으로 학습된 모델을 생성할 수 있습니다. 하이퍼파라미터, 메타데이터, 메트릭은 실행에 로깅할 수 있으며, 모델 학습에 사용된 데이터셋은 하나의 아티팩트에 로깅하여 입력 데이터로서 추적·버전 관리하고, 결과로 생성된 모델 체크포인트는 또 다른 아티팩트를 사용해 출력으로 관리할 수 있습니다.

사용 사례

아티팩트를 전체 ML 워크플로에서 실행의 입력과 출력으로 사용할 수 있습니다. 데이터셋, 모델, 또는 다른 아티팩트를 처리 작업의 입력으로 사용할 수 있습니다.
모델 학습, 데이터 처리, 모델 평가를 위한 입력과 출력을 보여 주는 아티팩트 워크플로 다이어그램
사용 사례입력출력
모델 학습데이터셋(학습 및 검증 데이터)학습된 모델
데이터셋 전처리데이터셋(원시 데이터)데이터셋(전처리된 데이터)
모델 평가모델 + 데이터셋(테스트 데이터)W&B Table
모델 최적화모델최적화된 모델
다음 코드 스니펫은 순서대로 실행해야 합니다.

아티팩트 생성하기

네 줄의 코드만으로 아티팩트를 생성할 수 있습니다:
  1. W&B 실행을 생성합니다.
  2. wandb.Artifact로 아티팩트 객체를 생성합니다.
  3. wandb.Artifact.add_file()를 사용해 모델 파일이나 데이터셋과 같은 하나 이상의 파일을 아티팩트 객체에 추가합니다.
  4. wandb.Run.log_artifact()를 사용해 아티팩트를 W&B에 로그합니다.
예를 들어, 아래 코드 예시는 dataset.h5라는 파일을 example_artifact라는 아티팩트에 로그하는 방법을 보여줍니다:
import wandb

with wandb.init(project="artifacts-example", job_type="add-dataset") as run:
    artifact = wandb.Artifact(name="example_artifact", type="dataset")
    artifact.add_file(local_path="./dataset.h5", name="training_dataset")
    run.log_artifact(artifact)
  • 아티팩트의 type은 W&B 플랫폼에서 어떻게 표시되는지에 영향을 미칩니다. type을 지정하지 않으면 기본값은 unspecified입니다.
  • 드롭다운의 각 레이블은 서로 다른 type 매개변수 값을 나타냅니다. 위 코드 스니펫에서는 아티팩트의 typedataset입니다.
Amazon S3 버킷과 같은 외부 오브젝트 스토리지에 저장된 파일이나 디렉터리에 대한 참조를 추가하는 방법은 외부 파일 추적 페이지를 참고하세요.

아티팩트 다운로드

wandb.Run.use_artifact() 메서드를 사용하여 실행의 입력으로 사용할 아티팩트를 지정합니다. 이전 코드 스니펫에 이어, 아래 코드 예제에서는 앞에서 생성한 example_artifact 아티팩트를 사용하는 방법을 보여줍니다.
with wandb.init(project="artifacts-example", job_type="add-dataset") as run:
    artifact = run.use_artifact("training_dataset:latest")  # "my_data" 아티팩트를 사용하는 실행 객체를 반환합니다
이 호출은 아티팩트 객체를 반환합니다. 다음으로, 반환된 객체를 사용해 아티팩트의 모든 내용을 다운로드합니다:
datadir = artifact.download()  # `my_data` 아티팩트 전체를 기본 디렉토리에 다운로드합니다.
root 매개변수에 사용자 지정 경로를 지정하면 아티팩트를 특정 디렉터리에 다운로드할 수 있습니다. 아티팩트를 다운로드하는 다른 방법과 사용 가능한 추가 매개변수에 대해서는 아티팩트 다운로드 및 사용 가이드를 참고하세요.

다음 단계

  • 아티팩트를 버전 관리하고 업데이트하는 방법을 배워보세요.
  • 자동화를 사용해 아티팩트 변경 사항에 따라 후속 워크플로를 트리거하거나 Slack 채널에 알림을 보내는 방법을 배워보세요.
  • 학습된 모델을 저장하는 공간인 레지스트리에 대해 알아보세요.
  • Python SDKCLI 레퍼런스 가이드를 살펴보세요.