W&B 아티팩트 TTL(Time-to-Live) 정책을 사용해 W&B에서 아티팩트가 삭제되는 시점을 예약할 수 있습니다. 아티팩트를 삭제하면 W&B는 해당 아티팩트를 soft-delete 로 표시합니다. 즉, 아티팩트는 삭제 대상으로 표시되지만 파일은 저장소에서 즉시 삭제되지 않습니다. W&B에서 아티팩트를 삭제하는 방식에 대한 자세한 내용은 Delete artifacts 페이지를 참조하세요.
W&B App에서 Artifacts TTL을 사용해 데이터 보존을 관리하는 방법을 알아보려면 Managing data retention with Artifacts TTL 비디오 튜토리얼을 시청하세요.
W&B는 Registry에 연결된 아티팩트에 대해서는 TTL 정책 설정 옵션을 비활성화합니다. 이는 프로덕션 워크플로에서 사용되는 연결된 아티팩트가 실수로 만료되지 않도록 하기 위한 조치입니다.
팀 관리자만 team’s settings 을 확인하고, (1) TTL 정책을 설정하거나 편집할 수 있는 사용자를 지정하거나 (2) 팀 기본 TTL을 설정하는 등의 팀 수준 TTL 설정에 액세스할 수 있습니다.
W&B App UI의 아티팩트 세부 정보에서 TTL 정책을 설정하거나 편집하는 옵션이 보이지 않거나, 프로그래밍 방식으로 TTL을 설정해도 아티팩트의 TTL 속성이 변경되지 않는다면, 팀 관리자가 해당 권한을 부여하지 않은 것입니다.
TTL 정책은 사용자가 생성한 artifact에만 사용할 수 있습니다. W&B에서 자동 생성한 Artifact에는 TTL 정책을 설정할 수 없습니다.
다음 Artifact 유형은 자동 생성된 Artifact임을 나타냅니다:
run_table
code
job
wandb-*로 시작하는 모든 Artifact 유형
W&B 플랫폼 에서 또는 프로그래밍 방식으로 Artifact의 유형을 확인할 수 있습니다:
import wandb
with wandb.init( project = "<my-project-name>" ) as run:
artifact = run.use_artifact( artifact_or_name = "<my-artifact-name>" )
print (artifact.type)
<>로 묶인 값을 자신의 값으로 바꾸세요.
TTL 정책을 설정하고 편집할 수 있는 사용자 지정
팀 내에서 누가 TTL 정책을 설정하고 편집할 수 있는지 지정합니다. TTL 권한을 팀 관리자에게만 부여하거나, 팀 관리자와 팀 구성원 모두에게 부여할 수 있습니다.
누가 TTL 정책을 설정하거나 편집할 수 있는지 지정할 수 있는 사용자는 팀 관리자뿐입니다.
팀의 프로필 페이지로 이동합니다.
Settings 탭을 선택합니다.
Artifacts time-to-live (TTL) section 으로 이동합니다.
TTL permissions dropdown 에서 TTL 정책을 설정하고 편집할 사용자를 선택합니다.
Review and save settings 를 클릭합니다.
변경 사항을 확인한 다음 Save settings 를 선택합니다.
아티팩트를 만들 때 TTL 정책을 설정하거나, 아티팩트를 만든 후 나중에 설정할 수 있습니다.
아래의 모든 코드 스니펫에서는 코드 스니펫을 사용하기 위해 <>로 감싼 내용을 사용자 정보로 바꾸세요.
아티팩트를 생성할 때 W&B Python SDK를 사용해 TTL 정책을 정의합니다. TTL 정책은 일반적으로 일 단위로 정의합니다.
아티팩트를 생성할 때 TTL 정책을 정의하는 방식은 일반적으로 아티팩트를 생성하는 방법 과 유사합니다. 다른 점은 아티팩트의 ttl 속성에 time delta를 전달한다는 것입니다.
step은 다음과 같습니다.
아티팩트를 생성합니다 .
파일, 디렉터리 또는 레퍼런스와 같은 콘텐츠를 아티팩트에 추가합니다 .
Python 표준 라이브러리에 포함된 datetime.timedelta 데이터 유형을 사용해 TTL 시간 제한을 정의합니다.
아티팩트를 log합니다 .
다음 코드 스니펫은 아티팩트를 생성하고 TTL 정책을 설정하는 방법을 보여줍니다.
import wandb
from datetime import timedelta
with wandb.init( project = "<my-project-name>" , entity = "<my-entity>" ) as run:
artifact = wandb.Artifact( name = "<artifact-name>" , type = "<type>" )
artifact.add_file( "<my_file>" )
artifact.ttl = timedelta( days = 30 ) # TTL policy 설정
run.log_artifact(artifact)
앞의 코드 스니펫은 아티팩트의 TTL 정책을 30일로 설정합니다. 즉, W&B는 30일이 지나면 아티팩트를 삭제합니다.
아티팩트를 생성한 후 TTL 정책 설정 또는 편집
W&B App UI 또는 W&B Python SDK를 사용해 이미 존재하는 아티팩트의 TTL 정책를 정의합니다.
아티팩트의 TTL을 수정해도 아티팩트가 만료되기까지의 시간은 여전히 아티팩트의 createdAt Timestamp를 기준으로 계산됩니다.
아티팩트를 가져옵니다 .
아티팩트의 ttl 속성에 시간 차이를 전달합니다.
save 방법로 아티팩트를 업데이트합니다.
다음 코드 스니펫은 아티팩트에 TTL 정책를 설정하는 방법을 보여줍니다: import wandb
from datetime import timedelta
artifact = run.use_artifact( "<my-entity/my-project/my-artifact:alias>" )
artifact.ttl = timedelta( days = 365 * 2 ) # 2년 후 삭제
artifact.save()
위 코드 예제는 TTL 정책를 2년으로 설정합니다.
W&B App UI에서 W&B 프로젝트로 이동합니다.
project sidebar에서 아티팩트 아이콘을 선택합니다.
아티팩트 목록에서 해당 아티팩트 유형을 펼칩니다.
TTL 정책를 편집할 아티팩트 버전을 선택합니다.
Version 탭을 클릭합니다.
드롭다운에서 Edit TTL policy 를 선택합니다.
표시되는 모달에서 TTL 정책 드롭다운의 Custom 을 선택합니다.
TTL duration 필드에서 TTL 정책를 일(day) 단위로 설정합니다.
변경 사항을 저장하려면 Update TTL 버튼을 선택합니다.
팀 관리자만 팀의 기본 TTL 정책을 설정할 수 있습니다.
팀의 기본 TTL 정책을 설정하세요. 기본 TTL 정책은 각 artifact의 생성일을 기준으로 기존 및 이후에 생성되는 모든 artifact에 적용됩니다. 기존에 버전 수준 TTL 정책이 설정된 Artifacts는 팀의 기본 TTL 정책의 영향을 받지 않습니다.
팀의 프로필 페이지로 이동합니다.
Settings 탭을 선택합니다.
Artifacts time-to-live (TTL) section 으로 이동합니다.
Set team’s default TTL policy 를 클릭합니다.
Duration 필드에서 TTL 정책을 일(day) 단위로 설정합니다.
Review and save settings 를 클릭합니다.
7/ 변경 사항을 확인한 다음 Save settings 를 선택합니다.
Public API를 사용해 run을 가져오지 않고 아티팩트를 조회한 후 TTL 정책을 설정합니다. TTL 정책은 일반적으로 일(day) 단위로 정의됩니다.
다음 코드 예제에서는 Public API를 사용해 아티팩트를 가져오고 TTL 정책을 설정하는 방법을 보여줍니다.
api = wandb.Api()
artifact = api.artifact( "entity/project/artifact:alias" )
artifact.ttl = timedelta( days = 365 ) # 1년 후 삭제
artifact.save()
특정 아티팩트 버전에 설정된 TTL 정책을 비활성화하려면 W&B Python SDK 또는 W&B App UI를 사용하세요.
아티팩트 가져오기 .
아티팩트의 ttl 속성을 None으로 설정합니다.
save 방법로 아티팩트를 업데이트합니다.
다음 코드 스니펫은 아티팩트의 TTL 정책을 비활성화하는 방법을 보여줍니다. artifact = run.use_artifact( "<my-entity/my-project/my-artifact:alias>" )
artifact.ttl = None
artifact.save()
W&B App UI에서 W&B 프로젝트로 이동합니다.
프로젝트 사이드바에서 아티팩트 아이콘을 선택합니다.
아티팩트 목록에서 원하는 아티팩트 유형을 펼칩니다.
TTL 정책을 편집할 아티팩트 버전을 선택합니다.
Version 탭을 클릭합니다.
Link to registry 버튼 옆의 액션 ( ) 메뉴를 클릭합니다.
드롭다운에서 Edit TTL policy 를 선택합니다.
표시되는 모달에서 TTL 정책 드롭다운의 Deactivate 를 선택합니다.
변경 사항을 저장하려면 Update TTL 버튼을 선택합니다.
Python SDK 또는 W&B App UI에서 아티팩트의 TTL 정책을 확인할 수 있습니다.
print 문을 사용해 아티팩트의 TTL 정책을 확인합니다. 다음 예제는 아티팩트를 조회하고 TTL 정책을 확인하는 방법을 보여줍니다. artifact = run.use_artifact( "<my-entity/my-project/my-artifact:alias>" )
print (artifact.ttl)
W&B App UI에서 아티팩트의 TTL 정책을 확인합니다.
W&B App 으로 이동합니다.
W&B 프로젝트로 이동합니다.
프로젝트에서 project sidebar의 Artifacts 탭을 선택합니다.
컬렉션을 클릭합니다.
컬렉션 뷰에서는 선택한 컬렉션의 모든 아티팩트를 볼 수 있습니다. Time to Live column에서 해당 아티팩트에 할당된 TTL 정책을 확인할 수 있습니다.