> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-serverless-sft-revamp.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Artifact のデータ保持の管理

> Time to live (TTL) ポリシー

export const ColabLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="colab-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01.21.03zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z" />
    </svg>
    Try in Colab
  </a>;

<ColabLink url="https://colab.research.google.com/github/wandb/examples/blob/kas-artifacts-ttl-colab/colabs/wandb-artifacts/WandB_Artifacts_Time_to_live_TTL_Walkthrough.ipynb" />

W\&B Artifact タイムトゥライブ（TTL）ポリシーを使用すると、W\&B から Artifacts が削除されるタイミングをスケジュールできます。Artifact を削除すると、W\&B はその Artifact を *ソフト削除* としてマークします。つまり、Artifact は削除対象としてマークされますが、ストレージからファイルが即座に削除されるわけではありません。W\&B が Artifacts を削除する方法の詳細については、[Artifacts の削除](./delete-artifacts) ページを参照してください。

W\&B アプリで Artifacts TTL を使用してデータ保持を管理する方法については、ビデオチュートリアル [Managing data retention with Artifacts TTL](https://www.youtube.com/watch?v=hQ9J6BoVmnc) をご覧ください。

<Note>
  W\&B は、Registry にリンクされた Artifacts に対して TTL ポリシーを設定するオプションを無効にします。これは、プロダクションワークフローで使用されるリンクされた Artifacts が誤って期限切れにならないようにするためです。
</Note>

<Note>
  * チーム管理者のみが [チームの設定](/platform/app/settings-page/teams) を表示し、（1）TTL ポリシーを設定または編集できる人の許可、または（2）チームのデフォルト TTL の設定といった、チームレベルの TTL 設定にアクセスできます。
  * W\&B アプリ UI の Artifact の詳細に TTL ポリシーを設定または編集するオプションが表示されない場合、またはプログラムで TTL を設定しても Artifact の TTL プロパティが正常に変更されない場合は、チーム管理者がその権限を付与していない可能性があります。
</Note>

## 自動生成された Artifacts

TTL ポリシーを使用できるのは、ユーザーが生成した Artifacts のみです。W\&B によって自動生成された Artifacts に TTL ポリシーを設定することはできません。

以下の Artifact タイプは、自動生成された Artifact であることを示します：

* `run_table`
* `code`
* `job`
* `wandb-*` で始まるすべての Artifact タイプ

Artifact のタイプは、[W\&B プラットフォーム](/models/artifacts/explore-and-traverse-an-artifact-graph/) またはプログラムで確認できます：

```python theme={null}
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 権限をチーム管理者のみに付与するか、チーム管理者とチームメンバーの両方に付与するかを選択できます。

<Note>
  TTL ポリシーを設定または編集できるユーザーを定義できるのは、チーム管理者のみです。
</Note>

1. チームのプロフィールページに移動します。
2. **Settings** タブを選択します。
3. **Artifacts time-to-live (TTL)** セクションに移動します。
4. **TTL permissions** ドロップダウンから、TTL ポリシーを設定および編集できるユーザーを選択します。
5. **Review and save settings** をクリックします。
6. 変更内容を確認し、**Save settings** を選択します。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-serverless-sft-revamp/-xwwlqpAcEzLHKzq/images/artifacts/define_who_sets_ttl.gif?s=057ec77a443acd32d1027ef1eee8c47c" alt="Setting TTL permissions" width="2318" height="2262" data-path="images/artifacts/define_who_sets_ttl.gif" />
</Frame>

## TTL ポリシーの作成

TTL ポリシーは、Artifact の作成時、または作成後に遡って設定できます。

以下のすべてのコードスニペットにおいて、`<>` で囲まれた内容はご自身の情報に置き換えて使用してください。

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

W\&B Python SDK を使用して、Artifact 作成時に TTL ポリシーを定義します。TTL ポリシーは通常「日単位」で定義されます。

<Note>
  Artifact 作成時に TTL ポリシーを定義する方法は、通常の [Artifact の作成](/models/artifacts/construct-an-artifact/) 方法と似ていますが、Artifact の `ttl` 属性に time delta を渡す点が異なります。
</Note>

手順は以下の通りです：

1. [Artifact を作成](/models/artifacts/construct-an-artifact/) します。
2. ファイル、ディレクトリー、またはリファレンスなどの [コンテンツを Artifact に追加](/models/artifacts/construct-an-artifact/#add-files-to-an-artifact) します。
3. Python 標準ライブラリの [`datetime.timedelta`](https://docs.python.org/3/library/datetime.html) データ型を使用して TTL 時間制限を定義します。
4. [Artifact をログ](/models/artifacts/construct-an-artifact/#3-save-your-artifact-to-the-wb-server) します。

以下のコードスニペットは、Artifact を作成し、TTL ポリシーを設定する方法を示しています。

```python theme={null}
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 ポリシーを定義します。

<Note>
  Artifact の TTL を変更しても、Artifact が期限切れになるまでの時間は、その Artifact の `createdAt` タイムスタンプを基準に計算されます。
</Note>

<Tabs>
  <Tab title="Python SDK">
    1. [Artifact を取得](/models/artifacts/download-and-use-an-artifact/) します。
    2. Artifact の `ttl` 属性に time delta を渡します。
    3. [`save`](/models/ref/python/experiments/run#save) メソッドを使用して Artifact を更新します。

    以下のコードスニペットは、Artifact に TTL ポリシーを設定する方法を示しています：

    ```python theme={null}
    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 年間に設定しています。
  </Tab>

  <Tab title="W&B App">
    1. W\&B アプリ UI で W\&B プロジェクトに移動します。
    2. 左パネルの Artifact アイコンを選択します。
    3. Artifacts のリストから、対象の Artifact タイプを展開します。
    4. TTL ポリシーを編集したい Artifact バージョンを選択します。
    5. **Version** タブをクリックします。
    6. ドロップダウンから **Edit TTL policy** を選択します。
    7. 表示されたモーダルで、TTL policy ドロップダウンから **Custom** を選択します。
    8. **TTL duration** フィールドに、TTL ポリシーを日単位で設定します。
    9. **Update TTL** ボタンを選択して変更を保存します。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-serverless-sft-revamp/-xwwlqpAcEzLHKzq/images/artifacts/edit_ttl_ui.gif?s=f1923e80dcc4d755c1cab0bdf124ba7f" alt="Editing TTL policy" width="2678" height="2072" data-path="images/artifacts/edit_ttl_ui.gif" />
    </Frame>
  </Tab>
</Tabs>

### チームのデフォルト TTL ポリシーを設定する

<Note>
  チームのデフォルト TTL ポリシーを設定できるのは、チーム管理者のみです。
</Note>

チームのデフォルト 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** を選択します。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-serverless-sft-revamp/-xwwlqpAcEzLHKzq/images/artifacts/set_default_ttl.gif?s=cf0791177f8e161cdd1b367a5d70bfc4" alt="Setting default TTL policy" width="2326" height="2254" data-path="images/artifacts/set_default_ttl.gif" />
</Frame>

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

Public API を使用して、Run を取得せずに Artifact を取得し、TTL ポリシーを設定します。TTL ポリシーは通常「日単位」で定義されます。

以下のコードサンプルは、Public API を使用して Artifact を取得し、TTL ポリシーを設定する方法を示しています。

```python theme={null}
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 ポリシーを無効にします。

<Tabs>
  <Tab title="Python SDK">
    1. [Artifact を取得](/models/artifacts/download-and-use-an-artifact/) します。
    2. Artifact の `ttl` 属性を `None` に設定します。
    3. [`save`](/models/ref/python/experiments/run#save) メソッドを使用して Artifact を更新します。

    以下のコードスニペットは、Artifact の TTL ポリシーをオフにする方法を示しています：

    ```python theme={null}
    # Artifact を取得
    artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
    # TTL を None に設定して無効化
    artifact.ttl = None
    # 変更を保存
    artifact.save()
    ```
  </Tab>

  <Tab title="W&B App">
    1. W\&B アプリ UI で W\&B プロジェクトに移動します。
    2. 左パネルの Artifact アイコンを選択します。
    3. Artifacts のリストから、対象の Artifact タイプを展開します。
    4. TTL ポリシーを編集したい Artifact バージョンを選択します。
    5. **Version** タブをクリックします。
    6. **Link to registry** ボタンの隣にある「三点リーダー（...）」アイコンをクリックします。
    7. ドロップダウンから **Edit TTL policy** を選択します。
    8. 表示されたモーダルで、TTL policy ドロップダウンから **Deactivate** を選択します。
    9. **Update TTL** ボタンを選択して変更を保存します。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-serverless-sft-revamp/-xwwlqpAcEzLHKzq/images/artifacts/remove_ttl_polilcy.gif?s=b073d10fc3e3b357ca49e3ea51ab4a07" alt="Removing TTL policy" width="2678" height="1892" data-path="images/artifacts/remove_ttl_polilcy.gif" />
    </Frame>
  </Tab>
</Tabs>

## TTL ポリシーの表示

Python SDK または W\&B アプリ UI を使用して、Artifacts の TTL ポリシーを表示します。

<Tabs>
  <Tab title="Python SDK">
    print 文を使用して Artifact の TTL ポリシーを表示します。以下の例は、Artifact を取得してその TTL ポリシーを表示する方法を示しています：

    ```python theme={null}
    # Artifact を取得
    artifact = run.use_artifact("<my-entity/my-project/my-artifact:alias>")
    # TTL ポリシーを表示
    print(artifact.ttl)
    ```
  </Tab>

  <Tab title="W&B App">
    W\&B アプリ UI で Artifact の TTL ポリシーを表示します。

    1. [W\&B App](https://wandb.ai) に移動します。
    2. W\&B プロジェクトに移動します。
    3. プロジェクト内で、左サイドバーの Artifacts タブを選択します。
    4. コレクションをクリックします。

    コレクションビュー内では、選択したコレクション内のすべての Artifacts を確認できます。`Time to Live` 列に、その Artifact に割り当てられた TTL ポリシーが表示されます。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-serverless-sft-revamp/-xwwlqpAcEzLHKzq/images/artifacts/ttl_collection_panel_ui.png?fit=max&auto=format&n=-xwwlqpAcEzLHKzq&q=85&s=1e7627b3c064e7b867fa223f17d591f9" alt="TTL collection view" width="1610" height="831" data-path="images/artifacts/ttl_collection_panel_ui.png" />
    </Frame>
  </Tab>
</Tabs>
