メインコンテンツへスキップ

Try in Colab

W&B の Artifacts のタイム・トゥ・リブ(TTL)ポリシーを使用して、Artifacts が W&B から削除されるスケジュールを設定します。Artifact を削除すると、W&B はそのアーティファクトを ソフト削除 としてマークします。つまり、アーティファクトは削除対象としてマークされますが、ファイルはすぐにストレージから削除されるわけではありません。W&B がアーティファクトを削除する方法の詳細については、アーティファクトを削除ページを参照してください。 W&B アプリで Artifacts TTL を使って データ保持を管理する方法を学ぶには、この ビデオチュートリアルをご覧ください。
W&B は、モデルレジストリにリンクされたモデルアーティファクトの TTL ポリシーを設定するオプションを非アクティブ化します。これは、生産ワークフローで使用されるリンクされたモデルが誤って期限切れにならないようにするためです。
  • チームの設定](/ja/platform/app/settings-page/teams)と、(1) TTL ポリシーを設定または編集できる人を許可するか、(2) チームのデフォルト TTL を設定するかなどのチームレベルの TTL 設定は、チーム管理者のみが表示およびアクセスできます。
  • W&B アプリ UI のアーティファクトの詳細に TTL ポリシーを設定または編集するオプションが表示されない場合、またはプログラムで TTL を設定してもアーティファクトの 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 許可を与えることもできます。
TTL ポリシーを設定または編集できる人を定義できるのはチーム管理者だけです。
  1. チームのプロフィールページに移動します。
  2. 設定 タブを選択します。
  3. Artifacts のタイム・トゥ・リブ (TTL) セクションに移動します。
  4. TTL 許可のドロップダウンから、TTL ポリシーを設定および編集できる人を選択します。
  5. 設定をレビューして保存をクリックします。
  6. 変更を確認し、設定を保存を選択します。

TTL ポリシーを作成する

アーティファクトを作成するとき、または作成後に TTL ポリシーを設定します。 以下のコードスニペットすべてにおいて、 <> で包まれた内容をあなたの情報に置き換えてコードスニペットを使用してください。

アーティファクト作成時に TTL ポリシーを設定する

W&B Python SDK を使用してアーティファクトを作成する際に TTL ポリシーを定義します。TTL ポリシーは通常日数で定義されます。
アーティファクト作成時に 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 ポリシーを定義します。
アーティファクトの TTL を変更する場合、アーティファクトの期限切れまでの時間は、アーティファクトの作成時刻 (createdAt タイムスタンプ) を基に計算されます。
  • Python SDK
  • W&B App
  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年間に設定します。

チームのデフォルト 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 ポリシーを非アクティブにします。
  • Python SDK
  • W&B App
  1. あなたのアーティファクトを取得します。
  2. アーティファクトの ttl 属性を None に設定します。
  3. save メソッドでアーティファクトを更新します。
以下のコードスニペットは、アーティファクトに対する TTL ポリシーをオフにする方法を示しています:
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
artifact.ttl = None
artifact.save()

TTL ポリシーを確認する

W&B Python SDK または W&B アプリ UI を使用して、アーティファクトの TTL ポリシーを確認します。
  • Python SDK
  • W&B App
print 文を使用してアーティファクトの TTL ポリシーを表示します。以下の例では、アーティファクトを取得してその TTL ポリシーを表示する方法を示しています:
artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
print(artifact.ttl)
I