외부 파일을 추적하지 않는 아티팩트를 로깅하면 W&B는 해당 아티팩트의 파일을 W&B 서버에 저장합니다. 이는 W&B Python SDK로 아티팩트를 로깅할 때의 기본 동작입니다.외부 파일을 추적하는 아티팩트를 로깅하면 W&B는 객체의 ETag, 크기 같은 객체 메타데이터를 로깅합니다. 버킷에서 객체 버저닝이 활성화되어 있으면 버전 ID도 함께 로깅됩니다.
외부 버킷에서 아티팩트 추적하기
wandb.init()로 run을 초기화합니다.wandb.Artifact()로 아티팩트 객체를 생성합니다.- 아티팩트 객체의
wandb.Artifact.add_reference()방법을 사용해 버킷 경로에 대한 레퍼런스를 지정합니다. run.log_artifact()로 아티팩트의 메타데이터를 기록합니다.
datasets/mnist/ 디렉터리에는 이미지 모음이 들어 있습니다. 이미지가 들어 있는 datasets/mnist/ 디렉터리를 데이터셋 아티팩트로 추적하려면 다음과 같이 지정합니다.
"mnist"와 같이 아티팩트의 이름을 지정합니다.- 아티팩트 객체(
wandb.Artifact(type="dataset"))를 생성할 때type매개변수를"dataset"으로 설정합니다. wandb.Artifact.add_reference()를 호출할 때datasets/mnist/디렉터리 경로를 Amazon S3 URI(s3://my-bucket/datasets/mnist/)로 지정합니다.run.log_artifact()로 아티팩트를 기록합니다.
mnist:latest를 생성합니다:
W&B Artifacts는 CoreWeave Storage 및 MinIO를 포함한 모든 Amazon S3 호환 인터페이스를 지원합니다. 아래에 설명된 스크립트는
AWS_S3_ENDPOINT_URL
환경 변수가 CoreWeave Storage 또는 MinIO 서버를 가리키도록 설정하면 두 제공업체 모두에서 별도 수정 없이 그대로 작동합니다.외부 버킷에서 아티팩트 다운로드
W&B에서는 워크플로의 일부로 파일을 덮어쓰는 경우 저장소 버킷에서 ‘객체 버전 관리’를 활성화할 것을 권장합니다.버전 관리가 활성화되어 있으면 artifact가 로깅된 후 파일이 덮어써졌더라도 artifact를 다운로드할 때 W&B가 항상 올바른 버전의 파일을 조회할 수 있습니다.사용 사례에 따라 객체 버전 관리를 활성화하는 방법은 다음 안내를 조회하세요: AWS, Google Cloud, Azure.
버킷에서 external을 추가하고 다운로드하기
Google Cloud 또는 Azure에서 참조 아티팩트를 추적하는 방법을 처음부터 끝까지 살펴보려면 다음 Reports를 참조하세요:
클라우드 저장소 자격 증명
| Cloud provider | 자격 증명 문서 |
|---|---|
| CoreWeave AI Object Storage | CoreWeave AI Object Storage 문서 |
| AWS | Boto3 문서 |
| Google Cloud | Google Cloud 문서 |
| Azure | Azure 문서 |
AWS_REGION 환경 변수를 설정해야 합니다.
파일 시스템에서 아티팩트 추적하기
wandb.init()로 run을 초기화합니다.wandb.Artifact()로 아티팩트 객체를 생성합니다.- 아티팩트 객체의
wandb.Artifact.add_reference()방법을 사용해 파일 시스템 경로에 대한 레퍼런스를 지정합니다. run.log_artifact()로 아티팩트의 메타데이터를 기록합니다.
< >)로 둘러싼 값은 환경에 맞게 바꾸세요.
file:// 접두사입니다. 두 번째 컴포넌트는 파일 시스템의 루트 /입니다. 나머지 컴포넌트는 추적하려는 디렉터리 또는 파일의 경로입니다.
예를 들어, /mount에 다음과 같은 구조로 파일 시스템이 마운트되어 있다고 가정해 보겠습니다.
datasets/mnist/ 디렉터리를 데이터셋 아티팩트로 추적하려는 경우, 다음 코드 스니펫을 사용할 수 있습니다.
/mount/datasets/mnist/ 아래에 저장된 파일을 가리키는 참조 아티팩트 mnist:latest가 생성됩니다.
마찬가지로, models/cnn/my_model.h5에 저장된 모델을 추적하려면 다음 코드 스니펫을 사용할 수 있습니다:
외부 파일 시스템에서 아티팩트 다운로드하기
wandb.init()으로 run을 초기화합니다.- 다운로드하려는 아티팩트를 지정하려면
wandb.Run.use_artifact()를 사용합니다. - 레퍼런스된 파일 시스템에서 파일을 다운로드하려면 아티팩트의
wandb.Artifact.download()를 call합니다.
/mount/datasets/mnist의 내용을 artifacts/mnist:v0/ 디렉터리로 복사합니다.
Artifact.download()는 아티팩트를 재구성할 수 없으면 오류를 발생시킵니다. 예를 들어 아티팩트에 덮어쓴 파일에 대한 레퍼런스가 포함되어 있으면 더 이상 아티팩트를 재구성할 수 없으므로 Artifact.download()에서 오류가 발생합니다.