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

컬렉션 타입

각 컬렉션은 하나의 타입의 아티팩트만 허용합니다. 지정한 타입에 따라, 컬렉션에 어떤 종류의 아티팩트를 연결할 수 있는지가 조직 전체에 걸쳐 제한됩니다.
아티팩트 타입은 Python과 같은 프로그래밍 언어의 데이터 타입과 비슷하게 생각할 수 있습니다. 이 비유에서 컬렉션은 문자열, 정수, 실수 중 하나의 데이터 타입만 저장할 수 있고, 서로 다른 데이터 타입을 섞어서 저장할 수는 없습니다.
예를 들어 “dataset” 아티팩트 타입을 허용하는 컬렉션을 만든다고 가정해 봅시다. 이는 앞으로 이 컬렉션에 타입이 “dataset”인 아티팩트 버전만 연결할 수 있다는 뜻입니다. 마찬가지로, 모델 아티팩트 타입만 허용하는 컬렉션에는 “model” 타입의 아티팩트만 연결할 수 있습니다.
아티팩트 객체를 생성할 때 아티팩트의 타입을 지정합니다. wandb.Artifact()type 필드를 확인하세요:
import wandb

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

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

컬렉션이 허용하는 아티팩트 타입 확인하기

컬렉션에 링크하기 전에 해당 컬렉션이 허용하는 아티팩트 타입을 확인하십시오. 컬렉션이 허용하는 아티팩트 타입은 W&B Python SDK를 사용해 프로그래밍 방식으로, 또는 W&B App에서 직접 확인할 수 있습니다.
컬렉션이 허용하지 않는 아티팩트 타입의 아티팩트를 컬렉션에 링크하려고 하면 오류 메시지가 표시됩니다.
홈페이지의 레지스트리 카드나 레지스트리 설정 페이지에서 허용된 아티팩트 타입을 확인할 수 있습니다.두 방법 모두 먼저 W&B Registry로 이동하십시오.W&B Registry의 홈페이지에서 해당 레지스트리의 카드까지 스크롤하면 허용된 아티팩트 타입을 볼 수 있습니다. 레지스트리 카드 안의 회색 가로 타원에는 해당 레지스트리가 허용하는 아티팩트 타입이 나열됩니다.
Artifact types selection
예를 들어, 아래 이미지는 W&B Registry 홈페이지에 여러 레지스트리 카드가 있는 모습을 보여줍니다. Model 레지스트리 카드 안에서 두 가지 아티팩트 타입 modelmodel-new를 확인할 수 있습니다.레지스트리 설정 페이지에서 허용된 아티팩트 타입을 보려면:
  1. 설정을 확인하려는 레지스트리 카드를 클릭합니다.
  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 = 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)

컬렉션을 대화형으로 생성하기

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