Colab에서 실행해 보기
W&B Artifact time-to-live (TTL) 정책을 사용해서 아티팩트가 W&B에서 언제 삭제될지 일정을 지정할 수 있습니다. 아티팩트를 삭제하면 W&B는 해당 아티팩트를 소프트 삭제 상태로 표시합니다. 즉, 아티팩트는 삭제 대상으로 표시되지만 스토리지에서 파일이 즉시 삭제되지는 않습니다. W&B가 아티팩트를 어떻게 삭제하는지에 대한 자세한 내용은 Delete artifacts 페이지를 참고하십시오.
W&B App에서 Artifacts TTL을 사용해 데이터 보존을 관리하는 방법을 알아보려면 Managing data retention with Artifacts TTL 동영상 튜토리얼을 시청하십시오.
W&B는 Registry에 연결된 아티팩트에 대해 TTL 정책을 설정하는 옵션을 비활성화합니다. 이는 프로덕션 워크플로우에서 사용 중인 연결된 아티팩트가 실수로 만료되지 않도록 하기 위한 것입니다.
Teams 관리자만 팀 설정 을 열람하고 (1) 누가 TTL 정책을 설정하거나 수정할 수 있는지 지정하거나 (2) 팀 기본 TTL을 설정하는 등 팀 수준 TTL 설정에 접근할 수 있습니다.
W&B App UI에서 아티팩트 세부 정보에 TTL 정책을 설정하거나 수정하는 옵션이 보이지 않거나, 프로그래밍 방식으로 TTL을 설정해도 아티팩트의 TTL 속성이 성공적으로 변경되지 않는다면 Teams 관리자가 해당 권한을 부여하지 않은 것입니다.
사용자가 생성한 아티팩트에만 TTL 정책을 적용할 수 있습니다. W&B에서 자동으로 생성된 아티팩트에는 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 권한을 부여할 수 있습니다.
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 정책은 보통 일(day) 단위로 정의합니다.
아티팩트를 생성할 때 TTL 정책을 정의하는 과정은 일반적으로 아티팩트를 생성 하는 방법과 유사합니다. 차이점은 아티팩트의 ttl 속성에 시간 간격(time delta)을 전달한다는 점입니다.
단계는 다음과 같습니다.
아티팩트를 생성 합니다.
파일, 디렉터리, 참조와 같은 콘텐츠를 아티팩트에 추가 합니다.
Python 표준 라이브러리의 일부인 datetime.timedelta 데이터 타입으로 TTL 제한 시간을 정의합니다.
아티팩트를 로그로 기록합니다 .
다음 코드 스니펫은 아티팩트를 생성하고 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 정책 설정
run.log_artifact(artifact)
앞의 코드 스니펫은 아티팩트의 TTL 정책을 30일로 설정합니다. 즉, 30일 후에 W&B는 해당 아티팩트를 삭제합니다.
아티팩트를 생성한 후 TTL 정책 설정 또는 수정하기
이미 존재하는 아티팩트에 대해 TTL 정책을 정의하려면 W&B App UI 또는 W&B Python SDK를 사용합니다.
아티팩트의 TTL을 수정해도, 아티팩트가 만료되는 시간은 여전히 아티팩트의 createdAt 타임스탬프를 기준으로 계산됩니다.
아티팩트를 가져옵니다 .
아티팩트의 ttl 속성에 time delta(시간 간격)를 전달합니다.
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 프로젝트로 이동합니다.
프로젝트 사이드바에서 아티팩트 아이콘을 선택합니다.
아티팩트 목록에서 확장하려는 아티팩트 타입을 선택합니다.
TTL 정책을 편집하려는 아티팩트 버전을 선택합니다.
Version 탭을 클릭합니다.
드롭다운에서 Edit TTL policy 를 선택합니다.
표시되는 모달에서 TTL 정책 드롭다운에서 Custom 을 선택합니다.
TTL duration 필드에서 TTL 정책을 일 단위로 설정합니다.
변경 사항을 저장하려면 Update TTL 버튼을 클릭합니다.
팀의 기본 TTL 정책은 팀 관리자만 설정할 수 있습니다.
팀에 대한 기본 TTL 정책을 설정합니다. 기본 TTL 정책은 생성 일자를 기준으로 모든 기존 아티팩트와 앞으로 생성될 아티팩트에 적용됩니다. 버전 수준 TTL 정책이 이미 설정된 아티팩트는 팀의 기본 TTL 정책의 영향을 받지 않습니다.
팀 프로필 페이지로 이동합니다.
Settings 탭을 선택합니다.
Artifacts time-to-live (TTL) section 으로 이동합니다.
Set team’s default TTL policy 를 클릭합니다.
Duration 필드에서 TTL 정책을 일 단위로 설정합니다.
Review and save settings 를 클릭합니다.
7/ 변경 사항을 확인한 후 Save settings 를 선택합니다.
public API를 사용해 run을 불러오지 않고 아티팩트를 직접 가져온 뒤, TTL 정책을 설정할 수 있습니다. TTL 정책은 일반적으로 일 단위로 정의됩니다.
다음 코드 예제는 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 버튼 옆의 미트볼 UI 아이콘(점 세 개 아이콘)을 클릭합니다.
드롭다운에서 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로 이동합니다.
프로젝트 내에서 프로젝트 사이드바에서 Artifacts 탭을 선택합니다.
컬렉션을 클릭합니다.
컬렉션 보기에서는 선택한 컬렉션에 포함된 모든 아티팩트를 볼 수 있습니다. Time to Live 열에서 해당 아티팩트에 할당된 TTL 정책을 확인할 수 있습니다.