Artifact를 구성하는 방법
다음 세 단계로 W&B Artifact를 구성합니다.1. wandb.Artifact()
로 아티팩트 Python 오브젝트를 생성합니다.
wandb.Artifact()
클래스를 초기화하여 아티팩트 오브젝트를 생성합니다. 다음 파라미터를 지정합니다.
- 이름: Artifact 이름을 지정합니다. 이름은 고유하고, 설명적이며, 기억하기 쉬워야 합니다. Artifact 이름을 사용하여 W&B App UI에서 Artifact를 식별하고, 해당 Artifact를 사용하려는 경우에도 Artifact 이름을 사용합니다.
- 유형: 유형을 제공합니다. 유형은 간단하고 설명적이어야 하며, 기계 학습 파이프라인의 단일 단계를 나타내야 합니다. 일반적인 Artifact 유형에는
'dataset'
또는'model'
이 있습니다.
제공하는 “이름”과 “유형”은 방향성 비순환 그래프를 만드는 데 사용됩니다. 즉, W&B App에서 Artifact의 계보를 볼 수 있습니다.자세한 내용은 Artifact 그래프 탐색 및 트래버스를 참조하세요.
Artifacts는 types 파라미터에 대해 다른 유형을 지정하더라도 동일한 이름을 가질 수 없습니다. 즉,
dataset
유형의 cats
라는 Artifact와 model
유형의 동일한 이름을 가진 다른 Artifact를 만들 수 없습니다.wandb.Artifact
클래스 정의를 참조하세요.
다음 예제는 데이터셋 Artifact를 만드는 방법을 보여줍니다.
2. Artifact에 파일을 하나 이상 추가합니다.
Artifact 메소드를 사용하여 파일, 디렉토리, 외부 URI 참조 (예: Amazon S3) 등을 추가합니다. 예를 들어, 단일 텍스트 파일을 추가하려면add_file
메소드를 사용합니다.
add_dir
메소드를 사용하여 여러 파일을 추가할 수도 있습니다. 파일을 추가하는 방법에 대한 자세한 내용은 Artifact 업데이트를 참조하세요.
3. Artifact를 W&B 서버에 저장합니다.
마지막으로, Artifact를 W&B 서버에 저장합니다. Artifacts는 Run과 연결되어 있습니다. 따라서 Run 오브젝트의log_artifact()
메소드를 사용하여 Artifact를 저장합니다.
log_artifact
에 대한 호출은 성능이 좋은 업로드를 위해 비동기적으로 수행됩니다. 이로 인해 루프에서 Artifacts를 로깅할 때 예기치 않은 동작이 발생할 수 있습니다. 예를 들어:Artifact에 파일 추가
다음 섹션에서는 다양한 파일 형식과 병렬 Runs에서 Artifacts를 구성하는 방법을 보여줍니다. 다음 예제에서는 여러 파일과 디렉토리 구조가 있는 프로젝트 디렉토리가 있다고 가정합니다.단일 파일 추가
다음 코드 조각은 단일 로컬 파일을 Artifact에 추가하는 방법을 보여줍니다.'file.txt'
라는 파일이 있다고 가정합니다.
name
파라미터에 대해 Artifact 내에서 원하는 경로를 전달합니다.
API 호출 | 결과 Artifact |
---|---|
artifact.add_file('model.h5') | model.h5 |
artifact.add_file('checkpoints/model.h5') | model.h5 |
artifact.add_file('model.h5', name='models/mymodel.h5') | models/mymodel.h5 |
여러 파일 추가
다음 코드 조각은 전체 로컬 디렉토리를 Artifact에 추가하는 방법을 보여줍니다.API 호출 | 결과 Artifact |
---|---|
artifact.add_dir('images') |
|
artifact.add_dir('images', name='images') |
|
artifact.new_file('hello.txt') | hello.txt |
URI 참조 추가
Artifacts는 W&B 라이브러리가 처리 방법을 알고 있는 스키마가 URI에 있는 경우 재현성을 위해 체크섬 및 기타 정보를 추적합니다.add_reference
메소드를 사용하여 외부 URI 참조를 Artifact에 추가합니다. 'uri'
문자열을 자신의 URI로 바꿉니다. 선택적으로 name 파라미터에 대해 Artifact 내에서 원하는 경로를 전달합니다.
http(s)://
: HTTP를 통해 액세스할 수 있는 파일의 경로입니다. Artifact는 HTTP 서버가ETag
및Content-Length
응답 헤더를 지원하는 경우 etag 형식의 체크섬과 크기 메타데이터를 추적합니다.s3://
: S3의 오브젝트 또는 오브젝트 접두사의 경로입니다. Artifact는 참조된 오브젝트에 대해 체크섬 및 버전 관리 정보(버킷에 오브젝트 버전 관리가 활성화된 경우)를 추적합니다. 오브젝트 접두사는 최대 10,000개의 오브젝트까지 접두사 아래의 오브젝트를 포함하도록 확장됩니다.gs://
: GCS의 오브젝트 또는 오브젝트 접두사의 경로입니다. Artifact는 참조된 오브젝트에 대해 체크섬 및 버전 관리 정보(버킷에 오브젝트 버전 관리가 활성화된 경우)를 추적합니다. 오브젝트 접두사는 최대 10,000개의 오브젝트까지 접두사 아래의 오브젝트를 포함하도록 확장됩니다.
API 호출 | 결과 Artifact 콘텐츠 |
---|---|
artifact.add_reference('s3://my-bucket/model.h5') | model.h5 |
artifact.add_reference('s3://my-bucket/checkpoints/model.h5') | model.h5 |
artifact.add_reference('s3://my-bucket/model.h5', name='models/mymodel.h5') | models/mymodel.h5 |
artifact.add_reference('s3://my-bucket/images') |
|
artifact.add_reference('s3://my-bucket/images', name='images') |
|