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