コレクションを作成する

A collection とは、レジストリ内でリンクされたアーティファクト バージョンのセットです。それぞれのコレクションは、個別のタスクやユースケースを表します。

例えば、コアデータセット レジストリ内に複数のコレクションを持つことができます。それぞれのコレクションには、MNIST、CIFAR-10、ImageNet などの異なるデータセットが含まれます。

別の例として、「chatbot」と呼ばれるレジストリがあり、そこにはモデル アーティファクトのコレクション、データセット アーティファクトのコレクション、およびファインチューンされたモデル アーティファクトのコレクションがあります。

レジストリとそのコレクションの整理方法は、あなた次第です。

コレクションのタイプ

それぞれのコレクションは、一種類だけのアーティファクトのタイプを受け入れます。指定したタイプは、組織の他のメンバーと一緒にそのコレクションにリンクできるアーティファクトの種類を制限します。

例えば、「データセット」アーティファクトタイプを受け入れるコレクションを作成したとします。これにより、「データセット」タイプを持つ将来のアーティファクト バージョンのみをこのコレクションにリンクできます。同様に、「モデル」タイプのアーティファクトは、モデルアーティファクトタイプのみを受け入れるコレクションにのみリンクできます。

コレクションを作成するとき、事前に定義されたアーティファクト タイプのリストから選択できます。使用可能なアーティファクト タイプは、そのコレクションが所属するレジストリによります。

アーティファクトをコレクションにリンクしたり新しいコレクションを作成する前に、そのコレクションが受け入れるアーティファクトのタイプを調査してください

コレクションが受け入れるアーティファクトのタイプを確認する

コレクションにリンクする前に、コレクションが受け入れるアーティファクトタイプを確認してください。W&B Python SDK を使用してプログラム的に、もしくは W&B アプリを使用してインタラクティブに、コレクションが受け入れるアーティファクトタイプを確認することができます。

ホームページまたはレジストリの設定ページで、受け入れられるアーティファクトタイプをレジストリカードで見つけることができます。

どちらのメソッドでも、まず W&B レジストリ アプリに移動します。

レジストリ アプリのホームページでは、そのレジストリのレジストリ カードにスクロールして、受け入れられたアーティファクト タイプを表示できます。レジストリカード内の灰色の水平オーバルには、レジストリが受け入れるアーティファクト タイプが記載されています。

例えば、前の図はレジストリ アプリのホームページに複数のレジストリ カードを示しています。Modelレジストリカード内で、2つのアーティファクトタイプ: modelmodel-new を見ることができます。

レジストリの設定ページで受け入れられたアーティファクト タイプを表示するには:

  1. 設定を表示するレジストリカードをクリックします。
  2. 右上のギアアイコンをクリックします。
  3. 受け入れられたアーティファクト タイプ フィールドまでスクロールします。

W&B Python SDK を使用して、レジストリが受け入れるアーティファクト タイプをプログラム的に表示します。

import wandb

registry_name = "<registry_name>"
artifact_types = wandb.Api().project(name=f"wandb-registry-{registry_name}").artifact_types()
print(artifact_type.name for artifact_type in artifact_types)

コレクションが受け入れるアーティファクトのタイプを知ったら、コレクションを作成します

コレクションを作成する

レジストリ内でインタラクティブまたはプログラムでコレクションを作成します。コレクションを作成した後、そのコレクションが受け入れるアーティファクトのタイプを変更することはできません。

プログラム的にコレクションを作成する

wandb.init.link_artifact() メソッドを使用して、アーティファクトをコレクションにリンクします。target_path フィールドに、次の形式のパスとしてコレクションとレジストリの両方を指定します。

f"wandb-registry-{registry_name}/{collection_name}"

ここで、registry_name はレジストリの名前で、collection_name はコレクションの名前です。必ずレジストリ名の前に wandb-registry- プレフィックスを追加してください。

次のコードスニペットは、プログラムでコレクションを作成する方法を示しています。他の <> で囲まれた値を必ず自分の値で置き換えてください。

import wandb

# Run を初期化
run = wandb.init(entity = "<team_entity>", project = "<project>")

# アーティファクトオブジェクトを作成
artifact = wandb.Artifact(
  name = "<artifact_name>",
  type = "<artifact_type>"
  )

registry_name = "<registry_name>"
collection_name = "<collection_name>"
target_path = f"wandb-registry-{registry_name}/{collection_name}"

# アーティファクトをコレクションにリンク
run.link_artifact(artifact = artifact, target_path = target_path)

run.finish()

インタラクティブにコレクションを作成する

以下のステップで、W&B レジストリ アプリ UI を使用してレジストリ内にコレクションを作成する方法を説明します。

  1. W&B アプリ UI の Registry アプリに移動します。
  2. レジストリを選択します。
  3. 右上の Create collection ボタンをクリックします。
  4. Name フィールドにコレクションの名前を入力します。
  5. Type ドロップダウンからタイプを選択します。または、レジストリがカスタムアーティファクトタイプを有効にしている場合は、このコレクションが受け入れる1つ以上のアーティファクトタイプを提供します。
  6. オプションで、Description フィールドにコレクションの説明を追加します。
  7. オプションで、Tags フィールドに1つ以上のタグを追加します。
  8. Link version をクリックします。
  9. Project ドロップダウンから、アーティファクトが保存されているプロジェクトを選択します。
  10. Artifact コレクションのドロップダウンからアーティファクトを選択します。
  11. Version ドロップダウンから、コレクションにリンクしたいアーティファクトバージョンを選択します。
  12. Create collection ボタンをクリックします。