メインコンテンツへスキップ
Try in Colab W&B Artifact タイムトゥライブ(TTL)ポリシーを使用すると、W&B から Artifacts が削除されるタイミングをスケジュールできます。Artifact を削除すると、W&B はその Artifact を ソフト削除 としてマークします。つまり、Artifact は削除対象としてマークされますが、ストレージからファイルが即座に削除されるわけではありません。W&B が Artifacts を削除する方法の詳細については、Artifacts の削除 ページを参照してください。 W&B アプリで Artifacts TTL を使用してデータ保持を管理する方法については、ビデオチュートリアル Managing data retention with Artifacts TTL をご覧ください。
W&B は、Registry にリンクされた Artifacts に対して TTL ポリシーを設定するオプションを無効にします。これは、プロダクションワークフローで使用されるリンクされた Artifacts が誤って期限切れにならないようにするためです。
  • チーム管理者のみが チームの設定 を表示し、(1)TTL ポリシーを設定または編集できる人の許可、または(2)チームのデフォルト TTL の設定といった、チームレベルの TTL 設定にアクセスできます。
  • W&B アプリ UI の Artifact の詳細に TTL ポリシーを設定または編集するオプションが表示されない場合、またはプログラムで TTL を設定しても Artifact の TTL プロパティが正常に変更されない場合は、チーム管理者がその権限を付与していない可能性があります。

自動生成された Artifacts

TTL ポリシーを使用できるのは、ユーザーが生成した Artifacts のみです。W&B によって自動生成された Artifacts に TTL ポリシーを設定することはできません。 以下の Artifact タイプは、自動生成された Artifact であることを示します:
  • run_table
  • code
  • job
  • wandb-* で始まるすべての Artifact タイプ
Artifact のタイプは、W&B プラットフォーム またはプログラムで確認できます:
import wandb

# プロジェクト名を指定して run を初期化
with wandb.init(project="<my-project-name>") as run:
    # Artifact を取得
    artifact = run.use_artifact(artifact_or_name="<my-artifact-name>")
    # Artifact のタイプを表示
    print(artifact.type)
<> で囲まれた値は、ご自身の環境の値に置き換えてください。

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 を選択します。
Setting TTL permissions

TTL ポリシーの作成

TTL ポリシーは、Artifact の作成時、または作成後に遡って設定できます。 以下のすべてのコードスニペットにおいて、<> で囲まれた内容はご自身の情報に置き換えて使用してください。

Artifact 作成時に TTL ポリシーを設定する

W&B Python SDK を使用して、Artifact 作成時に TTL ポリシーを定義します。TTL ポリシーは通常「日単位」で定義されます。
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 オブジェクトを作成
    artifact = wandb.Artifact(name="<artifact-name>", type="<type>")
    # ファイルを追加
    artifact.add_file("<my_file>")

    # TTL ポリシーを設定(例:30日間)
    artifact.ttl = timedelta(days=30)  
    # Artifact をログ
    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 を取得
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
# TTL ポリシーを設定(例:2年後に削除)
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 を選択します。
Setting default TTL policy

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

Public API を使用して、Run を取得せずに Artifact を取得し、TTL ポリシーを設定します。TTL ポリシーは通常「日単位」で定義されます。 以下のコードサンプルは、Public API を使用して Artifact を取得し、TTL ポリシーを設定する方法を示しています。
api = wandb.Api()

# Artifact を取得
artifact = api.artifact("entity/project/artifact:alias")

# TTL ポリシーを設定(例:1年後に削除)
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 を取得
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
# TTL を None に設定して無効化
artifact.ttl = None
# 変更を保存
artifact.save()

TTL ポリシーの表示

Python SDK または W&B アプリ UI を使用して、Artifacts の TTL ポリシーを表示します。
print 文を使用して Artifact の TTL ポリシーを表示します。以下の例は、Artifact を取得してその TTL ポリシーを表示する方法を示しています:
# Artifact を取得
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
# TTL ポリシーを表示
print(artifact.ttl)