W&B Artifact time-to-live (TTL) 정책을 사용하여 W&B에서 Artifacts 가 삭제되는 시점을 예약하세요. Artifact 를 삭제하면 W&B는 해당 Artifact 를 soft-delete로 표시합니다. 즉, Artifact 가 삭제 대상으로 표시되지만 스토리지에서 파일이 즉시 삭제되지는 않습니다. W&B가 Artifacts 를 삭제하는 방식에 대한 자세한 내용은 Artifacts 삭제 페이지를 참조하세요.
W&B 앱에서 Artifacts TTL로 데이터 보존을 관리하는 방법을 알아보려면 Artifacts TTL로 데이터 보존 관리하기 비디오 튜토리얼을 시청하세요.
W&B는 Registry에 연결된 Artifacts 에 대해 TTL 정책을 설정하는 옵션을 비활성화합니다. 이는 프로덕션 워크플로우에서 사용되는 연결된 Artifacts 가 실수로 만료되지 않도록 보장하기 위함입니다.
- 팀 관리자만이 팀 설정을 확인하고 (1) TTL 정책 설정 또는 편집 권한 허용, (2) 팀 기본 TTL 설정과 같은 팀 레벨의 TTL 설정에 엑세스할 수 있습니다.
- W&B 앱 UI의 Artifact 상세 정보에서 TTL 정책을 설정하거나 편집하는 옵션이 보이지 않거나, 프로그래밍 방식으로 TTL을 설정해도 Artifact 의 TTL 속성이 성공적으로 변경되지 않는다면, 팀 관리자가 해당 권한을 부여하지 않은 것입니다.
자동 생성된 Artifacts
사용자가 생성한 Artifacts 만 TTL 정책을 사용할 수 있습니다. W&B에 의해 자동 생성된 Artifacts 에는 TTL 정책을 설정할 수 없습니다.
다음 Artifact 유형은 자동 생성된 Artifact 임을 나타냅니다:
run_table
code
job
wandb-*로 시작하는 모든 Artifact 유형
W&B 플랫폼 또는 프로그래밍 방식으로 Artifact 의 유형을 확인할 수 있습니다:
import wandb
# 프로젝트 이름으로 run을 초기화합니다
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) 섹션으로 이동합니다.
- TTL permissions 드롭다운에서 TTL 정책을 설정하고 편집할 수 있는 대상을 선택합니다.
- Review and save settings를 클릭합니다.
- 변경 사항을 확인하고 Save settings를 선택합니다.
TTL 정책 생성
Artifact 를 생성할 때 또는 Artifact 가 생성된 후 소급하여 TTL 정책을 설정할 수 있습니다.
아래의 모든 코드조각에서 <>로 감싸진 내용을 사용자 정보로 교체하여 사용하세요.
Artifact 생성 시 TTL 정책 설정
W&B Python SDK를 사용하여 Artifact 를 생성할 때 TTL 정책을 정의합니다. TTL 정책은 일반적으로 일(days) 단위로 정의됩니다.
Artifact 를 생성할 때 TTL 정책을 정의하는 방법은 일반적인 Artifact 생성 방법과 유사합니다. 차이점은 Artifact 의 ttl 속성에 시간 차이(time delta)를 전달한다는 점입니다.
단계는 다음과 같습니다:
- Artifact 를 생성합니다.
- 파일, 디렉토리 또는 참조와 같은 콘텐츠를 Artifact 에 추가합니다.
- Python 표준 라이브러리의 일부인
datetime.timedelta 데이터 유형으로 TTL 시간 제한을 정의합니다.
- Artifact 를 로그합니다.
다음 코드조각은 Artifact 를 생성하고 TTL 정책을 설정하는 방법을 보여줍니다.
import wandb
from datetime import timedelta
# 프로젝트와 엔티티를 설정하여 run을 초기화합니다
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>")
# TTL 정책을 30일로 설정합니다
artifact.ttl = timedelta(days=30)
# 아티팩트를 로그합니다
run.log_artifact(artifact)
위의 코드조각은 Artifact 의 TTL 정책을 30일로 설정합니다. 즉, W&B는 30일 후에 해당 Artifact 를 삭제합니다.
Artifact 생성 후 TTL 정책 설정 또는 편집
W&B 앱 UI 또는 W&B Python SDK를 사용하여 이미 존재하는 Artifact 에 대한 TTL 정책을 정의합니다.
Artifact 의 TTL을 수정하더라도, Artifact 가 만료되는 시간은 여전히 Artifact 의 createdAt 타임스탬프를 기준으로 계산됩니다.
- Artifact 를 가져옵니다.
- Artifact 의
ttl 속성에 시간 차이(time delta)를 전달합니다.
save 메소드로 Artifact 를 업데이트합니다.
다음 코드조각은 Artifact 의 TTL 정책을 설정하는 방법을 보여줍니다:import wandb
from datetime import timedelta
# 기존 아티팩트를 가져옵니다
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
# 2년 후에 삭제되도록 TTL 정책을 설정합니다
artifact.ttl = timedelta(days=365 * 2)
# 변경 사항을 저장합니다
artifact.save()
위의 코드 예시는 TTL 정책을 2년으로 설정합니다.
- W&B 앱 UI에서 W&B 프로젝트로 이동합니다.
- 왼쪽 패널에서 Artifact 아이콘을 선택합니다.
- Artifacts 목록에서 해당 Artifact 유형을 확장합니다.
- TTL 정책을 편집하려는 Artifact 버전을 선택합니다.
- Version 탭을 클릭합니다.
- 드롭다운에서 Edit TTL policy를 선택합니다.
- 나타나는 모달 창의 TTL policy 드롭다운에서 Custom을 선택합니다.
- TTL duration 필드에 일 단위로 TTL 정책을 설정합니다.
- Update TTL 버튼을 선택하여 변경 사항을 저장합니다.
팀 기본 TTL 정책 설정
팀 관리자만이 팀의 기본 TTL 정책을 설정할 수 있습니다.
팀에 대한 기본 TTL 정책을 설정합니다. 기본 TTL 정책은 각각의 생성 날짜를 기준으로 모든 기존 및 향후 Artifacts 에 적용됩니다. 기존에 버전 레벨의 TTL 정책이 설정된 Artifacts 는 팀 기본 TTL의 영향을 받지 않습니다.
- 팀의 프로필 페이지로 이동합니다.
- Settings 탭을 선택합니다.
- Artifacts time-to-live (TTL) 섹션으로 이동합니다.
- Set team’s default TTL policy를 클릭합니다.
- Duration 필드에 일 단위로 TTL 정책을 설정합니다.
- Review and save settings를 클릭합니다.
- 변경 사항을 확인한 후 Save settings를 선택합니다.
Run 외부에서 TTL 정책 설정
공용 API를 사용하여 Run을 가져오지 않고 Artifact 를 검색하고 TTL 정책을 설정합니다. TTL 정책은 일반적으로 일(days) 단위로 정의됩니다.
다음 코드 샘플은 공용 API를 사용하여 Artifact 를 가져오고 TTL 정책을 설정하는 방법을 보여줍니다.
api = wandb.Api()
# 공용 API를 사용하여 아티팩트를 가져옵니다
artifact = api.artifact("entity/project/artifact:alias")
# 1년 후에 삭제되도록 TTL 정책을 설정합니다
artifact.ttl = timedelta(days=365)
# 변경 사항을 저장합니다
artifact.save()
TTL 정책 비활성화
W&B Python SDK 또는 W&B 앱 UI를 사용하여 특정 Artifact 버전의 TTL 정책을 비활성화합니다.
- Artifact 를 가져옵니다.
- Artifact 의
ttl 속성을 None으로 설정합니다.
save 메소드로 Artifact 를 업데이트합니다.
다음 코드조각은 Artifact 의 TTL 정책을 끄는 방법을 보여줍니다:# 기존 아티팩트를 가져옵니다
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
# TTL 정책을 비활성화합니다
artifact.ttl = None
# 변경 사항을 저장합니다
artifact.save()
- W&B 앱 UI에서 W&B 프로젝트로 이동합니다.
- 왼쪽 패널에서 Artifact 아이콘을 선택합니다.
- Artifacts 목록에서 해당 Artifact 유형을 확장합니다.
- TTL 정책을 편집하려는 Artifact 버전을 선택합니다.
- Version 탭을 클릭합니다.
- Link to registry 버튼 옆의 점 세 개(meatball) UI 아이콘을 클릭합니다.
- 드롭다운에서 Edit TTL policy를 선택합니다.
- 나타나는 모달 창의 TTL policy 드롭다운에서 Deactivate를 선택합니다.
- Update TTL 버튼을 선택하여 변경 사항을 저장합니다.
TTL 정책 확인
Python SDK 또는 W&B 앱 UI를 사용하여 Artifacts 의 TTL 정책을 확인합니다.
print 문을 사용하여 Artifact 의 TTL 정책을 확인합니다. 다음 예제는 Artifact 를 검색하고 해당 TTL 정책을 확인하는 방법을 보여줍니다:# 아티팩트를 가져옵니다
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
# TTL 정책을 출력합니다
print(artifact.ttl)
W&B 앱 UI로 Artifact 의 TTL 정책을 확인합니다.
- W&B 앱으로 이동합니다.
- W&B 프로젝트로 이동합니다.
- 프로젝트 내의 왼쪽 사이드바에서 Artifacts 탭을 선택합니다.
- 컬렉션을 클릭합니다.
컬렉션 뷰에서 선택한 컬렉션의 모든 Artifacts 를 볼 수 있습니다. Time to Live 열에서 해당 Artifact 에 할당된 TTL 정책을 확인할 수 있습니다.