これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.
Manage data
- 1: Delete an artifact
- 2: Manage artifact data retention
- 3: Manage artifact storage and memory allocation
1 - Delete an artifact
App UIまたは W&B SDK を使用して、アーティファクトをインタラクティブに、またはプログラムで削除できます。アーティファクトを削除すると、W&B はそのアーティファクトを 論理削除 としてマークします。つまり、アーティファクトは削除対象としてマークされますが、ファイルはストレージからすぐに削除されるわけではありません。
アーティファクトの内容は、論理削除、つまり削除保留状態のままとなり、定期的に実行されるガベージコレクション プロセスが、削除対象としてマークされたすべてのアーティファクトを確認します。ガベージコレクション プロセスは、アーティファクトとその関連ファイルが、以前または以降のアーティファクト バージョンで使用されていない場合、ストレージから関連ファイルを削除します。
このページのセクションでは、特定のアーティファクト バージョンを削除する方法、アーティファクト コレクションを削除する方法、エイリアスを使用または使用せずにアーティファクトを削除する方法などについて説明します。アーティファクトが W&B から削除されるタイミングは、TTL ポリシーでスケジュールできます。詳細については、アーティファクト TTL ポリシーによるデータ保持の管理 を参照してください。
アーティファクト バージョンを削除する
アーティファクト バージョンを削除するには:
- アーティファクトの名前を選択します。これにより、アーティファクト ビューが展開され、そのアーティファクトに関連付けられているすべてのアーティファクト バージョンが一覧表示されます。
- アーティファクトのリストから、削除するアーティファクト バージョンを選択します。
- ワークスペースの右側にあるケバブ ドロップダウンを選択します。
- 削除を選択します。
アーティファクト バージョンは、delete() メソッドを使用してプログラムで削除することもできます。以下の例を参照してください。
エイリアスを持つ複数のアーティファクト バージョンを削除する
次のコード例は、エイリアスが関連付けられているアーティファクトを削除する方法を示しています。アーティファクトを作成したエンティティ、プロジェクト名、run ID を指定します。
import wandb
run = api.run("entity/project/run_id")
for artifact in run.logged_artifacts():
artifact.delete()
アーティファクトに1つ以上のエイリアスがある場合にエイリアスを削除するには、delete_aliases
パラメータをブール値 True
に設定します。
import wandb
run = api.run("entity/project/run_id")
for artifact in run.logged_artifacts():
# 1つ以上エイリアスを持つ
# アーティファクトを削除するには
# delete_aliases=True を設定します
artifact.delete(delete_aliases=True)
特定のエイリアスを持つ複数のアーティファクト バージョンを削除する
次のコードは、特定のエイリアスを持つ複数のアーティファクト バージョンを削除する方法を示しています。アーティファクトを作成したエンティティ、プロジェクト名、run ID を指定します。削除ロジックを独自のものに置き換えます。
import wandb
runs = api.run("entity/project_name/run_id")
# エイリアス 'v3' と 'v4' を持つアーティファクトを削除します
for artifact_version in runs.logged_artifacts():
# 独自の削除ロジックに置き換えます。
if artifact_version.name[-2:] == "v3" or artifact_version.name[-2:] == "v4":
artifact.delete(delete_aliases=True)
エイリアスを持たないアーティファクトのすべてのバージョンを削除する
次のコードスニペットは、エイリアスを持たないアーティファクトのすべてのバージョンを削除する方法を示しています。wandb.Api
の project
および entity
キーに、プロジェクトとエンティティの名前をそれぞれ指定します。<>
をアーティファクトの名前に置き換えます。
import wandb
# wandb.Api メソッドを使用する場合は、
# エンティティとプロジェクト名を指定してください。
api = wandb.Api(overrides={"project": "project", "entity": "entity"})
artifact_type, artifact_name = "<>" # タイプと名前を指定
for v in api.artifact_versions(artifact_type, artifact_name):
# 'latest' などのエイリアスを持たないバージョンをクリーンアップします。
# 注: ここには、必要な削除ロジックを入れることができます。
if len(v.aliases) == 0:
v.delete()
アーティファクト コレクションを削除する
アーティファクト コレクションを削除するには:
- 削除するアーティファクト コレクションに移動し、その上にカーソルを置きます。
- アーティファクト コレクション名の横にあるケバブ ドロップダウンを選択します。
- 削除を選択します。
delete() メソッドを使用して、プログラムでアーティファクト コレクションを削除することもできます。wandb.Api
の project
および entity
キーに、プロジェクトとエンティティの名前をそれぞれ指定します。
import wandb
# wandb.Api メソッドを使用する場合は、
# エンティティとプロジェクト名を指定してください。
api = wandb.Api(overrides={"project": "project", "entity": "entity"})
collection = api.artifact_collection(
"<artifact_type>", "entity/project/artifact_collection_name"
)
collection.delete()
W&B のホスト方法に基づいてガベージコレクションを有効にする方法
W&B の共有クラウドを使用している場合、ガベージコレクションはデフォルトで有効になっています。W&B のホスト方法によっては、ガベージコレクションを有効にするために追加の手順が必要になる場合があります。これには以下が含まれます。
GORILLA_ARTIFACT_GC_ENABLED
環境変数を true に設定します:GORILLA_ARTIFACT_GC_ENABLED=true
- AWS、GCP 、または Minio などの他のストレージ プロバイダーを使用する場合は、バケットの バージョン管理を有効にします。Azure を使用する場合は、論理削除を有効にします。
Azure の論理削除は、他のストレージ プロバイダーのバケットの バージョン管理と同等です。
次の表は、デプロイメントの種類に基づいてガベージコレクションを有効にするための要件を満たす方法を示しています。
X
は、要件を満たす必要があることを示します。
環境変数 | バージョン管理を有効にする | |
---|---|---|
共有クラウド | ||
セキュア ストレージ コネクタ を使用した共有クラウド | X | |
専用クラウド | ||
セキュア ストレージ コネクタ を使用した専用クラウド | X | |
顧客管理クラウド | X | X |
顧客管理オンプレミス | X | X |
2 - Manage artifact data retention
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 ポリシーが表示されます。

