メインコンテンツへスキップ
W&B App を使って対話的に、または W&B Python SDK を使ってプログラム的にアーティファクトを削除できます。アーティファクトを削除すると、W&B はそのアーティファクトを ソフトデリート としてマークします。つまり、アーティファクトは削除対象としてマークされますが、ファイルはストレージから即座には削除されません。 アーティファクトの内容は、ソフトデリート、つまり削除保留状態のまま、定期的に実行されるガーベジコレクションプロセスが削除対象としてマークされたすべてのアーティファクトを確認するまで保持されます。ガーベジコレクションプロセスは、そのアーティファクトと関連ファイルが、それ以前または以後のいずれのアーティファクトバージョンでも使用されていない場合に、関連ファイルをストレージから削除します。

アーティファクトのガーベジコレクションワークフロー

次の図は、アーティファクトのガーベジコレクションの全体的な流れを示しています。 W&B からアーティファクトをいつ削除するかは、TTL ポリシーでスケジュールできます。詳しくは、Artifact TTL policy を使用したデータ保持の管理 を参照してください。
TTL ポリシー、W&B Python SDK、または W&B App によって削除された Artifacts は、まずソフトデリートされます。ソフトデリートされたアーティファクトは、その後ガベージコレクションされ、最終的に完全に削除されます。
entity、プロジェクト、またはアーティファクトコレクションを削除すると、このページで説明しているアーティファクト削除プロセスがトリガーされます。run を削除する際に、その run に関連付けられたアーティファクトも削除することを選択した場合、それらのアーティファクトも同じソフトデリートとガベージコレクションのワークフローに従います。

アーティファクトバージョンを削除する

W&B App を使って対話的に、または W&B Python SDK を使ってプログラムで、アーティファクトバージョンを削除できます。
アーティファクトバージョンを削除するには:
  1. 削除したいアーティファクトバージョンを含むプロジェクトに移動します。
  2. Artifacts タブを選択します。
  3. アーティファクトタイプの一覧から、削除したいバージョンを含むアーティファクトのタイプを選択します。
  4. 削除したいアーティファクトバージョンの横にある三点リーダー(...)アイコンをクリックします。
  5. ドロップダウンから Delete Version を選択します。

複数のアーティファクトバージョンを削除する

次のコード例は、複数のアーティファクトバージョンを削除する方法を示しています。wandb.Api.run() に、アーティファクトを作成した entity、プロジェクト名、run ID を引数として指定します。これにより、その run で作成されたすべてのアーティファクトバージョンにアクセスできる run オブジェクトが返されます。次に、アーティファクトバージョンを順に処理し、条件に一致するものを削除します。
アーティファクトバージョンと、それに関連付けられているすべてのエイリアスを削除するには、delete_aliases パラメータを Truewandb.Artifact.delete(delete_aliases=True))に設定します。
<entity><project><run_id><artifact_name> の各プレースホルダーを、ご自身の値に置き換えてください。
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"アーティファクトバージョンを削除中: {artifact.name}")
        artifact.delete(delete_aliases=True)

特定のエイリアスが付与された複数のアーティファクトバージョンを削除する

次のコードは、特定のエイリアスが付与された複数のアーティファクトバージョンを削除する方法を示します。 <entity><project><run_id><artifact_name><alias> の各プレースホルダーをご自身の値に置き換えてください:
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>"

# エイリアス 'v3' および 'v4' を持つrunに記録されたアーティファクトを削除する
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)

アーティファクトコレクションを削除する

アーティファクトコレクションを削除するには、次の手順を実行します。
  1. 削除したいアーティファクトコレクションに移動します。
  2. アーティファクトコレクション名の横にある三点リーダーアイコン(...)を選択します。
  3. ドロップダウンメニューから Delete を選択します。

保護されたエイリアスと削除権限

保護されたエイリアスを持つアーティファクトには、特別な削除制限が適用されます。Protected aliases は、W&B Registry 内でレジストリ管理者が設定し、許可されていない削除を防ぐためのエイリアスです。
保護されたエイリアスに関する重要な注意事項:
  • 保護されたエイリアスを持つアーティファクトは、レジストリ管理者以外は削除できません。
  • レジストリ内では、レジストリ管理者は保護されたアーティファクトバージョンのリンクを解除し、保護されたエイリアスを含むコレクションやレジストリを削除できます。
  • ソースアーティファクトについて: ソースアーティファクトが保護されたエイリアスを持つレジストリにリンクされている場合、どのユーザーも削除できません。
  • レジストリ管理者はソースアーティファクトから保護されたエイリアスを削除したうえで、そのソースアーティファクト自体を削除できます。

W&B のホスティング形態に応じてガベージコレクションを有効化する

W&B の共有クラウドを使用している場合、ガベージコレクションはデフォルトで有効になっています。W&B のホスティング形態によっては、ガベージコレクションを有効にするために追加の手順が必要になる場合があります。これには次のものが含まれます。
  • GORILLA_ARTIFACT_GC_ENABLED 環境変数を true に設定する: GORILLA_ARTIFACT_GC_ENABLED=true
  • AWSGoogle Cloud、または Minio などのストレージプロバイダを使用している場合は、バケットのバージョニングを有効にする。Azure を使用している場合は、ソフト削除を有効化する。
    Azure のソフト削除は、他のストレージプロバイダにおけるバケットのバージョニングと同等です。
次の表は、デプロイタイプに応じてガベージコレクションを有効にするための要件をどのように満たせばよいかを示します。 X は、その要件を満たす必要があることを示します。
環境変数バージョニングを有効化
共有クラウド
Secure storage connector を使った共有クラウドX
Dedicated Cloud
Secure storage connector を使った Dedicated CloudX
Self-Managed クラウドXX
Self-Managed オンプレミスXX
注意 Secure storage connector は現在、Google Cloud Platform と Amazon Web Services でのみ利用可能です。