アーティファクト内のファイルの一部に変更を加える必要がある場合、元のアーティファクトのサイズがかなり大きい場合は、インクリメンタルアーティファクトを作成することをお勧めします。
新しいアーティファクトバージョンをゼロから作成する
新しいアーティファクトバージョンを作成する方法は、シングル run と分散 run による2つがあります。それぞれ次のように定義されています:- シングル run: シングル run が新しいバージョンのすべてのデータを提供します。これは最も一般的なケースで、run が必要なデータを完全に再現する場合に最適です。例: 保存されたモデルやモデル予測を分析用のテーブルに出力する。
- 分散 run: 複数の run のセットが共同して新しいバージョンのすべてのデータを提供します。これは、複数の run が並行してデータを生成する分散ジョブに最適です。例: モデルを分散的に評価し、予測を出力する。
wandb.Artifact
API に渡すと、新しいアーティファクトを作成し、それに v0
エイリアスを割り当てます。同じアーティファクトに再度ログを記録する際に内容をチェックサムします。アーティファクトが変更されている場合、W&B は新しいバージョン v1
を保存します。
プロジェクト内に既存のアーティファクトと一致する名前とアーティファクトタイプを wandb.Artifact
API に渡すと、W&B は既存のアーティファクトを取得します。取得されたアーティファクトはバージョンが 1 より大きくなります。

シングル run
アーティファクト内のすべてのファイルを生成するシングル run によって、新しいバージョンのアーティファクトをログします。このケースは、シングル run がアーティファクト内のすべてのファイルを生成する場合に発生します。 ユースケースに基づいて、以下のタブのいずれかを選択して、run 内または run 外で新しいアーティファクトバージョンを作成してください:- Inside a run
- Outside of a run
W&B run 内でアーティファクトバージョンを作成します:
wandb.init
を使って run を作成。wandb.Artifact
で新しいアーティファクトを作成するか、既存のアーティファクトを取得。.add_file
を使用してファイルをアーティファクトに追加。.log_artifact
を使ってアーティファクトを run にログ。
分散 run
バージョンをコミットする前に、複数の run が共同で作業します。これは、上記のシングル run モードとは対照的です。こちらは1つの run が新しいバージョンのすべてのデータを提供します。- コレクション内の各 run は、同じバージョンで共同作業をするために、同じユニークな ID (
distributed_id
と呼ばれる) を認識している必要があります。デフォルトでは、存在する場合、W&B は run のgroup
を、wandb.init(group=GROUP)
によって設定されたdistributed_id
として使用します。 - バージョンを「コミット」し、その状態を永続的にロックする最終 run が必要です。
- 協調的なアーティファクトに追加するには
upsert_artifact
を使用し、コミットを最終的にするにはfinish_artifact
を使用します。
upsert_artifact
を使って同じアーティファクトに異なる画像ファイルを追加します。
Run 1
Run 2
Run 3
Run 1 と Run 2 が完了した後に実行する必要があります。finish_artifact
を呼び出す Run は、アーティファクトにファイルを含めることができますが、必須ではありません。
既存のバージョンから新しいアーティファクトバージョンを作成する
前のアーティファクトバージョンからファイルのサブセットを追加、変更、または削除して、変更されていないファイルを再インデックスする必要はありません。前のアーティファクトバージョンからファイルのサブセットを追加、変更、または削除すると、新しいアーティファクトバージョンが作成され、これをインクリメンタルアーティファクトと呼びます。
- add: 新しいバッチを収集した後、定期的にデータセットに新しいファイルのサブセットを追加します。
- remove: 重複ファイルをいくつか発見し、アーティファクトからそれらを削除することを希望します。
- update: ファイルのサブセットに対する注釈を修正し、古いファイルを正しいものと置き換えます。
単一の run で、または複数の run (分散モード) でインクリメンタルアーティファクトを作成できます。
- インクリメンタル変更を行いたいアーティファクトバージョンを取得します:
- Inside a run
- Outside of a run
- 以下の方法でドラフトを作成します:
- 次のバージョンで見たいインクリメンタルな変更を行います。既存のエントリーを追加、削除、または変更することができます。
- Add
- Remove
- Modify
add_file
メソッドで既存のアーティファクトバージョンにファイルを追加します:add_dir
メソッドを使用してディレクトリを追加することで、複数のファイルを追加することもできます。- 最後に、変更をログまたは保存します。以下のタブは、W&B run の内外で変更を保存する方法を示しています。適切なユースケースに応じてタブを選択してください:
- Inside a run
- Outside of a run
- Inside a run
- Outside of a run