> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-hivemind-launch.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# コレクションを作成する

> W&B Registry 内でリンクされた artifact バージョンのコレクションを作成し、受け入れ可能な artifact タイプを設定します。

*コレクション* は、レジストリ内でリンクされた artifact バージョンの集合です。各コレクションは、個別のタスクやユースケースを表します。

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

別の例として、"chatbot" という名前のレジストリがあり、その中にモデル artifact 用のコレクション、データセット artifact 用の別のコレクション、さらにファインチューニングしたモデル artifact 用のコレクションを含めることができます。

レジストリとそのコレクションをどのように整理するかは、ユーザー次第です。

<Note>
  W\&B Model Registry に慣れている場合は、Registered Models をご存じかもしれません。Model Registry の Registered Models は、現在 W\&B Registry ではコレクションと呼ばれています。
</Note>

<div id="collection-types">
  ## コレクションのタイプ
</div>

各コレクションでは、1種類のアーティファクトの\_タイプ\_のみを受け入れます。指定したタイプによって、あなたや同じ組織の他のメンバーがそのコレクションにリンクできるアーティファクトの種類が制限されます。

<Note>
  アーティファクト タイプは、Python などのプログラミング言語におけるデータ型に似たものと考えることができます。このたとえでは、コレクションには文字列、整数、浮動小数点数を保存できますが、これらのデータ型を混在させることはできません。
</Note>

たとえば、"dataset" アーティファクト タイプを受け入れるコレクションを作成したとします。これは、タイプが "dataset" の今後のアーティファクトバージョンのみをこのコレクションにリンクできることを意味します。同様に、"model" アーティファクト タイプのみを受け入れるコレクションには、タイプが "model" のアーティファクトのみをリンクできます。

<Note>
  アーティファクトのタイプは、そのアーティファクト objectを作成するときに指定します。`wandb.Artifact()` の `type` フィールドに注目してください。

  ```python theme={null}
  import wandb

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

    # artifact objectを作成します
    artifact = wandb.Artifact(
        name="<artifact_name>", 
        type="<artifact_type>"
        )
  ```
</Note>

コレクションを作成するときは、あらかじめ定義されたアーティファクト タイプの一覧から選択できます。利用できるアーティファクト タイプは、そのコレクションが属するレジストリによって異なります。

アーティファクトをコレクションにリンクする前、または新しいコレクションを作成する前に、[そのコレクションが受け入れるアーティファクトのタイプを確認してください](#check-the-types-of-artifact-that-a-collection-accepts)。

<div id="check-the-types-of-artifact-that-a-collection-accepts">
  ### コレクションが受け入れる artifact タイプを確認する
</div>

コレクションにリンクする前に、そのコレクションで受け入れられる artifact タイプを確認してください。コレクションが受け入れる artifact タイプは、W\&B Python SDK を使用してプログラムから確認することも、W\&B App でインタラクティブに確認することもできます。

<Note>
  コレクションで受け入れられない artifact タイプの artifact をリンクしようとすると、エラーメッセージが表示されます。
</Note>

<Tabs>
  <Tab title="W&B App">
    受け入れられる artifact タイプは、ホームページ上の レジストリ card または レジストリ の Settings ページで確認できます。

    どちらの方法でも、まず W\&B Registry にアクセスしてください。

    W\&B Registry のホームページでは、対象の レジストリ の レジストリ card までスクロールすると、受け入れられる artifact タイプを確認できます。レジストリ card 内の灰色の横長の楕円に、その レジストリ が受け入れる artifact タイプが表示されます。

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/TmmFTIPGtNLf7lqr/images/registry/artifact_types_model_card.png?fit=max&auto=format&n=TmmFTIPGtNLf7lqr&q=85&s=e6e82d1187a2dcb99a0e5fe4a486ab13" alt="Artifact タイプの選択" width="3416" height="1622" data-path="images/registry/artifact_types_model_card.png" />
    </Frame>

    たとえば、次の画像は W\&B Registry のホームページに複数の レジストリ card が表示されている例です。**Model** の レジストリ card には、**model** と **model-new** の 2 つの artifact タイプが表示されています。

    レジストリ の Settings ページで受け入れられる artifact タイプを表示するには:

    1. Settings を表示したい レジストリ card をクリックします。
    2. 右上の gear icon をクリックします。
    3. **Accepted artifact types** フィールドまでスクロールします。
  </Tab>

  <Tab title="Python SDK（ベータ）">
    W\&B Python SDK を使用して、レジストリ が受け入れる artifact タイプをプログラムから確認します。

    ```python theme={null}
    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)
    ```

    <Note>
      次の コードスニペット では run を初期化しない点に注意してください。これは、W\&B API をクエリするだけで、experiment や artifact などをトラッキングしない場合は、run を作成する必要がないためです。
    </Note>
  </Tab>
</Tabs>

コレクションが受け入れる artifact タイプがわかったら、[コレクションを作成](#create-a-collection)できます。

<div id="create-a-collection">
  ## コレクションを作成する
</div>

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

<div id="programmatically-create-a-collection">
  ### プログラムでコレクションを作成する
</div>

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

```python theme={null}
f"wandb-registry-{registry_name}/{collection_name}"
```

ここで、`registry_name` はレジストリの名、`collection_name` はコレクションの名です。レジストリ名には必ず接頭辞 `wandb-registry-` を付けてください。

<Note>
  存在しないコレクションにアーティファクトをリンクしようとすると、W\&B が自動的にコレクションを作成します。既存のコレクションを指定した場合、W\&B はそのコレクションにアーティファクトをリンクします。
</Note>

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

```python theme={null}
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)
```

<div id="interactively-create-a-collection">
  ### インタラクティブにコレクションを作成する
</div>

以下の手順では、W\&B Registry を使用してインタラクティブにコレクションを作成する方法を説明します。

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-docs-hivemind-launch/TmmFTIPGtNLf7lqr/images/registry/create_collection.gif?s=19dbdab0ef7150d5fe4e1a22574de2ec" alt="新しいコレクションを作成" width="3612" height="2142" data-path="images/registry/create_collection.gif" />
</Frame>
