> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

> App UI を使用してインタラクティブに、または W&B Python SDK を使用してプログラムでアーティファクトを削除します。

# アーティファクトを削除する

アーティファクトは、W\&B アプリを使用してインタラクティブに削除することも、W\&B Python SDK を使用してプログラムで削除することもできます。アーティファクトを削除すると、W\&B はそのアーティファクトを *論理削除* の状態にします。つまり、アーティファクトには削除対象のマークが付けられますが、ファイルはすぐにはストレージから削除されません。

アーティファクトの内容は、定期的に実行されるガベージコレクションのプロセスが削除対象のアーティファクトをすべて確認するまで、論理削除 (削除保留中) の状態のまま残ります。ガベージコレクションのプロセスは、アーティファクトとその関連ファイルが前後どちらのアーティファクトのバージョンでも使用されていない場合に、関連ファイルをストレージから削除します。

<Note>
  ガベージコレクションは **ベストエフォート** で実行されます。アーティファクトの削除後、解放された容量がオブジェクトストレージにどれくらいの速さで反映されるかについて、W\&B は保証しません。大規模なデプロイメントや処理の滞留がある場合は、想定以上に時間がかかることがあります。run データや保持設定との関係、および任意で実行できるオペレーターの action については、[バケットストレージとコストを管理する](/ja/products/wandb/platform/hosting/managing-bucket-storage) を参照してください。
</Note>

<h2 id="artifact-garbage-collection-workflow">
  アーティファクトのガベージコレクションのワークフロー
</h2>

次の図は、アーティファクトのガベージコレクションプロセスの全体像を示しています。

```mermaid theme={"system"}
graph TB
    Start([アーティファクトの削除を開始]) --> DeleteMethod{削除方法}
    
    DeleteMethod -->|UI| UIDelete[W&B アプリから削除]
    DeleteMethod -->|SDK| SDKDelete[W&B Python SDK から削除]
    DeleteMethod -->|TTL| TTLDelete[TTL ポリシーの期限切れ]
    
    UIDelete --> SoftDelete[アーティファクトを<br/>「論理削除」としてマーク]
    SDKDelete --> SoftDelete
    TTLDelete --> SoftDelete
    
    SoftDelete --> GCWait[(ベストエフォートの<br/>ガベージコレクションを<br/>待機)]
    
    GCWait --> GCRun[ガベージコレクションの<br/>プロセスを実行<br/><br/>- 論理削除されたすべてのアーティファクトを確認<br/>- ファイルの依存関係を確認]
    
    GCRun --> CheckUsage{ファイルは他のアーティファクトのバージョンで<br/>使用されていますか？}
    
    CheckUsage -->|はい| KeepFiles[ファイルをストレージに保持<br/><br/>- アーティファクトを削除済みとしてマーク<br/>- 他のバージョンで使用するファイルを保持]
    CheckUsage -->|いいえ| DeleteFiles[ファイルをストレージから削除<br/><br/>- アーティファクトを完全に削除<br/>- ストレージ容量を解放]
    
    KeepFiles --> End([終了])
    DeleteFiles --> End
    
    style Start fill:#e1f5fe,stroke:#333,stroke-width:2px,color:#000
    style SoftDelete fill:#fff3e0,stroke:#333,stroke-width:2px,color:#000
    style GCRun fill:#f3e5f5,stroke:#333,stroke-width:2px,color:#000
    style KeepFiles fill:#e8f5e9,stroke:#333,stroke-width:2px,color:#000
    style DeleteFiles fill:#ffebee,stroke:#333,stroke-width:2px,color:#000
    style End fill:#e0e0e0,stroke:#333,stroke-width:2px,color:#000
```

TTL ポリシーを使用すると、W\&B からアーティファクトを削除するタイミングをスケジュールできます。詳細については、[Artifact TTL ポリシーでデータ保持を管理する](/ja/products/wandb/artifacts/ttl)を参照してください。

<Note>
  TTL ポリシー、W\&B Python SDK、または W\&B アプリ によって削除されたアーティファクトは、まず論理削除されます。論理削除されたアーティファクトは、その後ガベージ コレクションを経て完全に削除されます。
</Note>

<Note>
  entity、project、またはアーティファクト コレクションを削除すると、このページで説明するアーティファクトの削除プロセスが開始されます。run を削除する際に関連するアーティファクトも削除するよう選択した場合、それらのアーティファクトにも同じ論理削除とガベージ コレクションのワークフローが適用されます。
</Note>

<h2 id="delete-an-artifact-version">
  アーティファクトのバージョンを削除する
</h2>

