메인 콘텐츠로 건너뛰기
컬렉션은 레지스트리 내에서 서로 연결된 아티팩트 버전의 집합입니다. 각 컬렉션은 서로 다른 작업이나 사용 사례를 나타냅니다. 예를 들어, 하나의 레지스트리 내에 여러 컬렉션이 있을 수 있습니다. 각 컬렉션에는 MNIST, CIFAR-10, ImageNet과 같은 서로 다른 데이터셋이 포함될 수 있습니다. 또 다른 예로, “chatbot”이라는 레지스트리에 모델 아티팩트용 컬렉션, 데이터셋 아티팩트용 컬렉션, 파인튜닝된 모델 아티팩트용 컬렉션을 각각 둘 수 있습니다. 레지스트리와 그 안의 컬렉션을 어떻게 구성할지는 사용자가 결정할 수 있습니다.
W&B Model Registry에 익숙하다면 Registered Models도 알고 있을 것입니다. Model Registry의 Registered Models는 이제 W&B 레지스트리에서 컬렉션이라고 합니다.

컬렉션 유형

각 컬렉션은 오직 하나의 아티팩트 유형만 허용합니다. 지정한 유형에 따라 여러분과 조직의 다른 구성원이 해당 컬렉션에 연결할 수 있는 아티팩트의 종류가 제한됩니다.
아티팩트 유형은 Python 같은 프로그래밍 언어의 데이터 유형과 비슷하다고 생각하면 됩니다. 이 비유에서 컬렉션은 문자열, 정수 또는 부동소수점 값을 저장할 수 있지만, 이러한 데이터 유형을 섞어서 저장할 수는 없습니다.
예를 들어, “dataset” 아티팩트 유형을 허용하는 컬렉션을 만든다고 가정해 보겠습니다. 즉, 앞으로는 유형이 “dataset”인 아티팩트 버전만 이 컬렉션에 연결할 수 있습니다. 마찬가지로, 모델 아티팩트 유형만 허용하는 컬렉션에는 유형이 “model”인 아티팩트만 연결할 수 있습니다.
아티팩트 객체를 만들 때 아티팩트의 유형을 지정합니다. wandb.Artifact()type 필드를 참고하세요.
import wandb

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

  # artifact 객체 생성
  artifact = wandb.Artifact(
      name="<artifact_name>", 
      type="<artifact_type>"
      )
컬렉션을 만들 때는 미리 정의된 아티팩트 유형 목록에서 선택할 수 있습니다. 사용할 수 있는 아티팩트 유형은 해당 컬렉션이 속한 레지스트리에 따라 달라집니다. 아티팩트를 컬렉션에 연결하거나 새 컬렉션을 만들기 전에 해당 컬렉션이 허용하는 아티팩트 유형을 확인하세요.

컬렉션이 허용하는 아티팩트 유형 확인

컬렉션에 연결하기 전에 해당 컬렉션이 어떤 아티팩트 유형을 허용하는지 확인하세요. 컬렉션이 허용하는 아티팩트 유형은 W&B Python SDK를 사용해 프로그래밍 방식으로 확인하거나, W&B App에서 대화형으로 확인할 수 있습니다.
해당 아티팩트 유형을 허용하지 않는 컬렉션에 아티팩트를 연결하려고 하면 오류 메시지가 표시됩니다.
허용되는 아티팩트 유형은 홈페이지의 레지스트리 카드나 레지스트리의 Settings 페이지에서 확인할 수 있습니다.두 방법 모두 먼저 W&B 레지스트리로 이동하세요.W&B 레지스트리 홈페이지에서는 해당 레지스트리의 레지스트리 카드로 스크롤해 허용되는 아티팩트 유형을 확인할 수 있습니다. 레지스트리 카드 안의 회색 가로 타원에 해당 레지스트리가 허용하는 아티팩트 유형이 나열됩니다.
아티팩트 유형 선택
예를 들어, 아래 이미지는 W&B 레지스트리 홈페이지에 여러 레지스트리 카드가 표시된 모습을 보여줍니다. Model 레지스트리 카드에서 modelmodel-new의 두 아티팩트 유형을 확인할 수 있습니다.레지스트리의 Settings 페이지에서 허용되는 아티팩트 유형을 보려면 다음과 같이 하세요.
  1. Settings를 보려는 레지스트리 카드를 클릭합니다.
  2. 오른쪽 상단의 톱니바퀴 아이콘을 클릭합니다.
  3. Accepted artifact types 필드로 스크롤합니다.
컬렉션이 허용하는 아티팩트 유형을 확인했다면, 컬렉션을 생성할 수 있습니다.

컬렉션 만들기

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

프로그래밍 방식으로 컬렉션 만들기

아티팩트를 컬렉션에 연결하려면 wandb.Run.link_artifact()를 사용하세요. 다음 형식의 경로로 target_path 필드에 컬렉션과 레지스트리를 모두 지정하세요.
f"wandb-registry-{registry_name}/{collection_name}"
여기서 registry_name은 레지스트리 이름이고 collection_name은 컬렉션 이름입니다. 레지스트리 이름 앞에 wandb-registry- 접두사를 붙여야 합니다.
존재하지 않는 컬렉션에 아티팩트를 연결하려고 하면 W&B가 해당 컬렉션을 자동으로 생성합니다. 이미 존재하는 컬렉션을 지정하면 W&B는 아티팩트를 기존 컬렉션에 연결합니다.
다음 코드 스니펫은 프로그래밍 방식으로 컬렉션을 생성하는 방법을 보여줍니다. <>로 묶인 값은 사용자의 값으로 바꾸세요:
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를 collection에 연결
  run.link_artifact(artifact = artifact, target_path = target_path)

대화형으로 컬렉션 만들기

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