アーティファクトを構築する
W&B アーティファクト は、次の 3 つのステップで構築します。wandb.Artifact() でアーティファクトの Python オブジェクトを作成する
wandb.Artifact() クラスを初期化して、アーティファクト オブジェクトを作成します。次のパラメーターを指定してください。
- Name: アーティファクトの名前です。一意でわかりやすく、覚えやすい名前を付けてください。
- Type: アーティファクトのタイプです。シンプルでわかりやすく、機械学習パイプラインの 1 つのステップに対応するタイプを指定してください。一般的なアーティファクト タイプには
'dataset'や'model'があります。
W&B は、指定された「name」と「type」を使用して、W&B App 内に有向非巡回グラフを作成します。詳細については、Explore and traverse artifact graphs を参照してください。
"artifact-name" と "artifact-type" は、実際の値に置き換えてください。
タイプが異なる場合でも、同じ名前のアーティファクトを複数作成することはできません。たとえば、タイプが
dataset の cats という名前のアーティファクトと、タイプが model の cats という名前の別のアーティファクトを作成することはできません。MD5 は引き続きデフォルトのダイジェストアルゴリズムです。W&B Python SDK 0.29.0 以降では、
digest_algorithm="XXH128" を設定することで、新しいアーティファクトに対してより高速なハッシュ処理を選択できます。MD5 を使用している既存のアーティファクト コレクションでは、引き続き MD5 が使用されます。0.29.0 より前のバージョンの SDK では、XXH128 のエントリを含むアーティファクトを Artifact.verify() で検証できません。wandb.Artifact クラスの定義を参照してください。
アーティファクトに 1 つ以上のファイルを追加する
アーティファクト オブジェクトには、ファイル、ディレクトリ、外部 URI 参照 (Amazon S3 など) などを追加できます。 ファイルを 1 つ追加するには、アーティファクト オブジェクトのArtifact.add_file() メソッドを使用します。
Artifact.add_dir() メソッドを使用します:
アーティファクトを W&B サーバーに保存する
アーティファクトを W&B サーバーに保存します。保存するには、Run オブジェクトのwandb.Run.log_artifact() メソッドを使用します。
アーティファクトにファイルを追加する
以下のセクションでは、さまざまなタイプのオブジェクトをアーティファクトに追加する方法を説明します。以降の例では、次のような構造のディレクトリがあるものとします。単一のファイルを追加する
ローカルファイルを 1 つアーティファクトに追加するには、wandb.Artifact.add_file() を使用します。local_path パラメーターにファイルのローカルパスを指定します:
'hello.txt' というファイルがあるとします。
name パラメーターに別の名前を渡すと、アーティファクト オブジェクト内でファイルをリネームできます。前の例に続けて、次のように記述します。
複数のファイルを追加する
ローカルディレクトリ内の複数のファイルをアーティファクトに追加するには、wandb.Artifact.add_dir() メソッドを使用します。local_path パラメーターには、対象ディレクトリのローカルパスを指定します。
URI 参照を追加する
URI のスキームが W&B ライブラリでサポートされている場合、アーティファクトは再現性を確保するためにチェックサムなどの情報をトラッキングします。wandb.Artifact.add_reference() メソッドを使用して、外部 URI 参照をアーティファクトに追加します。'uri' 文字列はご自身の URI に置き換えてください。必要に応じて、アーティファクト内の配置先パスを name パラメーターに指定することもできます。
http(s)://: HTTP 経由でアクセスできるファイルへのパスです。HTTP サーバーがETagおよびContent-Length応答ヘッダーをサポートしている場合、アーティファクトは ETag 形式のチェックサムとサイズのメタデータをトラッキングします。s3://: S3 内のオブジェクトまたはオブジェクトの接頭辞へのパスです。アーティファクトは、参照先のオブジェクトのチェックサムとバージョン管理情報 (バケットでオブジェクトのバージョン管理が有効な場合) をトラッキングします。オブジェクトの接頭辞は、その接頭辞配下のオブジェクトを含むように展開されます (最大 10,000 オブジェクト)。gs://: GCS 内のオブジェクトまたはオブジェクトの接頭辞へのパスです。アーティファクトは、参照先のオブジェクトのチェックサムとバージョン管理情報 (バケットでオブジェクトのバージョン管理が有効な場合) をトラッキングします。オブジェクトの接頭辞は、その接頭辞配下のオブジェクトを含むように展開されます (最大 10,000 オブジェクト)。
並列 run からアーティファクトにファイルを追加する
大規模なデータセットや分散トレーニングでは、複数の run を並列に実行し、それぞれの出力を 1 つのアーティファクトにまとめる必要がある場合があります。ログしたアーティファクトやその他のメタデータのパスを検索する
次のコードスニペットは、W&B Public API を使用して run 内のファイルを一覧表示し、各ファイルの名前と URL を取得する方法を示しています。<entity/project/run-id> プレースホルダーをご自身の値に置き換えてください。