メインコンテンツへスキップ
W&B Artifact の Time-to-Live (TTL) ポリシーを使用すると、W&B で artifact が削除されるタイミングをスケジュールできます。artifact を削除すると、W&B はその artifact を ソフト削除 としてマークします。つまり、artifact は削除対象としてマークされますが、ファイルは storage からすぐには削除されません。W&B が artifact をどのように削除するかについて詳しくは、Delete artifacts ページを参照してください。 W&B App で Artifacts TTL を使ってデータ保持を管理する方法については、動画チュートリアルの Managing data retention with Artifacts TTL をご覧ください。
W&B は、Registry にリンクされた artifact に対して TTL ポリシーを設定するオプションを無効化します。これは、本番ワークフローで使用されるリンク済み artifact が誤って期限切れにならないようにするためです。
  • チームの設定 を表示し、(1) TTL ポリシーを設定または編集できるユーザーの許可や、(2) チームのデフォルト TTL の設定など、チームレベルの TTL 設定にアクセスできるのはチーム管理者のみです。
  • W&B App UI で artifact の詳細に TTL ポリシーを設定または編集するオプションが表示されない場合、またはプログラムで TTL を設定しても artifact の TTL プロパティが正常に変更されない場合は、チーム管理者から必要な権限が付与されていません。

自動生成されたArtifacts

TTL ポリシーを使用できるのは、ユーザーが生成した Artifact のみです。W&B によって自動生成された Artifacts には、TTL ポリシーを設定できません。 次の Artifact タイプは、自動生成された Artifact であることを示します。
  • run_table
  • code
  • job
  • wandb-* で始まる任意の Artifact タイプ
Artifact のタイプは、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 ドロップダウンから、TTL ポリシーを設定・編集できるユーザーを選択します。
  5. Review and save settings をクリックします。
  6. 変更内容を確認し、Save settings を選択します。
TTL 権限の設定

TTL ポリシーを作成する

artifact の作成時、または作成後に、artifact に TTL ポリシーを設定できます。 以下のすべてのコード スニペットでは、コード スニペットを使用する前に、<> で囲まれた内容を実際の情報に置き換えてください。

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 をログします
次の code snippet は、artifact を作成して 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)
前述のコードスニペットでは、artifact の TTL ポリシーを 30 日に設定しています。つまり、W&B は 30 日後に artifact を削除します。

artifact の作成後に TTL ポリシーを設定または編集する

W&B App UI または W&B Python SDK を使用して、既存の artifact に TTL ポリシーを設定します。
artifact の TTL を変更しても、artifact が期限切れになるまでの時間は、artifact の createdAt timestamp に基づいて計算されます。
  1. artifact を取得します
  2. artifact の ttl 属性に time delta を渡します。
  3. save method で artifact を更新します。
次の code snippet は、artifact に 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 に適用されます。すでにバージョンレベルの TTL ポリシーが設定されている artifact には、チームのデフォルト TTL は適用されません。
  1. チームのプロフィールページにアクセスします。
  2. Settings タブを選択します。
  3. Artifacts time-to-live (TTL) section にアクセスします。
  4. Set team’s default TTL policy をクリックします。
  5. Duration フィールドで、TTL ポリシーを日数単位で設定します。
  6. Review and save settings をクリックします。 7/ 変更内容を確認し、Save settings を選択します。
デフォルト TTL ポリシーの設定

run を介さずに TTL ポリシーを設定する

Public API を使用して、run を取得せずに artifact を取得し、TTL ポリシーを設定できます。TTL ポリシーは通常、日数単位で定義されます。 次のコード例は、Public API を使用して artifact を取得し、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 App UI を使用して、特定の artifact バージョンに設定された TTL ポリシーを無効にします。
  1. artifact を取得します.
  2. artifact の ttl 属性を None に設定します。
  3. save method を使用して artifact を更新します。
次の コードスニペット は、artifact の TTL ポリシーを無効化する方法を示しています。
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
artifact.ttl = None
artifact.save()

TTL ポリシーを確認する

Python SDK または W&B App UI を使用して、artifact の TTL ポリシーを確認できます。
print 文を使って artifact の TTL ポリシーを確認します。次の例は、artifact を取得して TTL ポリシーを確認する方法を示しています。
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
print(artifact.ttl)