class Artifact
데이터셋 및 모델 버전 관리를 위한 유연하고 가벼운 빌딩 블록입니다.
비어 있는 W&B Artifact를 생성합니다. add로 시작하는 메소드를 사용하여 아티팩트 콘텐츠를 채웁니다. 아티팩트에 원하는 파일이 모두 포함되면 run.log_artifact()를 호출하여 로그를 남길 수 있습니다.
method Artifact.__init__
name(str): 아티팩트의 식별 이름입니다. W&B 앱 UI나 프로그래밍 방식으로 특정 아티팩트를 식별하는 데 사용합니다.use_artifactPublic API를 통해 아티팩트를 대화형으로 참조할 수 있습니다. 이름에는 문자, 숫자, 밑줄, 하이픈, 점을 포함할 수 있으며, 프로젝트 내에서 고유해야 합니다.type(str): 아티팩트의 타입입니다. 아티팩트를 구성하고 구분하는 데 사용합니다. 문자, 숫자, 밑줄, 하이픈, 점을 포함하는 모든 문자열을 사용할 수 있습니다. 일반적인 타입으로는dataset또는model이 있습니다. 아티팩트를 W&B 모델 레지스트리에 연결하려면 타입 문자열에model을 포함하세요. 일부 타입은 내부 용도로 예약되어 있어 사용자가 설정할 수 없습니다. (예:job,wandb-로 시작하는 타입 등)description (str | None) = None: 아티팩트에 대한 설명입니다. 모델 또는 데이터셋 Artifacts의 경우, 표준화된 팀 모델이나 데이터셋 카드를 위한 문서를 추가하세요.Artifact.description속성이나 W&B 앱 UI를 통해 설명을 확인할 수 있습니다. W&B는 앱에서 이 설명을 마크다운으로 렌더링합니다.metadata (dict[str, Any] | None) = None: 아티팩트에 대한 추가 정보입니다. 메타데이터를 키-값 쌍의 사전 형태로 지정하며, 총 100개 이하의 키를 지정할 수 있습니다.incremental: 기존 아티팩트를 수정하려면 대신Artifact.new_draft()메소드를 사용하세요.use_as: 지원 중단됨(Deprecated).
Artifact 오브젝트.
property Artifact.aliases
아티팩트 버전에 할당된 하나 이상의 의미 있는 참조 또는 식별용 “닉네임” 리스트입니다. 에일리어스는 프로그래밍 방식으로 참조할 수 있는 가변 참조입니다. W&B 앱 UI 또는 프로그래밍 방식으로 아티팩트의 에일리어스를 변경할 수 있습니다. 자세한 내용은 새 아티팩트 버전 생성을 참조하세요. Returns:list[str]: aliases 속성 값.
property Artifact.collection
이 아티팩트를 가져온 컬렉션입니다. 컬렉션은 아티팩트 버전들의 정렬된 그룹입니다. 이 아티팩트가 연결된 컬렉션에서 가져온 것이라면 해당 컬렉션을 반환합니다. 그렇지 않으면 아티팩트 버전이 시작된 컬렉션을 반환합니다. 아티팩트가 시작된 컬렉션은 소스 시퀀스(source sequence)라고도 합니다. Returns:ArtifactCollection: collection 속성 값.
property Artifact.commit_hash
이 아티팩트가 커밋될 때 반환된 해시입니다. Returns:str: commit_hash 속성 값.
property Artifact.created_at
아티팩트가 생성된 타임스탬프입니다. Returns:str: created_at 속성 값.
property Artifact.description
아티팩트에 대한 설명입니다. Returns:str | None: description 속성 값.
property Artifact.digest
아티팩트의 논리적 다이제스트입니다. 다이제스트는 아티팩트 콘텐츠의 체크섬입니다. 아티팩트의 다이제스트가 현재latest 버전과 동일한 경우, log_artifact는 아무런 작업도 수행하지 않습니다.
Returns:
str: digest 속성 값.
property Artifact.entity
아티팩트 컬렉션이 속한 엔티티의 이름입니다. 아티팩트가 링크인 경우, 엔티티는 링크된 아티팩트의 엔티티가 됩니다. Returns:str: entity 속성 값.
property Artifact.file_count
파일의 수(참조 포함)입니다. Returns:int: file_count 속성 값.
property Artifact.history_step
이 아티팩트의 소스 run에 대해 히스토리 메트릭이 로그된 가장 가까운 스텝입니다. Examples: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
사용자 정의 아티팩트 메타데이터입니다. 아티팩트와 연결된 구조화된 데이터입니다. Returns:dict: metadata 속성 값.
property Artifact.name
아티팩트 이름과 버전입니다.{collection}:{alias} 형식의 문자열입니다. 아티팩트가 로그/저장되기 전에 가져온 경우 이름에 에일리어스가 포함되지 않습니다. 아티팩트가 링크인 경우 이름은 링크된 아티팩트의 이름이 됩니다.
Returns:
str: name 속성 값.
property Artifact.project
아티팩트 컬렉션이 속한 프로젝트의 이름입니다. 아티팩트가 링크인 경우, 프로젝트는 링크된 아티팩트의 프로젝트가 됩니다. Returns:str: project 속성 값.
property Artifact.qualified_name
아티팩트의 전체 이름(entity/project/name)입니다. 아티팩트가 링크인 경우, qualified name은 링크된 아티팩트 경로의 전체 이름이 됩니다. Returns:str: qualified_name 속성 값.
property Artifact.size
아티팩트의 총 크기(바이트)입니다. 이 아티팩트에서 추적하는 모든 참조가 포함됩니다. Returns:int: size 속성 값.
property Artifact.source_artifact
원래 로그된 아티팩트인 소스 아티팩트를 반환합니다. 이 아티팩트가 소스 아티팩트인 경우(artifact.is_link == False), 자기 자신을 반환합니다.
Returns:
Artifact: source_artifact 속성 값.
property Artifact.source_collection
아티팩트의 소스 컬렉션입니다. 소스 컬렉션은 아티팩트가 처음 로그된 컬렉션입니다. Returns:ArtifactCollection: source_collection 속성 값.
property Artifact.source_entity
소스 아티팩트의 엔티티 이름입니다. Returns:str: source_entity 속성 값.
property Artifact.source_name
소스 아티팩트의 이름과 버전입니다.{source_collection}:{alias} 형식의 문자열입니다. 아티팩트가 저장되기 전에는 버전을 아직 알 수 없으므로 이름만 포함됩니다.
Returns:
str: source_name 속성 값.
property Artifact.source_project
소스 아티팩트의 프로젝트 이름입니다. Returns:str: source_project 속성 값.
property Artifact.source_qualified_name
소스 아티팩트의 source_entity/source_project/source_name입니다. Returns:str: source_qualified_name 속성 값.
property Artifact.source_version
소스 아티팩트의 버전입니다.v{number} 형식의 문자열입니다.
Returns:
str: source_version 속성 값.
property Artifact.state
아티팩트의 상태입니다. “PENDING”, “COMMITTED”, 또는 “DELETED” 중 하나입니다. Returns:str: state 속성 값.
property Artifact.tags
이 아티팩트 버전에 할당된 하나 이상의 태그 리스트입니다. Returns:list[str]: tags 속성 값.
property Artifact.ttl
아티팩트의 TTL(time-to-live) 정책입니다. 아티팩트는 TTL 정책 기간이 지난 직후에 삭제됩니다.None으로 설정하면 TTL 정책이 비활성화되며, 팀 기본 TTL이 있더라도 삭제 예약이 되지 않습니다. 팀 관리자가 기본 TTL을 정의하고 아티팩트에 별도의 정책이 설정되어 있지 않으면 팀 기본값을 상속받습니다.
Raises:
ArtifactNotLoggedError: 아티팩트가 로그되거나 저장되지 않은 경우 상속된 TTL을 가져올 수 없습니다.
timedelta | None: ttl 속성 값.
property Artifact.type
아티팩트의 타입입니다. 일반적인 타입으로는dataset 또는 model이 있습니다.
Returns:
str: type 속성 값.
property Artifact.updated_at
아티팩트가 마지막으로 업데이트된 시간입니다. Returns:str: updated_at 속성 값.
property Artifact.url
아티팩트의 URL을 구성합니다. Returns:str: 아티팩트의 URL.
str: url 속성 값.
property Artifact.use_as
지원 중단됨(Deprecated). Returns:str | None: use_as 속성 값.
property Artifact.version
아티팩트의 버전입니다.v{number} 형식의 문자열입니다. 링크 아티팩트인 경우, 버전은 링크된 컬렉션의 버전이 됩니다.
Returns:
str: version 속성 값.
method Artifact.add
obj를 아티팩트에 추가합니다.
Args:
obj: 추가할 오브젝트입니다. 현재 Bokeh, JoinedTable, PartitionedTable, Table, Classes, ImageMask, BoundingBoxes2D, Audio, Image, Video, Html, Object3D 중 하나를 지원합니다.name: 오브젝트를 추가할 아티팩트 내의 경로입니다.overwrite: True인 경우, 동일한 파일 경로를 가진 기존 오브젝트가 있으면 덮어씁니다.
ArtifactFinalizedError: 현재 아티팩트 버전이 확정(finalized)되었으므로 변경할 수 없습니다. 대신 새 아티팩트 버전을 로그하세요.
method Artifact.add_dir
local_path: 로컬 디렉토리의 경로입니다.name: 아티팩트 내의 하위 디렉토리 이름입니다. 지정한 이름은 아티팩트의type에 따라 중첩되어 W&B 앱 UI에 표시됩니다. 기본값은 아티팩트의 루트입니다.skip_cache:True로 설정하면 업로드하는 동안 파일을 캐시로 복사/이동하지 않습니다.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”이어야 합니다.
method Artifact.add_file
local_path: 추가할 파일의 경로입니다.name: 추가할 파일에 대해 아티팩트 내에서 사용할 경로입니다. 기본값은 파일의 basename입니다.is_tmp: True인 경우 충돌을 피하기 위해 파일 이름이 결정론적으로 변경됩니다.skip_cache:True인 경우 업로드 후 파일을 캐시에 복사하지 않습니다.policy: 기본적으로 “mutable”로 설정됩니다. “mutable”로 설정하면 업로드 중 손상을 방지하기 위해 파일의 임시 복사본을 생성합니다. “immutable”로 설정하면 보호 기능을 비활성화하며 사용자가 파일을 삭제하거나 변경하지 않는다는 전제하에 작동합니다.overwrite:True인 경우 파일이 이미 존재하면 덮어씁니다.
ArtifactFinalizedError: 현재 아티팩트 버전이 확정되었으므로 변경할 수 없습니다. 대신 새 아티팩트 버전을 로그하세요.ValueError: policy는 “mutable” 또는 “immutable”이어야 합니다.
method 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: 현재 아티팩트 버전이 확정되었으므로 변경할 수 없습니다. 대신 새 아티팩트 버전을 로그하세요.
method Artifact.checkout
root 내의 모든 파일을 삭제합니다.
Args:
root: 이 아티팩트의 파일로 교체할 디렉토리입니다.
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
method Artifact.delete
Artifact.delete() 대신 Artifact.unlink()를 사용하세요.
Args:
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: 지정된 경우, 주어진 프리픽스로 시작하는 경로를 가진 파일만 다운로드됩니다. Unix 형식(슬래시)을 사용합니다.multipart:None(기본값)으로 설정하면, 개별 파일 크기가 2GB보다 클 경우 멀티파트 다운로드를 사용하여 병렬로 다운로드합니다.True또는False로 설정하면 파일 크기에 관계없이 병렬 또는 순차적으로 다운로드합니다.
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
method Artifact.file
root로 지정한 디렉토리에 다운로드합니다.
Args:
root: 파일을 저장할 루트 디렉토리입니다. 기본값은./artifacts/self.name/입니다.
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.ValueError: 아티팩트에 파일이 두 개 이상 포함된 경우.
method Artifact.files
names: 나열하려는 아티팩트 루트 기준의 파일명 경로들입니다.per_page: 요청당 반환할 파일의 수입니다.
File 오브젝트들을 포함하는 반복자(iterator).
Raises:
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
method Artifact.finalize
log_artifact를 사용하여 아티팩트를 로그하면 자동으로 확정됩니다.
method Artifact.get
name에 위치한 WBValue 오브젝트를 가져옵니다.
Args:
name: 가져올 아티팩트 상대 이름입니다.
run.log()로 로그를 남길 수 있고 W&B UI에서 시각화할 수 있는 W&B 오브젝트.
Raises:
ArtifactNotLoggedError: 아티팩트가 로그되지 않았거나 run이 오프라인 상태인 경우.
method Artifact.get_added_local_path_name
local_path: 아티팩트 상대 이름으로 변환할 로컬 경로입니다.
method Artifact.get_entry
name: 가져올 아티팩트 상대 이름
W&B 오브젝트.
Raises:
ArtifactNotLoggedError: 아티팩트가 로그되지 않았거나 run이 오프라인 상태인 경우.KeyError: 아티팩트에 주어진 이름을 가진 항목이 없는 경우.
method Artifact.get_path
get_entry(name)을 사용하세요.
method Artifact.is_draft
False, 저장되지 않았으면 True.
method Artifact.json_encode
string 키를 가진 dict.
method Artifact.link
target_path: 컬렉션의 경로입니다. 경로는 “wandb-registry-” 프리픽스와 레지스트리 이름 및 컬렉션 이름인wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}으로 구성됩니다.aliases: 링크된 아티팩트에 하나 이상의 에일리어스를 추가합니다. “latest” 에일리어스는 링크하는 가장 최근 아티팩트에 자동으로 적용됩니다.
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
method Artifact.logged_by
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
method Artifact.new_draft
Artifact 오브젝트.
Raises:
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
method Artifact.new_file
name: 아티팩트에 추가할 새 파일의 이름입니다.mode: 새 파일을 여는 데 사용할 파일 엑세스 모드입니다.encoding: 새 파일을 여는 데 사용되는 인코딩입니다.
ArtifactFinalizedError: 현재 아티팩트 버전이 확정되었으므로 변경할 수 없습니다. 대신 새 아티팩트 버전을 로그하세요.
method Artifact.remove
item: 제거할 항목입니다. 특정 매니페스트 항목이거나 아티팩트 상대 경로의 이름일 수 있습니다. 항목이 디렉토리와 일치하면 해당 디렉토리의 모든 항목이 제거됩니다.
ArtifactFinalizedError: 현재 아티팩트 버전이 확정되었으므로 변경할 수 없습니다. 대신 새 아티팩트 버전을 로그하세요.FileNotFoundError: 아티팩트에서 해당 항목을 찾을 수 없는 경우.
method Artifact.save
project: run이 컨텍스트에 없는 경우 아티팩트에 사용할 프로젝트입니다.settings: 자동 run을 초기화할 때 사용할 설정 오브젝트입니다. 주로 테스트 하네스에서 사용됩니다.
method Artifact.unlink
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.ValueError: 아티팩트가 어떤 컬렉션에도 링크되어 있지 않은 경우.
method Artifact.used_by
Run 오브젝트들의 리스트.
Raises:
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.
method Artifact.verify
root: 확인할 디렉토리입니다. None인 경우 아티팩트는 ’./artifacts/self.name/‘으로 다운로드됩니다.
ArtifactNotLoggedError: 아티팩트가 로그되지 않은 경우.ValueError: 검증에 실패한 경우.
method Artifact.wait
timeout: 대기할 시간(초)입니다.
Artifact 오브젝트.