アーティファクトデータ保持の管理

存続期間 (TTL) ポリシー

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

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

自動生成された Artifacts

ユーザー生成のアーティファクトのみが TTL ポリシーを使用できます。W&B によって自動生成されたアーティファクトには TTL ポリシーを設定することはできません。

自動生成されたアーティファクトを示すアーティファクトタイプは次のとおりです:

  • run_table
  • code
  • job
  • wandb-* で始まる種類のアーティファクト

アーティファクトの種類は、W&B プラットフォームまたはプログラムで確認できます:

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 のタイム・トゥ・リブ (TTL) セクションに移動します。
  4. TTL 許可のドロップダウンから、TTL ポリシーを設定および編集できる人を選択します。
  5. 設定をレビューして保存をクリックします。
  6. 変更を確認し、設定を保存を選択します。

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. アーティファクトの一覧からアーティファクトタイプを展開します。
  4. TTL ポリシーを編集したいアーティファクトバージョンを選択します。
  5. バージョン タブをクリックします。
  6. ドロップダウンから TTL ポリシー編集 を選択します。
  7. 表示されるモーダル内で、TTL ポリシードロップダウンから カスタム を選択します。
  8. TTL 期間フィールドで、日数単位で TTL ポリシーを設定します。
  9. TTL 更新 ボタンを選択して変更を保存します。

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

チームのデフォルト TTL ポリシーを設定します。デフォルトの TTL ポリシーは、既存と今後のアーティファクトすべてに、その作成日を基に適用されます。バージョンレベルで既に TTL ポリシーが存在するアーティファクトは、チームのデフォルト TTL に影響を受けません。

  1. チームのプロフィールページに移動します。
  2. 設定 タブを選択します。
  3. Artifacts のタイム・トゥ・リブ (TTL) セクションに移動します。
  4. チームのデフォルト TTL ポリシー設定 をクリックします。
  5. 期間フィールドにおいて、日数単位で TTL ポリシーを設定します。
  6. 設定をレビューして保存 をクリックします。
  7. 変更を確認し、設定を保存 を選択します。

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. アーティファクトのリストからアーティファクトタイプを展開します。
  4. TTL ポリシーを編集したいアーティファクトバージョンを選択します。
  5. バージョンタブをクリックします。
  6. リンク先レジストリ ボタンの隣にある肉球 UI アイコンをクリックします。
  7. ドロップダウンから TTL ポリシー編集 を選択します。
  8. 表示されるモーダル内で、TTL ポリシードロップダウンから 非アクティブ を選択します。
  9. 変更を保存するために TTL 更新 ボタンを選択します。

TTL ポリシーを確認する

W&B 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. W&B アプリの https://wandb.ai に移動します。
  2. あなたの W&B プロジェクトに移動します。
  3. プロジェクト内で、左のサイドバーの Artifacts タブを選択します。
  4. コレクションをクリックします。

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