> ## 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 레지스트리 내에서 연결된 아티팩트 버전으로 구성된 컬렉션을 만들고, 허용되는 아티팩트 유형을 설정합니다.

*컬렉션*은 레지스트리 내에서 서로 연결된 아티팩트 버전의 집합입니다. 각 컬렉션은 서로 다른 작업이나 사용 사례를 나타냅니다.

예를 들어, 하나의 레지스트리 내에 여러 컬렉션이 있을 수 있습니다. 각 컬렉션에는 MNIST, CIFAR-10, ImageNet과 같은 서로 다른 데이터셋이 포함될 수 있습니다.

또 다른 예로, "chatbot"이라는 레지스트리에 모델 아티팩트용 컬렉션, 데이터셋 아티팩트용 컬렉션, 파인튜닝된 모델 아티팩트용 컬렉션을 각각 둘 수 있습니다.

레지스트리와 그 안의 컬렉션을 어떻게 구성할지는 사용자가 결정할 수 있습니다.

<Note>
  W\&B Model Registry에 익숙하다면 Registered Models도 알고 있을 것입니다. Model Registry의 Registered Models는 이제 W\&B 레지스트리에서 컬렉션이라고 합니다.
</Note>

<div id="collection-types">
  ## 컬렉션 유형
</div>

각 컬렉션은 오직 하나의 아티팩트 \_유형\_만 허용합니다. 지정한 유형에 따라 여러분과 조직의 다른 구성원이 해당 컬렉션에 연결할 수 있는 아티팩트의 종류가 제한됩니다.

<Note>
  아티팩트 유형은 Python 같은 프로그래밍 언어의 데이터 유형과 비슷하다고 생각하면 됩니다. 이 비유에서 컬렉션은 문자열, 정수 또는 부동소수점 값을 저장할 수 있지만, 이러한 데이터 유형을 섞어서 저장할 수는 없습니다.
</Note>

예를 들어, "dataset" 아티팩트 유형을 허용하는 컬렉션을 만든다고 가정해 보겠습니다. 즉, 앞으로는 유형이 "dataset"인 아티팩트 버전만 이 컬렉션에 연결할 수 있습니다. 마찬가지로, 모델 아티팩트 유형만 허용하는 컬렉션에는 유형이 "model"인 아티팩트만 연결할 수 있습니다.

<Note>
  아티팩트 객체를 만들 때 아티팩트의 유형을 지정합니다. `wandb.Artifact()`의 `type` 필드를 참고하세요.

  ```python theme={null}
  import wandb

  # run 초기화
  with wandb.init(
    entity = "<team_entity>",
    project = "<project>"
    ) as run:

    # 아티팩트 객체 생성
    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">
  ### 컬렉션이 허용하는 아티팩트 유형 확인
</div>

컬렉션에 연결하기 전에 해당 컬렉션이 어떤 아티팩트 유형을 허용하는지 확인하세요. 컬렉션이 허용하는 아티팩트 유형은 W\&B Python SDK를 사용해 프로그래밍 방식으로 확인하거나, W\&B App에서 대화형으로 확인할 수 있습니다.

<Note>
  해당 아티팩트 유형을 허용하지 않는 컬렉션에 아티팩트를 연결하려고 하면 오류 메시지가 표시됩니다.
</Note>

<Tabs>
  <Tab title="W&B App">
    허용되는 아티팩트 유형은 홈페이지의 레지스트리 카드나 레지스트리의 Settings 페이지에서 확인할 수 있습니다.

    두 방법 모두 먼저 W\&B 레지스트리로 이동하세요.

    W\&B 레지스트리 홈페이지에서는 해당 레지스트리의 레지스트리 카드로 스크롤해 허용되는 아티팩트 유형을 확인할 수 있습니다. 레지스트리 카드 안의 회색 가로 타원에 해당 레지스트리가 허용하는 아티팩트 유형이 나열됩니다.

    <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="아티팩트 유형 선택" width="3416" height="1622" data-path="images/registry/artifact_types_model_card.png" />
    </Frame>

    예를 들어, 아래 이미지는 W\&B 레지스트리 홈페이지에 여러 레지스트리 카드가 표시된 모습을 보여줍니다. **Model** 레지스트리 카드에서 **model**과 **model-new**의 두 아티팩트 유형을 확인할 수 있습니다.

    레지스트리의 Settings 페이지에서 허용되는 아티팩트 유형을 보려면 다음과 같이 하세요.

    1. Settings를 보려는 레지스트리 카드를 클릭합니다.
    2. 오른쪽 상단의 톱니바퀴 아이콘을 클릭합니다.
    3. **Accepted artifact types** 필드로 스크롤합니다.
  </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>
      다음 코드 스니펫에서는 run을 초기화하지 않는다는 점에 유의하세요. W\&B API만 쿼리하고 실험, 아티팩트 등을 tracking하는 것이 아니라면 run을 생성할 필요가 없기 때문입니다.
    </Note>
  </Tab>
</Tabs>

컬렉션이 허용하는 아티팩트 유형을 확인했다면, [컬렉션을 생성](#create-a-collection)할 수 있습니다.

<div id="create-a-collection">
  ## 컬렉션 만들기
</div>

대화형 또는 프로그래밍 방식으로 레지스트리 내에서 컬렉션을 만들 수 있습니다. 컬렉션을 만든 후에는 해당 컬렉션이 허용하는 아티팩트 유형을 변경할 수 없습니다.

<div id="programmatically-create-a-collection">
  ### 프로그래밍 방식으로 컬렉션 만들기
</div>

아티팩트를 컬렉션에 연결하려면 `wandb.Run.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 초기화
with wandb.init(entity = "<team_entity>", project = "<project>") as run:

  # 아티팩트 객체 생성
  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)
```

<div id="interactively-create-a-collection">
  ### 대화형으로 컬렉션 만들기
</div>

다음 단계에서는 W\&B 레지스트리를 사용해 대화형으로 컬렉션을 만드는 방법을 설명합니다.

1. [https://wandb.ai/registry/](https://wandb.ai/registry/)의 W\&B 레지스트리로 이동합니다.
2. 레지스트리를 선택합니다.
3. 오른쪽 상단의 **컬렉션 만들기** 버튼을 클릭합니다.
4. **Name** 필드에 컬렉션의 이름을 입력합니다.
5. **Type** 드롭다운에서 유형을 선택합니다. 또는 레지스트리에서 맞춤형 아티팩트 유형을 사용할 수 있는 경우, 이 컬렉션에서 허용할 하나 이상의 아티팩트 유형을 입력합니다.
6. 필요에 따라 **Description** 필드에 컬렉션 설명을 입력합니다.
7. 필요에 따라 **Tags** 필드에 하나 이상의 태그를 추가합니다.
8. **버전 연결**을 클릭합니다.
9. **Project** 드롭다운에서 아티팩트가 저장된 프로젝트를 선택합니다.
10. **Artifact** 컬렉션 드롭다운에서 아티팩트를 선택합니다.
11. **Version** 드롭다운에서 컬렉션에 연결할 아티팩트 버전을 선택합니다.
12. **컬렉션 만들기** 버튼을 클릭합니다.

<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>
