外部ファイルをトラッキングしない artifact をログすると、W&Bはartifact のファイルをW&Bサーバーに保存します。これは、W&B Python SDKでartifact をログする場合のデフォルトの動作です。外部ファイルをトラッキングする artifact をログすると、W&Bはobject のETagやサイズなど、そのobject に関するメタデータをログします。バケット でobject のバージョン管理が有効になっている場合は、バージョンIDもログされます。
external cloud storage bucket内のartifactをトラッキングする
wandb.init()でrunを初期化します。wandb.Artifact()でartifactオブジェクトを作成します。- artifactオブジェクトの
wandb.Artifact.add_reference()methodを使用して、バケット pathへの参照を指定します。 run.log_artifact()でartifactのメタデータをログします。
datasets/mnist/ ディレクトリには、画像のコレクションが含まれています。datasets/mnist/ ディレクトリ内の画像をデータセット artifact としてトラッキングするには、次を指定します。
"mnist"など、artifact の名を指定します。- artifact オブジェクト (
wandb.Artifact(type="dataset")) を作成するときに、typeパラメーターを"dataset"に設定します。 wandb.Artifact.add_reference()を呼び出すときに、datasets/mnist/ディレクトリへのパスを Amazon S3 URI (s3://my-bucket/datasets/mnist/) として指定します。run.log_artifact()で artifact をログします。
mnist:latest を作成します。
W&B Artifacts は、CoreWeave Storage や MinIO を含む、Amazon S3 互換のあらゆるインターフェースをサポートしています。以下で説明するスクリプトは、
AWS_S3_ENDPOINT_URL
環境変数で CoreWeave Storage または MinIO サーバーを指定すれば、どちらのプロバイダでもそのまま動作します。external cloud storage bucket から artifact をダウンロードする
W&B では、ワークフローの一環としてファイルを上書きする場合は、ストレージバケットで’オブジェクトのバージョン管理’を有効にすることを推奨しています。バージョン管理が有効になっていれば、artifact のログ後にファイルが上書きされていても、artifact のダウンロード時に W&B は常にそのファイルの正しいバージョンを取得できます。ユースケースに応じて、オブジェクトのバージョン管理を有効にする手順を参照してください: AWS, Google Cloud, Azure.
バケットから外部データを追加してダウンロードする
Google Cloud または Azure で、参照によって artifact をトラッキングする方法をエンドツーエンドで解説した以下のReportsをご覧ください。
クラウドストレージの認証情報
AWS では、バケットが設定済みユーザーのデフォルトリージョンにない場合、バケットのリージョンに合わせて
AWS_REGION 環境変数を設定する必要があります。
ファイルシステム上のartifactをトラッキングする
wandb.init()でrunを初期化します。wandb.Artifact()でartifact オブジェクトを作成します。- artifact オブジェクトの
wandb.Artifact.add_reference()methodを使用して、ファイルシステムパスへの参照を指定します。 run.log_artifact()でartifactのメタデータをログします。
< >) で囲まれた値は、ご自身の値に置き換えてください。
file:// プレフィックスです。2 つ目の構成要素は、ファイルシステムのルート / です。残りの構成要素は、トラッキングしたいディレクトリまたはファイルへのパスです。
たとえば、/mount に次のような構造のファイルシステムがマウントされているとします。
datasets/mnist/ ディレクトリをデータセットのartifactとしてトラッキングするには、次のコードスニペットを使用できます。
/mount/datasets/mnist/ 配下に保存されているファイルを参照するreference artifact mnist:latest が作成されます。
同様に、models/cnn/my_model.h5 に保存されているモデルをトラッキングするには、次のコード例を使用できます。
外部ファイルシステムからartifactをダウンロードする
wandb.init()でrunを初期化します。- ダウンロードするartifactを指定するには、
wandb.Run.use_artifact()methodを使用します。 - artifactの
wandb.Artifact.download()methodをcallして、参照先のファイルシステムからファイルをダウンロードします
/mount/datasets/mnist の内容を artifacts/mnist:v0/ ディレクトリにコピーします。
Artifact.download() は、artifact を再構築できない場合にエラーをスローします。たとえば、artifact に上書きされたファイルへの参照が含まれていると、その artifact は再構築できなくなるため、Artifact.download() はエラーをスローします。