アーティファクトのバージョンは、W\&B アプリを使用してインタラクティブに削除することも、W\&B Python SDK を使用してプログラムで削除することもできます。

<Tabs>
  <Tab title="W&B アプリ" value="ui">
    アーティファクトのバージョンを削除するには、次の手順を実行します。

    1. 削除するアーティファクトのバージョンが含まれている project にアクセスします。
    2. **Artifacts** タブを選択します。
    3. アーティファクト タイプの一覧から、削除するバージョンが含まれているアーティファクトのタイプを選択します。
    4. 削除するアーティファクトのバージョンの横にある **action (<Icon icon="ellipsis" iconType="solid" />)** メニューをクリックします。
    5. ドロップダウンから **Delete Version** を選択します。
  </Tab>

  <Tab title="W&B Python SDK" value="sdk">
    [wandb.Artifact.delete()](/ja/products/wandb/ref/python/experiments/artifact#delete) メソッドを使用すると、アーティファクトのバージョンをプログラムで削除できます。アーティファクトの完全名を指定してください。完全名の形式は `<entity>/<project>/<artifact_name>:<version>` です。アーティファクトに 1 つ以上のエイリアスが関連付けられている場合でも削除するには、`delete_aliases` パラメーターを `True` に設定します。

    ```python theme={"system"}
    import wandb

    api = wandb.Api()

    # パスを指定してアーティファクトを取得する
    artifact = api.artifact("<entity>/<project>/<artifact_name>:<version>")

    # エイリアスも含めてアーティファクトのバージョンを削除する
    artifact.delete(delete_aliases=True)
    ```
  </Tab>
</Tabs>

<h2 id="delete-multiple-artifact-versions">
  複数のアーティファクトのバージョンを削除する
</h2>

次のコード例は、複数のアーティファクトのバージョンを削除する方法を示しています。アーティファクトを作成した run の entity、プロジェクト名、run ID を `wandb.Api.run()` の引数として指定します。これにより Run オブジェクトが返され、その run で作成されたすべてのアーティファクトのバージョンにアクセスできるようになります。次に、アーティファクトのバージョンを順に処理し、条件に一致するものを削除します。

<Tip>
  アーティファクトのバージョンと、それに関連付けられたすべてのエイリアスを削除するには、`delete_aliases` パラメーターを `True` に設定します (`wandb.Artifact.delete(delete_aliases=True)`) 。
</Tip>

`<entity>`、`<project>`、`<run_id>`、`<artifact_name>` の各プレースホルダーを実際の値に置き換えてください。

```python theme={"system"}
import wandb

# W&B API を初期化します
api = wandb.Api()

# パスを指定して run を取得します。パスの形式は <entity>/<project>/<run_id> です
run = api.run("<entity>/<project>/<run_id>")

# バージョンを削除する対象のアーティファクト名を指定します
artifact_name = "<artifact_name>"

# 指定した名前のアーティファクトのバージョンを検索して削除します
for artifact in run.logged_artifacts():
    print(f"Found artifact: {artifact.name}") # 名前の例: run_4dfbufgq_model:v0
    # split() を使用して、バージョンを除いたアーティファクト名のみを取り出します
    if artifact.name.split(":")[0] == artifact_name:
        print(f"Deleting artifact version: {artifact.name}")
        artifact.delete(delete_aliases=True)
```

<h2 id="delete-multiple-artifact-versions-with-a-specific-alias">
  特定のエイリアスが付いた複数のアーティファクトのバージョンを削除する
</h2>

次のコードは、特定のエイリアスが付いた複数のアーティファクトのバージョンを削除する方法を示しています。

`<entity>`、`<project>`、`<run_id>`、`<artifact_name>`、`<alias>` の各プレースホルダーを実際の値に置き換えてください。

```python theme={"system"}
import wandb

# W&B API を初期化します
api = wandb.Api()

# パスを指定して run を取得します。パスの形式は <entity>/<project>/<run_id> です
run = api.run("<entity>/<project>/<run_id>")

# バージョンを削除するアーティファクトの名前を指定します
artifact_name = "<artifact_name>"

# 削除対象のアーティファクトのバージョンを絞り込むためのエイリアスを指定します
desired_alias = "<alias>"

# run にログされたアーティファクトのうち、エイリアス 'v3' と 'v4 を持つものを削除します
for artifact in run.logged_artifacts():
    print(f"Found artifact: {artifact.name}")
    if (artifact.name.split(":")[0] == artifact_name) and (desired_alias in artifact.aliases):
            artifact.delete(delete_aliases=True)
```

<h2 id="delete-an-artifact-collection">
  アーティファクト コレクションを削除する
</h2>

<Tabs>
  <Tab title="W&B アプリ" value="ui">
    アーティファクト コレクションを削除するには、次の手順を実行します。

    1. 削除するアーティファクト コレクションにアクセスします。
    2. アーティファクト コレクション名の横にある **action (<Icon icon="ellipsis" iconType="solid" />)** メニューを選択します。
    3. ドロップダウンメニューから **Delete** を選択します。
  </Tab>

  <Tab title="W&B Python SDK" value="sdk">
    [wandb.Artifact.delete()](/ja/products/wandb/ref/python/experiments/artifact#delete) メソッドを使用すると、プログラムからアーティファクト コレクションを削除できます。

    `wandb.Api.artifact_collection(name="")` にアーティファクト コレクションのフルパスを指定します。フルパスは `<entity>/<project>/<artifact_collection_name>` の形式です。

    ```python theme={"system"}
    import wandb

    # W&B API を初期化する
    api = wandb.Api()

    # パスを指定してアーティファクト コレクションを取得する。パスの形式は
    # <entity>/<project>/<artifact_collection_name>
    collection = api.artifact_collection(
        type_name = "<artifact_type>",
        name = "<entity>/<project>/<artifact_collection_name>"
    )
    collection.delete()
    ```
  </Tab>
</Tabs>

<h2 id="protected-aliases-and-deletion-permissions">
  保護されたエイリアスと削除権限
</h2>

保護されたエイリアスが付いたアーティファクトには、特別な削除制限が適用されます。[保護されたエイリアス](/ja/products/registry/aliases#protected-aliases)とは、許可のない削除を防ぐために Registry 管理者が設定できる、Registry 内のエイリアスです。

<Note>
  **保護されたエイリアスに関する重要な考慮事項:**

  * 保護されたエイリアスが付いたアーティファクトは、Registry 管理者以外のユーザーは削除できません。
  * Registry 内では、Registry 管理者は保護されたアーティファクトのバージョンのリンクを解除したり、保護されたエイリアスを含むコレクションや Registry を削除したりできます。
  * ソースアーティファクトの場合: ソースアーティファクトが保護されたエイリアス付きで Registry にリンクされていると、どのユーザーも削除できません。
  * Registry 管理者は、ソースアーティファクトから保護されたエイリアスを外すことで、そのソースアーティファクトを削除できるようになります。
</Note>

<h2 id="enable-garbage-collection-based-on-how-wb-is-hosted">
  W\&B のホスティング方法に応じてガベージコレクションを有効にする
</h2>

<Note>ガベージコレクションの実行タイミングは保証されません。詳細については、[バケットストレージとコストを管理する](/ja/products/wandb/platform/hosting/managing-bucket-storage)を参照してください。</Note>

W\&B Multi-tenant Cloud を使用している場合、ガベージコレクションはデフォルトで有効になっています。W\&B 専用クラウドおよびセルフマネージドでは、ガベージコレクションを有効化するために、次の追加手順が必要になる場合があります。

1. **W\&B セルフマネージド**: `GORILLA_ARTIFACT_GC_ENABLED=true` を設定します。
2. **専用クラウド**: サポートに問い合わせて、ガベージコレクションが有効になっているかどうかを確認します。
3. [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html)、[Google Cloud](https://cloud.google.com/storage/docs/object-versioning)、または [Minio](https://min.io/docs/minio/linux/administration/object-management/object-versioning.html#enable-bucket-versioning) などのその他のストレージプロバイダーを使用している場合は、バケットのバージョン管理を有効にします。Azure を使用している場合は、バケットのバージョン管理に相当する[論理削除を有効にします](https://learn.microsoft.com/azure/storage/blobs/soft-delete-blob-overview)。

次の表は、デプロイメントタイプごとに、ガベージコレクションを有効にするために満たす必要がある要件を示しています。

`X` は、その要件を満たす必要があることを示します。

| | 環境変数 | バージョン管理を有効化 |
| - | - | - |
| Multi-tenant Cloud | | |
| Multi-tenant Cloud ([BYOB ストレージ](/ja/products/wandb/platform/hosting/data-security/secure-storage-connector)使用時) | | X |
| 専用クラウド | | |
| 専用クラウド ([BYOB ストレージ](/ja/products/wandb/platform/hosting/data-security/secure-storage-connector)使用時) | | X |
| セルフマネージド | X | X |

<Note>
  メモ
  セキュアストレージコネクタは現在、Google Cloud Platform と Amazon Web Services でのみ利用できます。
</Note>
