Manage artifact data retention
3 minute read
W&B Artifact time-to-live(TTL)ポリシーを使用して、Artifacts が W&B から削除されるタイミングをスケジュールします。アーティファクトを削除すると、W&B はそのアーティファクトを ソフト削除 としてマークします。つまり、アーティファクトは削除対象としてマークされますが、ファイルはストレージからすぐに削除されるわけではありません。W&B が Artifacts を削除する方法の詳細については、Artifacts の削除 ページを参照してください。
W&B アプリで Artifacts TTL を使用してデータ保持を管理する方法については、こちらのビデオチュートリアルをご覧ください。
- チーム管理者のみが チームの設定を表示し、(1)TTL ポリシーを設定または編集できるユーザーを許可するか、(2)チームのデフォルト TTL を設定するなど、チームレベルの TTL 設定にアクセスできます。
- W&B アプリ UI のアーティファクトの詳細で TTL ポリシーを設定または編集するオプションが表示されない場合、またはプログラムで TTL を設定してもアーティファクトの 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 権限を付与できます。
- チームのプロファイルページに移動します。
- [設定] タブを選択します。
- [Artifacts time-to-live (TTL) section] に移動します。
- [TTL permissions dropdown] で、TTL ポリシーを設定および編集できるユーザーを選択します。
- [Review and save settings] をクリックします。
- 変更を確認し、[Save settings] を選択します。

TTL ポリシーを作成する
アーティファクトを作成するとき、またはアーティファクトの作成後に遡及的に、アーティファクトの TTL ポリシーを設定します。
以下のすべてのコードスニペットについて、<>
で囲まれたコンテンツを自分の情報に置き換えて、コードスニペットを使用します。
アーティファクトを作成するときに TTL ポリシーを設定する
W&B Python SDK を使用して、アーティファクトを作成するときに TTL ポリシーを定義します。TTL ポリシーは通常、日数で定義されます。
ttl
属性に時間デルタを渡す点が異なります。手順は次のとおりです。
- アーティファクトを作成します。
- ファイル、ディレクトリー、参照など、アーティファクトにコンテンツを追加します。
- Python の標準ライブラリの一部である
datetime.timedelta
データ型を使用して、TTL 制限時間を定義します。 - アーティファクトをログに記録します。
次のコードスニペットは、アーティファクトを作成し、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 ポリシーを定義します。
createdAt
タイムスタンプを使用して計算されます。- アーティファクトを取得します。
- 時間デルタをアーティファクトの
ttl
属性に渡します。 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 年に設定しています。
- W&B アプリ UI で W&B プロジェクトに移動します。
- 左側のパネルでアーティファクトアイコンを選択します。
- アーティファクトのリストから、TTL ポリシーを編集するアーティファクトの種類を展開します。
- TTL ポリシーを編集するアーティファクトバージョンを選択します。
- [バージョン] タブをクリックします。
- ドロップダウンから [TTL ポリシーの編集] を選択します。
- 表示されるモーダル内で、TTL ポリシードロップダウンから [カスタム] を選択します。
- [TTL 期間] フィールドに、TTL ポリシーを日数単位で設定します。
- [TTL の更新] ボタンを選択して、変更を保存します。

チームのデフォルト TTL ポリシーを設定する
チームのデフォルト TTL ポリシーを設定します。デフォルト TTL ポリシーは、それぞれの作成日に基づいて、既存および将来のすべてのアーティファクトに適用されます。既存のバージョンレベルの TTL ポリシーを持つアーティファクトは、チームのデフォルト TTL の影響を受けません。
- チームのプロファイルページに移動します。
- [設定] タブを選択します。
- [Artifacts time-to-live (TTL) section] に移動します。
- [チームのデフォルト TTL ポリシーを設定] をクリックします。
- [期間] フィールドに、TTL ポリシーを日数単位で設定します。
- [Review and save settings] をクリックします。
- 変更を確認し、[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 ポリシーを無効化します。
- アーティファクトを取得します。
- アーティファクトの
ttl
属性をNone
に設定します。 save
メソッドを使用してアーティファクトを更新します。
次のコードスニペットは、アーティファクトの TTL ポリシーをオフにする方法を示しています。
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
artifact.ttl = None
artifact.save()
- W&B アプリ UI で W&B プロジェクトに移動します。
- 左側のパネルでアーティファクトアイコンを選択します。
- アーティファクトのリストから、TTL ポリシーを編集するアーティファクトの種類を展開します。
- TTL ポリシーを編集するアーティファクトバージョンを選択します。
- [バージョン] タブをクリックします。
- [レジストリへのリンク] ボタンの横にあるミートボール UI アイコンをクリックします。
- ドロップダウンから [TTL ポリシーの編集] を選択します。
- 表示されるモーダル内で、TTL ポリシードロップダウンから [非アクティブ化] を選択します。
- [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 ポリシーを表示します。
- https://wandb.ai で W&B アプリに移動します。
- W&B プロジェクトに移動します。
- プロジェクト内で、左側のサイドバーにある [Artifacts] タブを選択します。
- コレクションをクリックします。
コレクションビュー内では、選択したコレクション内のすべてのアーティファクトを表示できます。[Time to Live
] 列には、そのアーティファクトに割り当てられた TTL ポリシーが表示されます。

[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.