メインコンテンツまでスキップ

新しいアーティファクトのバージョンを作成

単一のrunを使って新しいアーティファクトバージョンを作成するか、分散ライターを共同で使用して作成するか、前のバージョンに対するパッチとして作成します。

3つの方法で新しいアーティファクトバージョンを作成します:

  • シンプル:単一のrunが新しいバージョンのすべてのデータを提供します。これは最も一般的なケースであり、runが必要なデータを完全に再作成する場合に最適です。例えば:分析用のテーブルに保存されたモデルやモデル予測を出力する場合。
  • コラボレーティブ:一連のrunが新しいバージョンのすべてのデータを共同で提供します。これは、データを生成する複数のrunを持つ分散ジョブに最適です。例えば:モデルを分散して評価し、予測を出力する場合。
  • パッチ:(近日公開)単一のrunが適用すべき差分のパッチを提供します。これは、既存のデータをすべて再作成することなく、runがアーティファクトにデータを追加したい場合に最適です。例えば:毎日ウェブスクレイピングを実行して作成されるゴールデンデータセットがある場合、このケースではrunがデータセットに新しいデータを追加することを望みます。 アーティファクト概要図

シンプルモード

アーティファクト内のすべてのファイルを生成する単一のrunで新しいバージョンのアーティファクトをログするには、シンプルモードを使用してください:

with wandb.init() as run:
artifact = wandb.Artifact("artifact_name", "artifact_type")
# `.add`, `.add_file`, `.add_dir`, および`.add_reference` を使って
# アーティファクトにファイルとアセットを追加
artifact.add_file("image1.png")
run.log_artifact(artifact)

Artifact.save() を使用して、runを開始せずにバージョンを作成します。

artifact = wandb.Artifact("artifact_name", "artifact_type")
# `.add`, `.add_file`, `.add_dir`, そして `.add_reference` を使って
# アーティファクトにファイルやアセットを追加する
artifact.add_file("image1.png")
artifact.save()

コラボレーティブモード

コラボレーティブモードを使用して、複数のrunsがバージョンを共同で作成することができます。コラボレーティブモードを使用する際には、次の2つの重要な点を理解しておく必要があります。

  1. コレクション内の各Runは、同じ一意のID(distributed_idと呼ばれる)を認識して、同じバージョンで協力する必要があります。デフォルトでは、Weights & Biasesは、wandb.init(group=GROUP)で設定されたrunのgroupdistributed_idとして使用します(もしある場合)。
  2. 状態を永久にロックするバージョンを"コミット"する最終的なrunが必要です。 次の例を考えてみましょう。log_artifactを使う代わりに、upsert_artifactを使ってコラボレーションアーティファクトを追加し、finish_artifactを使ってコミットを確定します。

Run 1:

with wandb.init() as run:
artifact = wandb.Artifact("artifact_name", "artifact_type")
# アーティファクトにファイルやアセットを追加する方法は
# `.add`, `.add_file`, `.add_dir`, そして `.add_reference` を使います
artifact.add_file("image1.png")
run.upsert_artifact(artifact, distributed_id="my_dist_artifact")

Run 2:

with wandb.init() as run:
artifact = wandb.Artifact("artifact_name", "artifact_type")
# アーティファクトにファイルやアセットを追加するには、
# `.add`、`.add_file`、`.add_dir`、`.add_reference`を使用します
artifact.add_file("image2.png")
run.upsert_artifact(artifact, distributed_id="my_dist_artifact")

Run 3

Run 1およびRun 2が完了した後に実行する必要があります。finish_artifactを呼び出すRunでは、アーティファクトにファイルを含めることができますが、必ずしも含める必要はありません。

with wandb.init() as run:
artifact = wandb.Artifact("artifact_name", "artifact_type")
# アーティファクトにファイルやアセットを追加する
# `.add`, `.add_file`, `.add_dir`, および `.add_reference`
artifact.add_file("image3.png")
run.finish_artifact(artifact, distributed_id="my_dist_artifact")
Was this page helpful?👍👎