메인 콘텐츠로 건너뛰기
Colab에서 실행해 보기 W&B 아티팩트 time-to-live(TTL) 정책을 사용해 아티팩트를 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 정책을 설정하는 옵션을 비활성화합니다. 이는 프로덕션 워크플로에서 사용 중인 연결된 아티팩트가 실수로 만료되지 않도록 하기 위함입니다.
  • 팀 관리자만 팀 설정을 볼 수 있으며, (1) 누가 TTL 정책을 설정하거나 수정할 수 있는지 지정하거나 (2) 팀 기본 TTL을 설정하는 등 팀 수준 TTL 설정에 접근할 수 있습니다.
  • W&B App UI에서 아티팩트의 세부 정보에 TTL 정책을 설정하거나 수정하는 옵션이 보이지 않거나, 프로그래매틱하게 TTL을 설정해도 아티팩트의 TTL 속성이 성공적으로 변경되지 않는 경우, 팀 관리자가 해당 권한을 부여하지 않은 것입니다.

자동 생성된 아티팩트

TTL 정책은 사용자가 생성한 아티팩트에만 사용할 수 있습니다. W&B가 자동으로 생성한 아티팩트에는 TTL 정책을 설정할 수 없습니다. 다음 아티팩트 유형은 자동 생성된 아티팩트를 나타냅니다:
  • run_table
  • code
  • job
  • wandb-* 로 시작하는 모든 아티팩트 유형
아티팩트의 유형은 W&B 플랫폼에서 확인하거나, 프로그래밍 방식으로 확인할 수 있습니다:
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를 선택합니다.
Setting TTL permissions

TTL 정책 생성

아티팩트에 대한 TTL 정책은 아티팩트를 생성할 때 설정하거나, 생성이 완료된 후에 사후로 설정할 수 있습니다. 아래 모든 코드 스니펫에서 <>로 감싸진 내용을 사용자 환경에 맞는 값으로 교체한 뒤 사용하십시오.

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

아티팩트를 생성할 때 W&B Python SDK를 사용해 TTL 정책을 정의할 수 있습니다. TTL 정책은 일반적으로 일 단위로 설정합니다.
아티팩트를 생성할 때 TTL 정책을 정의하는 과정은 평소에 아티팩트를 생성하는 방법과 거의 동일합니다. 차이점은 아티팩트의 ttl 속성에 시간 간격(time delta)을 전달해야 한다는 점입니다.
단계는 다음과 같습니다.
  1. 아티팩트를 생성합니다.
  2. 파일, 디렉터리, 참조와 같은 콘텐츠를 아티팩트에 추가합니다.
  3. Python 표준 라이브러리의 일부인 datetime.timedelta 데이터 타입을 사용해 TTL 제한 시간을 정의합니다.
  4. 아티팩트를 로그합니다.
다음 코드 스니펫은 아티팩트를 생성하고 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일로 설정합니다. 즉, W&B는 30일 후 해당 아티팩트를 삭제합니다.

아티팩트를 생성한 이후 TTL 정책 설정 또는 편집하기

이미 존재하는 아티팩트에 대해 TTL 정책을 정의하려면 W&B App UI 또는 W&B Python SDK를 사용합니다.
아티팩트의 TTL을 수정하더라도, 만료까지 걸리는 시간은 여전히 아티팩트의 createdAt 타임스탬프를 기준으로 계산됩니다.
  1. 아티팩트를 가져옵니다.
  2. 아티팩트의 ttl 속성에 시간 차이(timedelta) 값을 전달합니다.
  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)  # Delete in two years
artifact.save()
위 코드 예제는 TTL 정책을 2년으로 설정합니다.

팀의 기본 TTL 정책 설정

팀 관리자만 팀의 기본 TTL 정책을 설정할 수 있습니다.
팀에 대한 기본 TTL 정책을 설정합니다. 기본 TTL 정책은 각 아티팩트의 생성 날짜를 기준으로, 기존 아티팩트와 앞으로 생성될 모든 아티팩트에 적용됩니다. 버전 수준 TTL 정책이 이미 설정된 아티팩트는 팀 기본 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 정책 설정

실행 외부에서 TTL 정책 설정

퍼블릭 API를 사용해 실행을 가져오지 않고 아티팩트를 가져온 뒤, TTL 정책을 설정할 수 있습니다. TTL 정책은 일반적으로 일 단위로 설정됩니다. 다음 코드 예시는 퍼블릭 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)