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

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

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

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

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

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

<Note>
  W\&B モデルレジストリに精通している場合は、登録されたモデルについても知識があるかもしれません。モデルレジストリ内の登録されたモデルは、今後は W\&B レジストリのコレクションと呼ばれます。
</Note>

## コレクションのタイプ

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

<Note>
  アーティファクトのタイプは、プログラミング言語、例えば Python のデータタイプに似ています。この類推では、コレクションは文字列、整数、または浮動小数点数を格納できますが、これらのデータタイプの混合はできません。
</Note>

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

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

  ```python theme={null}
  import wandb

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

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

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

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

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

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

<Note>
  そのアーティファクト タイプを受け入れないコレクションにアーティファクトをリンクしようとすると、エラーメッセージが表示されます。
</Note>

<Tabs>
  <Tab title="W&B App">
    ホームページまたはレジストリの設定ページで、受け入れられるアーティファクトタイプをレジストリカードで見つけることができます。

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

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

    <Frame>
      <img src="https://mintcdn.com/wb-21fd5541-feat-cli-docs-generator/odvsXuVtRq39LmE_/images/registry/artifact_types_model_card.png?fit=max&auto=format&n=odvsXuVtRq39LmE_&q=85&s=df4d77fcda33f824c8c2096c0cda6491" width="3416" height="1622" data-path="images/registry/artifact_types_model_card.png" />
    </Frame>

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

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

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

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

    ```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>
      実験やアーティファクトの追跡をせず、W\&B API に問い合わせるだけの場合は、実行を初期化する必要がないため、後述のコードスニペットで実行を初期化しないことに注意してください。
    </Note>
  </Tab>
</Tabs>

コレクションが受け入れるアーティファクトのタイプを知ったら、[コレクションを作成します](#create-a-collection)。

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

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

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

`wandb.init.link_artifact()` メソッドを使用して、アーティファクトをコレクションにリンクします。`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 を初期化
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** ボタンをクリックします。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-feat-cli-docs-generator/odvsXuVtRq39LmE_/images/registry/create_collection.gif?s=70560710f5287ca6128e0a64e83f75d6" width="3612" height="2142" data-path="images/registry/create_collection.gif" />
</Frame>
