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 ポリシーを設定または編集できるユーザーを定義できるのは、チーム管理者のみです。
- チームのプロフィールページに移動します。
- Settings タブを選択します。
- Artifacts time-to-live (TTL) セクションに移動します。
- TTL permissions ドロップダウンから、TTL ポリシーを設定および編集できるユーザーを選択します。
- Review and save settings をクリックします。
- 変更内容を確認し、Save settings を選択します。
TTL ポリシーの作成
TTL ポリシーは、Artifact の作成時、または作成後に遡って設定できます。
以下のすべてのコードスニペットにおいて、<> で囲まれた内容はご自身の情報に置き換えて使用してください。
Artifact 作成時に TTL ポリシーを設定する
W&B Python SDK を使用して、Artifact 作成時に TTL ポリシーを定義します。TTL ポリシーは通常「日単位」で定義されます。
Artifact 作成時に TTL ポリシーを定義する方法は、通常の Artifact の作成 方法と似ていますが、Artifact の ttl 属性に time delta を渡す点が異なります。
手順は以下の通りです:
- Artifact を作成 します。
- ファイル、ディレクトリー、またはリファレンスなどの コンテンツを Artifact に追加 します。
- Python 標準ライブラリの
datetime.timedelta データ型を使用して TTL 時間制限を定義します。
- 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 タイムスタンプを基準に計算されます。
- Artifact を取得 します。
- Artifact の
ttl 属性に time delta を渡します。
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 年間に設定しています。
- W&B アプリ UI で W&B プロジェクトに移動します。
- 左パネルの Artifact アイコンを選択します。
- Artifacts のリストから、対象の Artifact タイプを展開します。
- TTL ポリシーを編集したい Artifact バージョンを選択します。
- Version タブをクリックします。
- ドロップダウンから Edit TTL policy を選択します。
- 表示されたモーダルで、TTL policy ドロップダウンから Custom を選択します。
- TTL duration フィールドに、TTL ポリシーを日単位で設定します。
- Update TTL ボタンを選択して変更を保存します。
チームのデフォルト TTL ポリシーを設定する
チームのデフォルト TTL ポリシーを設定できるのは、チーム管理者のみです。
チームのデフォルト TTL ポリシーを設定します。デフォルト TTL ポリシーは、それぞれの作成日に基づいて、既存および将来のすべての Artifacts に適用されます。すでにバージョンレベルで TTL ポリシーが設定されている Artifacts は、チームのデフォルト TTL の影響を受けません。
- チームのプロフィールページに移動します。
- Settings タブを選択します。
- Artifacts time-to-live (TTL) セクションに移動します。
- Set team’s default TTL policy をクリックします。
- Duration フィールドに、TTL ポリシーを日単位で設定します。
- Review and save settings をクリックします。
- 変更内容を確認し、Save settings を選択します。
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 ポリシーを無効にします。
- Artifact を取得 します。
- Artifact の
ttl 属性を None に設定します。
save メソッドを使用して Artifact を更新します。
以下のコードスニペットは、Artifact の TTL ポリシーをオフにする方法を示しています:# Artifact を取得
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
# TTL を None に設定して無効化
artifact.ttl = None
# 変更を保存
artifact.save()
- W&B アプリ UI で W&B プロジェクトに移動します。
- 左パネルの Artifact アイコンを選択します。
- Artifacts のリストから、対象の Artifact タイプを展開します。
- TTL ポリシーを編集したい Artifact バージョンを選択します。
- Version タブをクリックします。
- Link to registry ボタンの隣にある「三点リーダー(…)」アイコンをクリックします。
- ドロップダウンから Edit TTL policy を選択します。
- 表示されたモーダルで、TTL policy ドロップダウンから Deactivate を選択します。
- Update TTL ボタンを選択して変更を保存します。
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)
W&B アプリ UI で Artifact の TTL ポリシーを表示します。
- W&B App に移動します。
- W&B プロジェクトに移動します。
- プロジェクト内で、左サイドバーの Artifacts タブを選択します。
- コレクションをクリックします。
コレクションビュー内では、選択したコレクション内のすべての Artifacts を確認できます。Time to Live 列に、その Artifact に割り当てられた TTL ポリシーが表示されます。