メインコンテンツへスキップ
コレクション は、レジストリ内でリンクされた artifact バージョンの集合です。各コレクションは、個別のタスクやユースケースを表します。 たとえば、1 つのレジストリ内に複数のコレクションを作成できます。各コレクションには、MNIST、CIFAR-10、ImageNet など、それぞれ異なるデータセットが含まれます。 別の例として、“chatbot” という名前のレジストリがあり、その中にモデル artifact 用のコレクション、データセット artifact 用の別のコレクション、さらにファインチューニングしたモデル artifact 用のコレクションを含めることができます。 レジストリとそのコレクションをどのように整理するかは、ユーザー次第です。
W&B Model Registry に慣れている場合は、Registered Models をご存じかもしれません。Model Registry の Registered Models は、現在 W&B Registry ではコレクションと呼ばれています。

コレクションのタイプ

各コレクションでは、1種類のartifactのタイプのみを受け入れます。指定したタイプによって、あなたや同じ組織の他のメンバーがそのコレクションにリンクできるartifactの種類が制限されます。
artifactタイプは、Python などのプログラミング言語におけるデータ型に似たものと考えることができます。このたとえでは、コレクションには文字列、整数、浮動小数点数を保存できますが、これらのデータ型を混在させることはできません。
たとえば、“dataset” artifactタイプを受け入れるコレクションを作成したとします。これは、タイプが “dataset” の今後のartifactバージョンのみをこのコレクションにリンクできることを意味します。同様に、“model” artifactタイプのみを受け入れるコレクションには、タイプが “model” のartifactのみをリンクできます。
artifactのタイプは、そのartifact objectを作成するときに指定します。wandb.Artifact()type フィールドに注目してください。
import wandb

# runを初期化する
with wandb.init(
  entity = "<team_entity>",
  project = "<project>"
  ) as run:

  # artifact objectを作成する
  artifact = wandb.Artifact(
      name="<artifact_name>", 
      type="<artifact_type>"
      )
コレクションを作成するときは、あらかじめ定義されたartifactタイプの一覧から選択できます。利用できるartifactタイプは、そのコレクションが属するレジストリによって異なります。 artifactをコレクションにリンクする前、または新しいコレクションを作成する前に、そのコレクションが受け入れるartifactのタイプを確認してください

コレクションが受け入れる artifact タイプを確認する

コレクションにリンクする前に、そのコレクションで受け入れられる artifact タイプを確認してください。コレクションが受け入れる artifact タイプは、W&B Python SDK を使用してプログラムから確認することも、W&B App でインタラクティブに確認することもできます。
コレクションで受け入れられない artifact タイプの artifact をリンクしようとすると、エラーメッセージが表示されます。
受け入れられる artifact タイプは、ホームページ上の レジストリ card または レジストリ の Settings ページで確認できます。どちらの方法でも、まず W&B Registry にアクセスしてください。W&B Registry のホームページでは、対象の レジストリ の レジストリ card までスクロールすると、受け入れられる artifact タイプを確認できます。レジストリ card 内の灰色の横長の楕円に、その レジストリ が受け入れる artifact タイプが表示されます。
Artifact タイプの選択
たとえば、次の画像は W&B Registry のホームページに複数の レジストリ card が表示されている例です。Model の レジストリ card には、modelmodel-new の 2 つの artifact タイプが表示されています。レジストリ の Settings ページで受け入れられる artifact タイプを表示するには:
  1. Settings を表示したい レジストリ card をクリックします。
  2. 右上の gear icon をクリックします。
  3. Accepted artifact types フィールドまでスクロールします。
コレクションが受け入れる artifact タイプがわかったら、コレクションを作成できます。

コレクションを作成する

レジストリ内にコレクションをインタラクティブまたはプログラムから作成できます。コレクションの作成後は、そのコレクションで受け付けるartifactのタイプを変更できません。

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

wandb.Run.link_artifact() methodを使用して、artifact をコレクションにリンクします。target_path フィールドには、コレクションとレジストリの両方を、次の形式のパスで指定します。
f"wandb-registry-{registry_name}/{collection_name}"
ここで、registry_name はレジストリの名、collection_name はコレクションの名です。レジストリ名には必ず接頭辞 wandb-registry- を付けてください。
存在しないコレクションにartifactをリンクしようとすると、W&B が自動的にコレクションを作成します。既存のコレクションを指定した場合、W&B はそのコレクションにartifactをリンクします。
次のコードスニペットは、プログラムからコレクションを作成する方法を示しています。<> で囲まれた値はご自身の値に置き換えてください。
import wandb

# runを初期化する
with wandb.init(entity = "<team_entity>", project = "<project>") as run:

  # artifactオブジェクトを作成する
  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}"

  # artifactをコレクションにリンクする
  run.link_artifact(artifact = artifact, target_path = target_path)

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

以下の手順では、W&B Registry を使用してインタラクティブにコレクションを作成する方法を説明します。
  1. https://wandb.ai/registry/ の W&B Registry にアクセスします。
  2. レジストリを選択します。
  3. 右上にある Create collection ボタンをクリックします。
  4. Name フィールドにコレクション名を入力します。
  5. Type ドロップダウンからタイプを選択します。あるいは、レジストリでカスタムのartifactタイプが有効になっている場合は、このコレクションで受け付ける 1 つ以上のartifactタイプを入力します。
  6. 必要に応じて、Description フィールドにコレクションの説明を入力します。
  7. 必要に応じて、Tags フィールドに 1 つ以上のタグを追加します。
  8. Link version をクリックします。
  9. Project ドロップダウンから、artifactが保存されているプロジェクトを選択します。
  10. Artifact collection ドロップダウンから、artifactを選択します。
  11. Version ドロップダウンから、コレクションにリンクするartifactのバージョンを選択します。
  12. Create collection ボタンをクリックします。
新しいコレクションを作成