class Artifact
데이터셋과 모델 버저닝을 위한 유연하고 가벼운 구성 요소입니다.
빈 W&B Artifact를 생성합니다. add로 시작하는 메서드를 사용해 Artifact의 내용을 채우세요. Artifact에 원하는 파일을 모두 추가한 후 run.log_artifact()를 호출하여 로깅할 수 있습니다.
method Artifact.__init__
name(str): 아티팩트의 사람이 읽을 수 있는 이름입니다. 이 이름을 사용해 W&B App UI 또는 프로그램 코드에서 특정 아티팩트를 식별합니다.use_artifactPublic API로 아티팩트를 대화형으로 참조할 수 있습니다. 이름에는 문자, 숫자, 밑줄, 하이픈, 마침표를 포함할 수 있습니다. 이름은 프로젝트 전체에서 고유해야 합니다.type(str): 아티팩트의 타입입니다. 아티팩트의 타입을 사용해 아티팩트를 구성하고 구분할 수 있습니다. 문자, 숫자, 밑줄, 하이픈, 마침표를 포함하는 임의의 문자열을 사용할 수 있습니다. 일반적인 타입으로는dataset또는model이 있습니다. 아티팩트를 W&B Model Registry에 연결하려면 타입 문자열에model을 포함하세요. 일부 타입은 내부용으로 예약되어 있으며 사용자가 설정할 수 없습니다. 예로는job및wandb-로 시작하는 타입이 있습니다.description (str | None) = None: 아티팩트에 대한 설명입니다. Model 또는 Dataset Artifacts의 경우, 팀에서 표준화한 모델 또는 데이터셋 카드에 대한 문서를 추가하세요. 아티팩트의 설명은Artifact.description속성을 통해 프로그램적으로 확인하거나 W&B App UI에서 확인할 수 있습니다. W&B는 설명을 W&B App에서 마크다운으로 렌더링합니다.metadata (dict[str, Any] | None) = None: 아티팩트에 대한 추가 정보입니다. 메타데이터는 키-값 쌍의 사전으로 지정합니다. 키는 최대 100개까지만 지정할 수 있습니다.incremental: 기존 아티팩트를 수정하려면 대신Artifact.new_draft()메서드를 사용하세요.use_as: 사용이 중단되었습니다.
Artifact 객체.
property Artifact.aliases
하나 이상의 의미를 잘 드러내는 참조나 아티팩트 버전에 할당된 식별용 “별칭” 목록입니다. 별칭은 프로그래밍 방식으로 참조할 수 있는 변경 가능한 참조입니다. W&B App UI 또는 프로그래밍 방식으로 아티팩트의 별칭을 변경할 수 있습니다. 자세한 내용은 Create new artifact versions를 참조하세요. Returns:list[str]: aliases 속성 값.
property Artifact.collection
이 아티팩트를 가져오는 컬렉션입니다. 컬렉션은 아티팩트 버전들의 순서가 있는 그룹입니다. 이 아티팩트가 연결된 컬렉션에서 가져온 경우에는 해당 컬렉션을 반환합니다. 그렇지 않으면 아티팩트 버전이 처음 생성된 컬렉션을 반환합니다. 아티팩트가 생성된 컬렉션을 소스 시퀀스라고 합니다. 반환값:ArtifactCollection: collection 프로퍼티 값.
property Artifact.commit_hash
이 아티팩트가 커밋되었을 때의 해시입니다. 반환값:str: commit_hash 프로퍼티의 값.
property Artifact.created_at
아티팩트가 생성된 타임스탬프입니다. 반환값:str: created_at 속성 값입니다.
property Artifact.description
아티팩트에 대한 설명입니다. 반환값:str | None: description 속성 값입니다.
property Artifact.digest
아티팩트의 논리적 다이제스트입니다. 다이제스트는 아티팩트 내용의 체크섬입니다. 어떤 아티팩트의 다이제스트가 현재latest 버전의 것과 동일하다면, log_artifact 호출은 아무 동작도 하지 않습니다.
반환값:
str: 다이제스트 속성 값.
property Artifact.entity
아티팩트 컬렉션이 속한 entity의 이름입니다. 아티팩트가 링크인 경우, entity는 링크된 아티팩트의 entity입니다. Returns:str: entity 속성 값.
property Artifact.file_count
파일(참조 포함)의 개수입니다. 반환값:int: file_count 속성 값입니다.
property Artifact.history_step
이 아티팩트의 소스 run에서 히스토리 메트릭이 기록된 step 중 가장 최근 step입니다. 예시:int | None:history_step속성 값.
property Artifact.id
아티팩트의 ID입니다. Returns:str | None: id 속성 값입니다.
property Artifact.is_link
아티팩트가 링크 아티팩트인지 여부를 나타내는 불리언 플래그입니다. True: 이 아티팩트는 어떤 소스 아티팩트를 가리키는 링크 아티팩트입니다. False: 이 아티팩트는 소스 아티팩트 자체입니다. Returns:bool: is_link 프로퍼티 값입니다.
property Artifact.linked_artifacts
소스 아티팩트에 연결된 모든 아티팩트의 목록을 반환합니다. 이 아티팩트가 링크 아티팩트(artifact.is_link == True)인 경우 빈 목록을 반환합니다.
최대 500개의 결과로 제한됩니다.
Returns:
list[Artifact]:linked_artifacts속성 값.
property Artifact.manifest
아티팩트의 매니페스트입니다. 매니페스트에는 아티팩트에 포함된 모든 항목이 나열되며, 아티팩트가 로그로 기록된 이후에는 변경할 수 없습니다. Returns:ArtifactManifest: manifest 속성 값입니다.
property Artifact.metadata
사용자가 정의한 아티팩트 메타데이터입니다. 아티팩트와 연관된 구조화된 데이터입니다. 반환 값:dict: metadata 프로퍼티 값.
property Artifact.name
아티팩트의 이름과 버전입니다.{collection}:{alias} 형식의 문자열입니다. 아티팩트가 기록되거나 저장되기 전에 가져오면 이름에는 alias가 포함되지 않습니다. 아티팩트가 링크인 경우, 이름은 링크된 아티팩트의 이름이 됩니다.
Returns:
str:name속성 값입니다.
property Artifact.project
아티팩트 컬렉션이 속한 프로젝트의 이름입니다. 아티팩트가 링크인 경우 이 프로젝트는 연결된 아티팩트의 프로젝트입니다. Returns:str: 프로젝트 프로퍼티 값입니다.
property Artifact.qualified_name
아티팩트의 엔티티/프로젝트/이름으로 구성된 정규화된 이름입니다. 아티팩트가 링크인 경우, qualified_name은 링크된 아티팩트 경로의 qualified_name과 같습니다. 반환값:str: qualified_name 프로퍼티 값.
property Artifact.size
아티팩트의 전체 크기(바이트 단위)입니다. 이 아티팩트가 추적하는 모든 참조를 포함합니다. 반환값:int:size프로퍼티 값.
property Artifact.source_artifact
원본으로 기록된 아티팩트(source artifact)를 반환합니다. 이 아티팩트가 소스 아티팩트인 경우(artifact.is_link == False), 자기 자신을 반환합니다.
반환값:
Artifact: source_artifact 프로퍼티의 값.
property Artifact.source_collection
아티팩트의 소스 컬렉션입니다. 소스 컬렉션은 아티팩트를 로깅한 컬렉션입니다. Returns:ArtifactCollection: source_collection 프로퍼티의 값입니다.
property Artifact.source_entity
소스 아티팩트가 속한 entity의 이름입니다. 반환값:str: source_entity 프로퍼티 값입니다.
property Artifact.source_name
소스 아티팩트의 이름과 버전입니다.{source_collection}:{alias} 형식의 문자열입니다. 아티팩트가 저장되기 전에는 버전을 아직 알 수 없으므로 이름만 포함합니다.
반환값:
str:source_name프로퍼티 값.
property Artifact.source_project
소스 아티팩트가 속한 프로젝트의 이름입니다. Returns:str: source_project 프로퍼티의 값입니다.
property Artifact.source_qualified_name
원본 아티팩트의 source_entity/source_project/source_name을 나타냅니다. 반환값:str: source_qualified_name 속성 값입니다.
property Artifact.source_version
소스 아티팩트의 버전입니다. 형식이v{number}인 문자열입니다.
반환값:
str:source_version프로퍼티 값입니다.
property Artifact.state
아티팩트의 상태입니다. 다음 값 중 하나입니다: “PENDING”, “COMMITTED”, 또는 “DELETED”. 반환값:str: state 프로퍼티의 값입니다.
property Artifact.tags
이 아티팩트 버전에 할당된 하나 이상의 태그 목록입니다. 반환값:list[str]: tags 프로퍼티의 값입니다.
property Artifact.ttl
아티팩트의 time-to-live (TTL) 정책입니다. TTL 정책에서 지정한 기간이 지나면 아티팩트는 곧 삭제됩니다.None으로 설정하면 TTL 정책이 비활성화되며, 팀 기본 TTL이 있더라도 삭제 대상으로 예약되지 않습니다. 팀 관리자가 기본 TTL을 정의했고 아티팩트에 사용자 지정 정책이 설정되어 있지 않은 경우, 아티팩트는 팀 기본 TTL 정책을 상속합니다.
발생 가능한 예외:
ArtifactNotLoggedError: 아티팩트가 로그되거나 저장되지 않은 경우 상속된 TTL을 가져올 수 없습니다.
timedelta | None: ttl 속성 값입니다.
property Artifact.type
아티팩트의 타입입니다. 일반적인 타입으로는dataset 또는 model이 있습니다.
반환값:
str: type 속성 값.
property Artifact.updated_at
아티팩트가 마지막으로 업데이트된 시간입니다. 반환값:str: updated_at 속성 값입니다.
property Artifact.url
아티팩트의 URL을 구성합니다. 반환값:str: 아티팩트의 URL입니다.
str: URL 속성 값입니다.
property Artifact.use_as
사용 중단됨. 반환값:str | None: use_as 프로퍼티 값.
property Artifact.version
아티팩트의 버전입니다.v{number} 형식의 문자열입니다. 링크 아티팩트인 경우, 버전은 연결된 컬렉션의 버전을 따릅니다.
반환값:
str: version 프로퍼티 값입니다.
메서드 Artifact.add
obj를 추가합니다.
Args:
obj: 추가할 객체입니다. 현재 Bokeh, JoinedTable, PartitionedTable, Table, Classes, ImageMask, BoundingBoxes2D, Audio, Image, Video, Html, Object3D 중 하나를 지원합니다.name: 객체를 추가할 아티팩트 내부의 경로입니다.overwrite: True이면, 적용 가능한 경우 동일한 파일 경로를 가진 기존 객체를 덮어씁니다.
ArtifactFinalizedError: 현재 아티팩트 버전은 이미 최종 확정된 상태이므로 변경할 수 없습니다. 대신 새 아티팩트 버전을 로그하세요.
메서드 Artifact.add_dir
local_path: 로컬 디렉터리의 경로입니다.name: 아티팩트 내 하위 디렉터리 이름입니다. 지정한 이름은 W&B App UI에서 아티팩트의type별로 중첩되어 표시됩니다. 기본값은 아티팩트의 루트입니다.skip_cache:True로 설정하면 업로드하는 동안 W&B가 파일을 캐시로 복사/이동하지 않습니다.policy: 기본값은 “mutable”입니다.- mutable: 업로드 중 손상을 방지하기 위해 파일의 임시 복사본을 생성합니다.
- immutable: 보호를 비활성화하고, 사용자가 파일을 삭제하거나 변경하지 않는다고 가정합니다.
merge:False(기본값)일 경우, 이전add_dir호출에서 이미 추가된 파일의 내용이 변경되었다면ValueError를 발생시킵니다.True이면 변경된 내용으로 기존 파일을 덮어씁니다. 항상 새 파일은 추가하며, 파일을 제거하지는 않습니다. 전체 디렉터리를 교체하려면add_dir(local_path, name=my_prefix)를 사용해 디렉터리를 추가할 때 이름을 지정하고,remove(my_prefix)를 호출해 해당 디렉터리를 제거한 후 다시 추가하십시오.
ArtifactFinalizedError: 현재 아티팩트 버전이 이미 최종 확정되었기 때문에 변경할 수 없습니다. 대신 새로운 아티팩트 버전을 기록하십시오.ValueError:policy는 “mutable” 또는 “immutable”이어야 합니다.
메서드 Artifact.add_file
local_path: 추가할 파일의 경로입니다.name: 추가할 파일에 대해 아티팩트 내에서 사용할 경로입니다. 기본값은 파일의 기본 파일명(basename)입니다.is_tmp:True인 경우, 충돌을 피하기 위해 파일 이름을 결정론적인 규칙에 따라 변경합니다.skip_cache:True이면, 업로드 후 파일을 캐시에 복사하지 않습니다.policy: 기본값은 “mutable”입니다. “mutable”로 설정하면 업로드 중 손상을 방지하기 위해 파일의 임시 복사본을 만듭니다. “immutable”로 설정하면 보호 기능을 비활성화하고, 사용자가 파일을 삭제하거나 변경하지 않는다는 가정에 의존합니다.overwrite:True이면, 파일이 이미 존재하는 경우 덮어씁니다.
ArtifactFinalizedError: 현재 아티팩트 버전이 이미 finalized 상태이므로 변경할 수 없습니다. 대신 새로운 아티팩트 버전을 기록해야 합니다.ValueError: policy는 “mutable” 또는 “immutable”이어야 합니다.
메서드 Artifact.add_reference
- http(s): 파일의 크기와 다이제스트는 서버에서 반환하는
Content-Length및ETag응답 헤더로부터 유추합니다. - s3: 체크섬과 크기는 오브젝트 메타데이터에서 가져옵니다. 버킷 버저닝이 활성화된 경우, 버전 ID도 함께 추적합니다.
- gs: 체크섬과 크기는 오브젝트 메타데이터에서 가져옵니다. 버킷 버저닝이 활성화된 경우, 버전 ID도 함께 추적합니다.
- https, 도메인이
*.blob.core.windows.net와 일치하는 경우 - Azure: 체크섬과 크기는 blob 메타데이터에서 가져옵니다. 스토리지 계정 버저닝이 활성화된 경우, 버전 ID도 함께 추적합니다.
- file: 체크섬과 크기는 파일 시스템에서 가져옵니다. 이 스킴은 NFS 공유나 기타 외부로 마운트된 볼륨에, 업로드까지는 필요 없지만 추적하고자 하는 파일이 있는 경우에 유용합니다.
uri: 추가할 참조의 URI 경로입니다. URI 경로는 다른 아티팩트의 엔트리에 대한 참조를 저장하기 위해Artifact.get_entry가 반환한 오브젝트일 수 있습니다.name: 이 참조의 콘텐츠를 아티팩트 내에서 배치할 경로입니다.checksum: 참조 URI에 위치한 리소스에 대해 체크섬을 수행할지 여부입니다. 체크섬을 활성화하면 자동 무결성 검증을 할 수 있으므로 강력히 권장합니다. 체크섬을 비활성화하면 아티팩트 생성 속도는 빨라지지만, 참조 디렉터리를 순회하지 않으므로 디렉터리 내 오브젝트는 아티팩트에 저장되지 않습니다. 참조 오브젝트를 추가할 때는checksum=False로 설정할 것을 권장하며, 이 경우 참조 URI가 변경될 때에만 새 버전이 생성됩니다.max_objects: 디렉터리나 버킷 스토어 프리픽스를 가리키는 참조를 추가할 때 고려할 최대 오브젝트 수입니다. 기본적으로 Amazon S3, GCS, Azure, 로컬 파일에 대해 허용되는 오브젝트 최대 수는 10,000,000개입니다. 다른 URI 스킴에는 최대값이 없습니다.
ArtifactFinalizedError: 현재 아티팩트 버전이 이미 확정(finalized)되었기 때문에 변경할 수 없습니다. 대신 새로운 아티팩트 버전을 로그하세요.
메서드 Artifact.checkout
root 내의 모든 파일은 삭제됩니다.
인자:
root: 이 아티팩트의 파일로 교체할 디렉터리입니다.
ArtifactNotLoggedError: 아티팩트가 로깅되지 않은 경우 발생합니다.
메서드 Artifact.delete
Artifact.delete() 대신 Artifact.unlink()를 사용하십시오.
인자:
delete_aliases:True이면 아티팩트와 연결된 모든 별칭을 삭제합니다.False이면 아티팩트에 기존 별칭이 있을 경우 예외를 발생시킵니다. 이 파라미터는 아티팩트가 연결된 컬렉션에서 가져온 경우에는 무시됩니다.
ArtifactNotLoggedError: 아티팩트가 로깅되지 않은 경우.
method Artifact.download
root 내에 있는 기존 파일은 변경되지 않습니다. root의 내용이 아티팩트와 정확히 일치하도록 하려면 download를 호출하기 전에 root를 명시적으로 삭제하십시오.
인수(Args):
root: W&B가 아티팩트의 파일을 저장하는 디렉터리입니다.allow_missing_references:True로 설정하면, 잘못된 참조 경로는 참조된 파일을 다운로드하는 동안 무시됩니다.skip_cache:True로 설정하면, 아티팩트 캐시를 건너뛰고 다운로드 시 W&B가 모든 파일을 기본 루트 또는 지정된 다운로드 디렉터리에 직접 다운로드합니다.path_prefix: 지정된 경우, 주어진 접두사로 시작하는 경로를 가진 파일만 다운로드됩니다. 유닉스 형식(슬래시 방향:/)을 사용합니다.multipart:None(기본값)으로 설정하면, 개별 파일 크기가 2GB보다 큰 경우 멀티파트 다운로드를 사용하여 병렬로 아티팩트를 다운로드합니다.True또는False로 설정하면, 파일 크기와 관계없이 각각 병렬 또는 순차적으로 아티팩트를 다운로드합니다.
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
method Artifact.file
root로 지정한 디렉터리에 단일 파일 아티팩트를 다운로드합니다.
Args:
root: 파일을 저장할 루트 디렉터리입니다. 기본값은./artifacts/self.name/입니다.
ArtifactNotLoggedError: 아티팩트가 로깅되지 않은 경우.ValueError: 아티팩트에 둘 이상의 파일이 포함된 경우.
method Artifact.files
names: 나열하려는 파일의, 아티팩트 루트 기준 상대 경로.per_page: 요청당 반환할 파일 개수.
File 객체를 포함하는 이터레이터를 반환합니다.
Raises:
ArtifactNotLoggedError: 아티팩트가 로그되지 않았을 경우 발생합니다.
메서드 Artifact.finalize
log_artifact로 로깅할 때 자동으로 최종 확정됩니다.
메서드 Artifact.get
name에 위치한 WBValue 객체를 가져옵니다.
Args:
name: 가져올 아티팩트 상대 경로 이름.
run.log()으로 로깅하고 W&B UI에서 시각화할 수 있는 W&B 객체.
Raises:
ArtifactNotLoggedError: 아티팩트가 로깅되지 않았거나 run이 오프라인인 경우.
메서드 Artifact.get_added_local_path_name
local_path: 아티팩트 상대 이름으로 변환할 로컬 경로.
메서드 Artifact.get_entry
name: 가져올 아티팩트 내 엔트리의 상대 이름
W&B 객체.
예외(Raises):
ArtifactNotLoggedError: 아티팩트가 로깅되지 않았거나 run 이 오프라인인 경우.KeyError: 아티팩트에 지정된 이름의 엔트리가 없는 경우.
메서드 Artifact.get_path
get_entry(name)을 사용하세요.
method Artifact.is_draft
False, 아티팩트가 저장되지 않은 경우 True.
메서드 Artifact.json_encode
string 키를 가지며 아티팩트의 속성을 나타내는 dict입니다.
메서드 Artifact.link
target_path: 컬렉션의 경로입니다. 경로는 접두사 “wandb-registry-”에 레지스트리 이름과 컬렉션 이름을 이어 붙인wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}형식입니다.aliases: 연결된 아티팩트에 하나 이상의 별칭을 추가합니다. 가장 최근에 연결한 아티팩트에는 자동으로 “latest” 별칭이 적용됩니다.
ArtifactNotLoggedError: 아티팩트가 로깅되지 않은 경우 발생합니다.
method Artifact.logged_by
ArtifactNotLoggedError: 아티팩트가 로깅되지 않은 경우.
메서드 Artifact.new_draft
Artifact 객체.
Raises:
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
메서드 Artifact.new_file
name: 아티팩트에 추가할 새 파일의 이름입니다.mode: 새 파일을 열 때 사용할 파일 접근 모드입니다.encoding: 새 파일을 열 때 사용할 인코딩입니다.
ArtifactFinalizedError: 현재 아티팩트 버전이 final(최종 확정) 상태이므로 변경할 수 없습니다. 대신 새로운 아티팩트 버전을 로그하세요.
메서드 Artifact.remove
item: 제거할 항목입니다. 특정 매니페스트 항목이거나 아티팩트 상대 경로의 이름일 수 있습니다. 항목이 디렉터리에 해당하면 해당 디렉터리의 모든 항목이 제거됩니다.
ArtifactFinalizedError: 현재 아티팩트 버전이 최종 확정된 상태이므로 변경할 수 없습니다. 대신 새로운 아티팩트 버전을 로그하십시오.FileNotFoundError: 항목을 아티팩트에서 찾을 수 없을 때 발생합니다.
메서드 Artifact.save
project: run이 아직 컨텍스트에 없을 때 아티팩트에 사용할 프로젝트.settings: 자동 run을 초기화할 때 사용할 settings 객체. 주로 테스트 하네스에서 사용됩니다.
메서드 Artifact.unlink
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.ValueError: 아티팩트가 어떤 컬렉션에도 연결되어 있지 않은 경우.
메서드 Artifact.used_by
Run 객체 리스트.
예외:
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
메서드 Artifact.verify
root: 검증할 디렉터리입니다. None인 경우 아티팩트를 ’./artifacts/self.name/’ 경로로 다운로드합니다.
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.ValueError: 검증에 실패한 경우.
메서드 Artifact.wait
timeout: 대기할 시간(초 단위)입니다.
Artifact 객체를 반환합니다.