메인 콘텐츠로 건너뛰기
이 튜토리얼에서는 W&B로 데이터셋 아티팩트를 생성하고 추적하며 사용하는 방법을 설명합니다.

1. W&B에 로그인하기

W&B 라이브러리를 import한 다음 W&B에 로그인합니다. 아직 계정을 만들지 않았다면 먼저 무료 W&B 계정에 가입해야 합니다.
import wandb

wandb.login()

2. 실행 초기화하기

wandb.init()를 사용하여 실행을 초기화합니다. 이 함수는 데이터를 동기화하고 로그를 기록하기 위한 백그라운드 프로세스를 생성합니다. 프로젝트 이름과 작업 유형(job type)을 지정합니다:
# W&B 실행을 생성합니다. 이 예제는 데이터셋 아티팩트를 생성하는 방법을 보여주므로
# job type으로 'dataset'을 지정합니다.
with wandb.init(project="artifacts-example", job_type="upload-dataset") as run:
    # 여기에 코드를 작성하세요

3. 아티팩트 객체 생성

wandb.Artifact()를 사용하여 아티팩트 객체를 생성합니다. 각각 nametype 매개변수에 아티팩트의 이름과 파일 유형에 대한 설명을 설정합니다. 예를 들어, 다음 코드 스니펫은 ‘bicycle-dataset’이라는 이름과 ‘dataset’ 레이블을 가진 아티팩트를 생성하는 방법을 보여줍니다:
artifact = wandb.Artifact(name="bicycle-dataset", type="dataset")
아티팩트를 구성하는 방법에 대한 자세한 내용은 아티팩트 구성을 참고하세요.

4. 아티팩트에 데이터셋 추가하기

아티팩트에 파일을 추가합니다. 일반적인 파일 유형으로는 모델과 데이터셋이 있습니다. 다음 예시는 로컬 머신에 저장된 dataset.h5라는 이름의 데이터셋을 아티팩트에 추가하는 방법을 보여줍니다:
# 아티팩트의 콘텐츠에 파일 추가
artifact.add_file(local_path="dataset.h5")
이전에 나온 코드 스니펫에서 파일 이름 dataset.h5를 아티팩트에 추가하려는 파일의 경로로 변경하세요.

5. 데이터셋 로그하기

W&B 실행 객체에서 제공하는 wandb.Run.log_artifact() 메서드를 사용하여 아티팩트 버전을 저장하고, 해당 아티팩트를 실행의 출력으로 선언합니다.
# 아티팩트 버전을 W&B에 저장하고
# 이 실행의 출력으로 표시합니다
run.log_artifact(artifact)
아티팩트를 로그하면 기본적으로 'latest' 별칭이 자동으로 생성됩니다. 아티팩트 별칭과 버전에 대한 자세한 내용은 각각 사용자 지정 별칭 생성새 아티팩트 버전 생성을 참조하세요. 지금까지 작성한 스크립트는 다음과 같아야 합니다:
import wandb

wandb.login()

with wandb.init(project="artifacts-example", job_type="upload-dataset") as run:
    artifact = wandb.Artifact(name="bicycle-dataset", type="dataset")
    artifact.add_file(local_path="dataset.h5")
    run.log_artifact(artifact)

6. 아티팩트 다운로드 및 사용

다음 코드 예시는 W&B 서버에 로그하고 저장한 아티팩트를 사용하는 단계를 보여줍니다.
  1. 먼저, **wandb.init()**으로 새 실행 객체를 초기화합니다.
  2. 다음으로, 실행 객체의 wandb.Run.use_artifact() 메서드를 사용해 W&B에 어떤 아티팩트를 사용할지 지정합니다. 이 메서드는 아티팩트 객체를 반환합니다.
  3. 마지막으로, 아티팩트의 wandb.Artifact.download() 메서드를 사용해 아티팩트의 내용을 다운로드합니다.
# W&B 실행을 생성합니다. 여기서는 학습을 추적하는 데 이 실행을 사용할 것이므로
# 'type'에 'training'을 지정합니다.
with wandb.init(project="artifacts-example", job_type="training") as run:

  # W&B에서 아티팩트를 조회하고 이 실행의 입력으로 표시합니다
  artifact = run.use_artifact("bicycle-dataset:latest")

  # 아티팩트의 내용을 다운로드합니다
  artifact_dir = artifact.download()
또는 Public API(wandb.Api)를 사용해 실행과 무관하게 W&B에 이미 저장된 데이터를 내보내거나(또는 업데이트할 수) 있습니다. 자세한 내용은 외부 파일 추적을 참고하세요.