메인 콘텐츠로 건너뛰기
W&B 레지스트리는 조직 내 W&B 아티팩트 버전을 엄선해 모아 둔 중앙 저장소입니다. 조직 내에서 권한이 있는 사용자는 소속 팀과 관계없이 아티팩트를 다운로드해 사용하고, 공유하며, 모든 아티팩트의 수명 주기를 협업으로 관리할 수 있습니다. 레지스트리를 사용하면 아티팩트 버전을 추적하고, 아티팩트의 사용 및 변경 이력을 감사하고, 아티팩트의 거버넌스와 규정 준수를 보장하며, 모델 CI/CD와 같은 다운스트림 프로세스를 자동화할 수 있습니다. 요약하면, W&B 레지스트리를 사용해 다음을 수행할 수 있습니다:
  • 머신 러닝 작업의 요구 사항을 충족하는 아티팩트 버전을 조직 내 다른 사용자에게 승격할 수 있습니다.
  • 특정 아티팩트를 찾거나 참조할 수 있도록 태그로 아티팩트를 구성할 수 있습니다.
  • 아티팩트의 리니지를 추적하고 변경 이력을 감사할 수 있습니다.
  • 자동화를 통해 모델 CI/CD와 같은 다운스트림 프로세스를 자동화할 수 있습니다.
  • 조직 내에서 누가 각 레지스트리의 아티팩트에 액세스할 수 있는지 관리할 수 있습니다.
다음 이미지는 W&B 레지스트리 랜딩 페이지를 보여줍니다. Model이라는 레지스트리에 별표가 표시되어 있습니다. DemoModelsZoo_Classifier_Models라는 두 컬렉션이 표시됩니다.
W&B 레지스트리

기본 사항 알아보기

각 조직에는 처음에 ModelsDatasets라는 두 개의 레지스트리가 포함되어 있으며, 이를 사용해 각각 모델 및 데이터셋 아티팩트를 구성할 수 있습니다. 조직의 필요에 따라 다른 아티팩트 유형을 구성할 추가 레지스트리를 만들 수도 있습니다. 레지스트리는 하나 이상의 컬렉션으로 구성됩니다. 각 컬렉션은 고유한 작업 또는 사용 사례를 나타냅니다. 아티팩트를 레지스트리에 추가하려면 먼저 특정 아티팩트 버전을 W&B에 기록해야 합니다. 아티팩트를 기록할 때마다 W&B가 해당 아티팩트에 자동으로 버전을 할당합니다. 아티팩트 버전은 0부터 인덱싱되므로 첫 번째 버전은 v0, 두 번째 버전은 v1이며 이후에도 같은 방식으로 증가합니다. 아티팩트를 W&B에 기록한 후에는 해당 아티팩트의 특정 버전을 레지스트리의 컬렉션에 연결할 수 있습니다.
“연결하다”는 W&B가 아티팩트를 저장하는 위치와 레지스트리에서 해당 아티팩트에 접근할 수 있는 위치를 연결하는 포인터를 의미합니다. W&B는 아티팩트를 컬렉션에 연결할 때 아티팩트를 복제하지 않습니다.
예를 들어, 다음 코드 예제는 "my_model.txt"라는 모델 아티팩트를 "model"이라는 레지스트리 내 "first-collection"이라는 컬렉션에 기록하고 연결합니다.
  1. wandb.init()으로 W&B run을 초기화합니다.
  2. wandb.Run.log()로 아티팩트를 W&B에 기록합니다.
  3. 아티팩트 버전을 연결할 컬렉션과 레지스트리의 이름을 지정합니다.
  4. wandb.Run.link_artifact()를 사용해 아티팩트를 컬렉션에 연결합니다.
이 Python 코드를 스크립트로 저장한 뒤 실행하세요. W&B Python SDK 버전 0.18.6 이상이 필요합니다.
hello_collection.py
import wandb
import random

# artifact를 추적하기 위해 W&B Run을 초기화합니다
with wandb.init(project="registry_quickstart") as run:
    # 로깅할 시뮬레이션 모델 파일을 생성합니다
    with open("my_model.txt", "w") as f:
        f.write("Model: " + str(random.random()))

    # artifact를 W&B에 로깅합니다
    logged_artifact = run.log_artifact(
        artifact_or_path="./my_model.txt", 
        name="gemma-finetuned", 
        type="model" # artifact 유형을 지정합니다
    )

    # artifact를 게시할 collection과 레지스트리의
    # 이름을 지정합니다
    COLLECTION_NAME = "first-collection"
    REGISTRY_NAME = "model"

    # artifact를 레지스트리에 연결합니다
    run.link_artifact(
        artifact=logged_artifact, 
        target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"
    )
W&B는 반환된 run 객체의 wandb.Run.link_artifact(target_path = "") 메서드에서 지정한 컬렉션이 지정한 레지스트리 내에 없으면 해당 컬렉션을 자동으로 생성합니다. 이전 예제에 이어, 스크립트를 실행한 후 W&B 레지스트리로 이동하여 나와 조직의 다른 멤버가 게시한 아티팩트 버전을 확인합니다. 프로젝트 사이드바에서 Applications 아래의 Registry를 선택합니다. "Model" 레지스트리를 선택합니다. 레지스트리 내에서 연결된 아티팩트 버전이 포함된 "first-collection" 컬렉션을 확인할 수 있습니다. 레지스트리 내의 컬렉션에 아티팩트 버전을 연결하면, 적절한 권한이 있는 조직 멤버는 아티팩트 버전을 확인하고, 다운로드하고, 정리하고, 관리하며, 다운스트림 automation을 생성하는 등의 작업을 할 수 있습니다.
아티팩트 버전이 메트릭을 기록하는 경우(예: wandb.Run.log_artifact() 사용) 해당 버전의 세부 정보 페이지에서 메트릭을 확인할 수 있으며, 컬렉션 페이지에서 아티팩트 버전 간 메트릭을 비교할 수 있습니다. 레지스트리에서 연결된 아티팩트 보기를 참고하세요.

W&B 레지스트리 활성화

배포 유형에 따라 W&B 레지스트리를 활성화하려면 다음 조건을 충족하세요.
Deployment typeHow to enable
Multi-tenant Cloud별도의 조치가 필요하지 않습니다. W&B 레지스트리는 W&B App에서 사용할 수 있습니다.
Dedicated Cloud배포에서 W&B 레지스트리를 활성화하려면 고객 담당 팀에 문의하세요.
Self-ManagedServer v0.70.0 이상에서는 별도의 조치가 필요하지 않습니다. 이전의 지원되는 Server 버전에서는 환경 변수 ENABLE_REGISTRY_UItrue로 설정하세요. 환경 변수 구성을 참고하세요.

시작하기 위한 리소스

사용 사례에 따라 W&B 레지스트리를 시작할 때 도움이 되는 다음 리소스를 살펴보세요:
  • 튜토리얼 비디오를 확인하세요:
  • W&B Model CI/CD 과정을 수강하고 다음 내용을 알아보세요:
    • W&B 레지스트리를 사용해 아티팩트를 관리하고 버전 관리하며, 리니지를 추적하고, 다양한 라이프사이클 단계에 따라 모델을 승격하는 방법
    • 웹훅을 사용해 모델 관리 워크플로를 자동화하는 방법
    • 모델 평가, 모니터링, 배포를 위해 레지스트리를 외부 ML 시스템 및 도구와 통합하는 방법