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

사용 사례

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

아티팩트 생성

네 줄의 코드만으로 아티팩트를 생성합니다:
  1. W&B run을 생성합니다.
  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 버킷과 같은 외부 오브젝트 스토리지에 저장된 파일 또는 디렉터리에 대한 참조를 추가하는 방법은 track external files 페이지를 참고하십시오.

아티팩트 다운로드

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

다음 단계

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