メインコンテンツへスキップ
W&B Python SDK を使用して、W&B Runs から artifacts を構築します。ファイル、ディレクトリ、URI、並行実行からのファイルを artifacts に追加できます。ファイルをアーティファクトに追加した後、W&B サーバーまたは自分のプライベートサーバーに保存します。 Amazon S3 に保存されているファイルなど、外部ファイルのトラッキング方法については、外部ファイルのトラッキングページをご覧ください。

アーティファクトの構築方法

3 つのステップで W&B Artifact を構築します。

1. wandb.Artifact() でアーティファクト Python オブジェクトを作成する

wandb.Artifact() クラスを初期化して、アーティファクトオブジェクトを作成します。以下のパラメータを指定します。
  • Name: アーティファクトの名前を指定します。名前は一意で説明的、かつ記憶しやすいものにしてください。Artifacts の名前は、W&B アプリ UI でアーティファクトを識別するとき、またそのアーティファクトを使用したいときに使用します。
  • Type: タイプを指定します。タイプはシンプルで説明的で、機械学習パイプラインの単一ステップに対応するものでなければなりません。一般的なアーティファクトタイプには 'dataset''model' があります。
指定した「name」と「type」は、有向非循環グラフを作成するために使用されます。これは、W&B アプリでアーティファクトのリネージを見ることができることを意味します。詳細については、アーティファクトグラフの探索とトラバースをご覧ください。
Artifacts は、たとえ異なる types パラメータを指定しても、同じ名前を持つことはできません。つまり、cats という名前のタイプ dataset のアーティファクトを作成し、同じ名前のタイプ model のアーティファクトを作成することはできません。
アーティファクトオブジェクトを初期化する際に、オプションで説明とメタデータを提供できます。利用可能な属性とパラメータの詳細については、Python SDK Reference Guide の wandb.Artifact クラス定義をご覧ください。 次の例は、データセットアーティファクトを作成する方法を示しています。
先行のコードスニペット内の文字列の引数を、自分の 固有の名前とタイプで置き換えてください。

2. アーティファクトに 1 つ以上のファイルを追加する

ファイル、ディレクトリ、外部 URI リファレンス(例: Amazon S3)などをアーティファクトメソッドで追加します。たとえば、単一のテキストファイルを追加するには、add_file メソッドを使用します。
また、複数のファイルを add_dir メソッドで追加することもできます。ファイルを追加する方法の詳細については、アーティファクトの更新をご覧ください。

3. アーティファクトを W&B サーバーに保存する

最後に、アーティファクトを W&B サーバーに保存します。Artifacts は run に関連付けられます。したがって、run オブジェクトの log_artifact() メソッドを使用してアーティファクトを保存します。
W&B Run の外でアーティファクトを作成することもできます。詳細については、外部ファイルのトラッキングをご覧ください。
log_artifact の呼び出しは、パフォーマンスを向上させるために非同期で行われます。これにより、ループ内でアーティファクトをログする際に予期しない挙動が生じることがあります。たとえば、
アーティファクトバージョン v0 は、そのメタデータにインデックス 0 があることを保証しません。アーティファクトは任意の順序でログされる可能性があるためです。

アーティファクトにファイルを追加

以下のセクションでは、異なるファイルタイプおよび並行実行からのアーティファクトを構築する方法を説明します。 以下の例では、複数のファイルとディレクトリ構造を持つプロジェクトディレクトリを前提とします。

単一ファイルを追加

以下のコードスニペットは、ローカルの単一ファイルをアーティファクトに追加する方法を示しています。
たとえば、作業中のローカルディレクトリに 'file.txt' というファイルがあるとします。
アーティファクトは次の内容を持つようになります。
オプションで、アーティファクト内の name パラメータの希望するパスを渡して下さい。
アーティファクトは次のように保存されます。

複数ファイルを追加

以下のコードスニペットは、ローカルのディレクトリ全体をアーティファクトに追加する方法を示しています。
以下の API 呼び出しは、以下のアーティファクトコンテンツを生成します。

URI リファレンスを追加

アーティファクトは、URI が W&B ライブラリが扱えるスキームを持つ場合、再現性のためにチェックサムやその他の情報をトラッキングします。 add_reference メソッドを使用して、アーティファクトに外部 URI リファレンスを追加します。 'uri' 文字列を自分の URI で置き換えてください。オプションで、アーティファクト内の name パラメータの希望するパスを渡して下さい。
現在、アーティファクトは以下の URI スキームをサポートしています。
  • http(s)://: HTTP 上でアクセス可能なファイルへのパス。HTTP サーバーが ETagContent-Length レスポンスヘッダーをサポートしている場合、アーティファクトはエタグとサイズメタデータの形でチェックサムをトラッキングします。
  • s3://: S3 内のオブジェクトまたはオブジェクトプレフィックスへのパス。アーティファクトは、参照されたオブジェクトのためのチェックサムとバージョン管理情報(バケットにオブジェクトバージョン管理が有効になっている場合)をトラッキングします。オブジェクトプレフィックスは、プレフィックスの下にあるオブジェクトを最大 10,000 個まで含むように展開されます。
  • gs://: GCS 内のオブジェクトまたはオブジェクトプレフィックスへのパス。アーティファクトは、参照されたオブジェクトのためのチェックサムとバージョン管理情報(バケットにオブジェクトバージョン管理が有効になっている場合)をトラッキングします。オブジェクトプレフィックスは、プレフィックスの下にあるオブジェクトを最大 10,000 個まで含むように展開されます。
以下の API 呼び出しは、以下のアーティファクトを生成します。

並行実行からアーティファクトにファイルを追加

大規模な datasets または分散トレーニングの場合、複数の並行 run が単一のアーティファクトに貢献する必要があるかもしれません。