메인 콘텐츠로 건너뛰기
Try in Colab 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 정책을 설정하거나 편집할 수 있는 사용자를 정의할 수 있습니다.
  1. 팀의 프로필 페이지로 이동합니다.
  2. Settings 탭을 선택합니다.
  3. Artifacts time-to-live (TTL) 섹션으로 이동합니다.
  4. TTL permissions 드롭다운에서 TTL 정책을 설정하고 편집할 수 있는 대상을 선택합니다.
  5. Review and save settings를 클릭합니다.
  6. 변경 사항을 확인하고 Save settings를 선택합니다.
TTL 권한 설정하기

TTL 정책 생성

Artifact 를 생성할 때 또는 Artifact 가 생성된 후 소급하여 TTL 정책을 설정할 수 있습니다. 아래의 모든 코드조각에서 <>로 감싸진 내용을 사용자 정보로 교체하여 사용하세요.

Artifact 생성 시 TTL 정책 설정

W&B Python SDK를 사용하여 Artifact 를 생성할 때 TTL 정책을 정의합니다. TTL 정책은 일반적으로 일(days) 단위로 정의됩니다.
Artifact 를 생성할 때 TTL 정책을 정의하는 방법은 일반적인 Artifact 생성 방법과 유사합니다. 차이점은 Artifact 의 ttl 속성에 시간 차이(time delta)를 전달한다는 점입니다.
단계는 다음과 같습니다:
  1. Artifact 를 생성합니다.
  2. 파일, 디렉토리 또는 참조와 같은 콘텐츠를 Artifact 에 추가합니다.
  3. Python 표준 라이브러리의 일부인 datetime.timedelta 데이터 유형으로 TTL 시간 제한을 정의합니다.
  4. 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 타임스탬프를 기준으로 계산됩니다.
  1. Artifact 를 가져옵니다.
  2. Artifact 의 ttl 속성에 시간 차이(time delta)를 전달합니다.
  3. 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년으로 설정합니다.

팀 기본 TTL 정책 설정

팀 관리자만이 팀의 기본 TTL 정책을 설정할 수 있습니다.
팀에 대한 기본 TTL 정책을 설정합니다. 기본 TTL 정책은 각각의 생성 날짜를 기준으로 모든 기존 및 향후 Artifacts 에 적용됩니다. 기존에 버전 레벨의 TTL 정책이 설정된 Artifacts 는 팀 기본 TTL의 영향을 받지 않습니다.
  1. 팀의 프로필 페이지로 이동합니다.
  2. Settings 탭을 선택합니다.
  3. Artifacts time-to-live (TTL) 섹션으로 이동합니다.
  4. Set team’s default TTL policy를 클릭합니다.
  5. Duration 필드에 일 단위로 TTL 정책을 설정합니다.
  6. Review and save settings를 클릭합니다.
  7. 변경 사항을 확인한 후 Save settings를 선택합니다.
기본 TTL 정책 설정하기

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 정책을 비활성화합니다.
  1. Artifact 를 가져옵니다.
  2. Artifact 의 ttl 속성을 None으로 설정합니다.
  3. save 메소드로 Artifact 를 업데이트합니다.
다음 코드조각은 Artifact 의 TTL 정책을 끄는 방법을 보여줍니다:
# 기존 아티팩트를 가져옵니다
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
# TTL 정책을 비활성화합니다
artifact.ttl = None
# 변경 사항을 저장합니다
artifact.save()

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)