Manage artifact data retention

Time to live ポリシー (TTL)

W&B Artifact time-to-live(TTL)ポリシーを使用して、Artifacts が W&B から削除されるタイミングをスケジュールします。アーティファクトを削除すると、W&B はそのアーティファクトを ソフト削除 としてマークします。つまり、アーティファクトは削除対象としてマークされますが、ファイルはストレージからすぐに削除されるわけではありません。W&B が Artifacts を削除する方法の詳細については、Artifacts の削除 ページを参照してください。

W&B アプリで Artifacts TTL を使用してデータ保持を管理する方法については、こちらのビデオチュートリアルをご覧ください。

自動生成された Artifacts

ユーザーが生成した Artifacts のみ、TTL ポリシーを使用できます。W&B によって自動生成された Artifacts は、TTL ポリシーを設定できません。

次の Artifact の種類は、自動生成された Artifact を示します。

  • run_table
  • code
  • job
  • wandb-* で始まる任意の Artifact の種類

W&B プラットフォームで、またはプログラムで Artifact の種類を確認できます。

import wandb

run = wandb.init(project="<my-project-name>")
artifact = run.use_artifact(artifact_or_name="<my-artifact-name>")
print(artifact.type)

<> で囲まれた値を独自の値に置き換えます。

TTL ポリシーを編集および設定できるユーザーを定義する

チーム内で TTL ポリシーを設定および編集できるユーザーを定義します。TTL 権限をチーム管理者のみに付与するか、チーム管理者とチームメンバーの両方に TTL 権限を付与できます。

  1. チームのプロファイルページに移動します。
  2. [設定] タブを選択します。
  3. [Artifacts time-to-live (TTL) section] に移動します。
  4. [TTL permissions dropdown] で、TTL ポリシーを設定および編集できるユーザーを選択します。
  5. [Review and save settings] をクリックします。
  6. 変更を確認し、[Save settings] を選択します。

TTL ポリシーを作成する

アーティファクトを作成するとき、またはアーティファクトの作成後に遡及的に、アーティファクトの TTL ポリシーを設定します。

以下のすべてのコードスニペットについて、<> で囲まれたコンテンツを自分の情報に置き換えて、コードスニペットを使用します。

アーティファクトを作成するときに TTL ポリシーを設定する

W&B Python SDK を使用して、アーティファクトを作成するときに TTL ポリシーを定義します。TTL ポリシーは通常、日数で定義されます。

手順は次のとおりです。

  1. アーティファクトを作成します。
  2. ファイル、ディレクトリー、参照など、アーティファクトにコンテンツを追加します。
  3. Python の標準ライブラリの一部である datetime.timedelta データ型を使用して、TTL 制限時間を定義します。
  4. アーティファクトをログに記録します。

次のコードスニペットは、アーティファクトを作成し、TTL ポリシーを設定する方法を示しています。

import wandb
from datetime import timedelta

run = wandb.init(project="<my-project-name>", entity="<my-entity>")
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 ポリシーを設定または編集する

W&B アプリ UI または W&B Python SDK を使用して、既に存在するアーティファクトの TTL ポリシーを定義します。

  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 年に設定しています。

  1. W&B アプリ UI で W&B プロジェクトに移動します。
  2. 左側のパネルでアーティファクトアイコンを選択します。
  3. アーティファクトのリストから、TTL ポリシーを編集するアーティファクトの種類を展開します。
  4. TTL ポリシーを編集するアーティファクトバージョンを選択します。
  5. [バージョン] タブをクリックします。
  6. ドロップダウンから [TTL ポリシーの編集] を選択します。
  7. 表示されるモーダル内で、TTL ポリシードロップダウンから [カスタム] を選択します。
  8. [TTL 期間] フィールドに、TTL ポリシーを日数単位で設定します。
  9. [TTL の更新] ボタンを選択して、変更を保存します。

チームのデフォルト TTL ポリシーを設定する

チームのデフォルト TTL ポリシーを設定します。デフォルト TTL ポリシーは、それぞれの作成日に基づいて、既存および将来のすべてのアーティファクトに適用されます。既存のバージョンレベルの TTL ポリシーを持つアーティファクトは、チームのデフォルト TTL の影響を受けません。

  1. チームのプロファイルページに移動します。
  2. [設定] タブを選択します。
  3. [Artifacts time-to-live (TTL) section] に移動します。
  4. [チームのデフォルト TTL ポリシーを設定] をクリックします。
  5. [期間] フィールドに、TTL ポリシーを日数単位で設定します。
  6. [Review and save settings] をクリックします。
  7. 変更を確認し、[Save settings] を選択します。

run の外部で TTL ポリシーを設定する

パブリック API を使用して、run を取得せずにアーティファクトを取得し、TTL ポリシーを設定します。TTL ポリシーは通常、日数で定義されます。

次のコードサンプルは、パブリック 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 アプリ UI を使用して、特定のアーティファクトバージョンの TTL ポリシーを無効化します。

  1. アーティファクトを取得します。
  2. アーティファクトの ttl 属性を None に設定します。
  3. saveメソッドを使用してアーティファクトを更新します。

次のコードスニペットは、アーティファクトの TTL ポリシーをオフにする方法を示しています。

artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
artifact.ttl = None
artifact.save()
  1. W&B アプリ UI で W&B プロジェクトに移動します。
  2. 左側のパネルでアーティファクトアイコンを選択します。
  3. アーティファクトのリストから、TTL ポリシーを編集するアーティファクトの種類を展開します。
  4. TTL ポリシーを編集するアーティファクトバージョンを選択します。
  5. [バージョン] タブをクリックします。
  6. [レジストリへのリンク] ボタンの横にあるミートボール UI アイコンをクリックします。
  7. ドロップダウンから [TTL ポリシーの編集] を選択します。
  8. 表示されるモーダル内で、TTL ポリシードロップダウンから [非アクティブ化] を選択します。
  9. [TTL の更新] ボタンを選択して、変更を保存します。

TTL ポリシーを表示する

Python SDK または W&B アプリ UI でアーティファクトの TTL ポリシーを表示します。

print ステートメントを使用して、アーティファクトの TTL ポリシーを表示します。次の例は、アーティファクトを取得し、その TTL ポリシーを表示する方法を示しています。

artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
print(artifact.ttl)

W&B アプリ UI でアーティファクトの TTL ポリシーを表示します。

  1. https://wandb.ai で W&B アプリに移動します。
  2. W&B プロジェクトに移動します。
  3. プロジェクト内で、左側のサイドバーにある [Artifacts] タブを選択します。
  4. コレクションをクリックします。

コレクションビュー内では、選択したコレクション内のすべてのアーティファクトを表示できます。[Time to Live] 列には、そのアーティファクトに割り当てられた TTL ポリシーが表示されます。