3 - Manage artifact storage and memory allocation
W&B は artifact ファイルを、デフォルトで米国にあるプライベートな Google Cloud Storage バケットに保存します。すべてのファイルは、保存時および転送時に暗号化されます。
機密性の高いファイルについては、Private Hosting をセットアップするか、reference artifacts を使用することをお勧めします。
トレーニング中、W&B はログ、アーティファクト、および設定ファイルを次のローカルディレクトリーにローカルに保存します。
ファイル | デフォルトの場所 | デフォルトの場所を変更するには、以下を設定します: |
---|---|---|
ログ | ./wandb |
wandb.init の dir 、または WANDB_DIR 環境変数を設定 |
artifacts | ~/.cache/wandb |
WANDB_CACHE_DIR 環境変数 |
configs | ~/.config/wandb |
WANDB_CONFIG_DIR 環境変数 |
アップロード用に artifacts をステージング | ~/.cache/wandb-data/ |
WANDB_DATA_DIR 環境変数 |
ダウンロードされた artifacts | ./artifacts |
WANDB_ARTIFACT_DIR 環境変数 |
環境変数を使用して W&B を構成するための完全なガイドについては、環境変数のリファレンスを参照してください。
wandb
が初期化されるマシンによっては、これらのデフォルトフォルダーがファイルシステムの書き込み可能な場所に配置されていない場合があります。これにより、エラーが発生する可能性があります。ローカル artifact キャッシュのクリーンアップ
W&B は artifact ファイルをキャッシュして、ファイルを共有する バージョン 間でのダウンロードを高速化します。時間の経過とともに、このキャッシュディレクトリーが大きくなる可能性があります。wandb artifact cache cleanup
コマンドを実行して、キャッシュを削除し、最近使用されていないファイルを削除します。
次のコードスニペットは、キャッシュのサイズを 1GB に制限する方法を示しています。コードスニペットをコピーして ターミナル に貼り付けます。
$ wandb artifact cache cleanup 1GB