메인 콘텐츠로 건너뛰기
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 속성이 변경되지 않는다면, 팀 관리자가 해당 권한을 부여하지 않은 것입니다.

자동 생성된 Artifacts

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 정책을 설정하거나 편집할 수 있는지 지정할 수 있는 사용자는 팀 관리자뿐입니다.
  1. 팀의 프로필 페이지로 이동합니다.
  2. Settings 탭을 선택합니다.
  3. Artifacts time-to-live (TTL) section으로 이동합니다.
  4. TTL permissions dropdown에서 TTL 정책을 설정하고 편집할 사용자를 선택합니다.
  5. Review and save settings를 클릭합니다.
  6. 변경 사항을 확인한 다음 Save settings를 선택합니다.
TTL 권한 설정

TTL 정책 만들기

아티팩트를 만들 때 TTL 정책을 설정하거나, 아티팩트를 만든 후 나중에 설정할 수 있습니다. 아래의 모든 코드 스니펫에서는 코드 스니펫을 사용하기 위해 <>로 감싼 내용을 사용자 정보로 바꾸세요.

아티팩트를 생성할 때 TTL 정책 설정

아티팩트를 생성할 때 W&B Python SDK를 사용해 TTL 정책을 정의합니다. TTL 정책은 일반적으로 일 단위로 정의합니다.
아티팩트를 생성할 때 TTL 정책을 정의하는 방식은 일반적으로 아티팩트를 생성하는 방법과 유사합니다. 다른 점은 아티팩트의 ttl 속성에 time delta를 전달한다는 것입니다.
step은 다음과 같습니다.
  1. 아티팩트를 생성합니다.
  2. 파일, 디렉터리 또는 레퍼런스와 같은 콘텐츠를 아티팩트에 추가합니다.
  3. Python 표준 라이브러리에 포함된 datetime.timedelta 데이터 유형을 사용해 TTL 시간 제한을 정의합니다.
  4. 아티팩트를 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를 기준으로 계산됩니다.
  1. 아티팩트를 가져옵니다.
  2. 아티팩트의 ttl 속성에 시간 차이를 전달합니다.
  3. 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년으로 설정합니다.

팀의 기본 TTL 정책 설정

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

run 외부에서 TTL 정책 설정

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 정책 비활성화

특정 아티팩트 버전에 설정된 TTL 정책을 비활성화하려면 W&B Python SDK 또는 W&B App UI를 사용하세요.
  1. 아티팩트 가져오기.
  2. 아티팩트의 ttl 속성을 None으로 설정합니다.
  3. save 방법로 아티팩트를 업데이트합니다.
다음 코드 스니펫은 아티팩트의 TTL 정책을 비활성화하는 방법을 보여줍니다.
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
artifact.ttl = None
artifact.save()

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)