하나 이상의 별칭을 사용해 특정 아티팩트 버전을 참조할 수 있습니다. 같은 이름으로 연결한 각 아티팩트에는 W&B가 자동으로 별칭을 할당합니다. 특정 아티팩트 버전을 참조할 수 있도록 하나 이상의 맞춤형 별칭을 생성할 수도 있습니다.
별칭은 Registry UI에서 별칭 이름이 들어 있는 사각형으로 표시됩니다. 별칭이 보호된 경우 자물쇠 아이콘이 있는 회색 사각형으로 표시됩니다. 그렇지 않으면 주황색 사각형으로 표시됩니다. 별칭은 레지스트리 간에 공유되지 않습니다.
별칭과 태그를 사용하는 경우특정 아티팩트 버전을 참조하려면 별칭을 사용하세요. 컬렉션 내에서 각 별칭은 고유합니다. 한 시점에 특정 별칭은 하나의 아티팩트 버전에만 지정할 수 있습니다.공통 주제를 기준으로 아티팩트 버전이나 컬렉션을 정리하고 그룹화하려면 태그를 사용하세요. 여러 아티팩트 버전과 컬렉션이 같은 태그를 공유할 수 있습니다.
아티팩트 버전에 별칭을 추가하면, 필요에 따라 Registry automation을 시작해 Slack 채널로 알림을 보내거나 웹훅을 트리거할 수 있습니다. 자동화가 요청에 액세스 토큰이나 기타 민감한 값이 필요한 웹훅을 호출하는 경우, 해당 문자열을 팀 시크릿으로 저장한 다음 자동화용 웹훅을 설정할 때 선택하세요.
W&B는 같은 이름으로 연결한 각 아티팩트 버전에 다음 별칭을 자동으로 할당합니다.
- 컬렉션에 연결한 가장 최신 아티팩트 버전에
latest 별칭을 할당합니다.
- 고유한 버전 번호입니다. W&B는 연결한 각 아티팩트 버전의 수를 셉니다(인덱스는 0부터 시작). W&B는 이 개수를 사용해 해당 아티팩트에 고유한 버전 번호를 할당합니다.
예를 들어 zoo_model이라는 이름의 아티팩트를 세 번 연결하면 W&B는 각각 v0, v1, v2라는 세 개의 별칭을 생성합니다. v2에는 latest 별칭도 할당됩니다.
고유한 사용 사례에 맞춰 특정 아티팩트 버전에 하나 이상의 맞춤형 별칭을 만들 수 있습니다. 예를 들면 다음과 같습니다.
- 모델이 어떤 데이터셋으로 학습되었는지 파악하기 위해
dataset_version_v0, dataset_version_v1, dataset_version_v2와 같은 별칭을 사용할 수 있습니다.
- 가장 성능이 좋은 아티팩트 모델 버전을 추적하기 위해
best_model 별칭을 사용할 수 있습니다.
레지스트리에서 Member 또는 Admin 레지스트리 역할을 가진 사용자는 누구나 해당 레지스트리에 연결된 아티팩트에 맞춤형 별칭을 추가하거나 제거할 수 있습니다. Restricted Viewer 또는 Viewer 역할을 가진 Users는 별칭을 추가하거나 제거할 수 없습니다.
보호된 별칭은 수정 또는 삭제로부터 보호해야 할 아티팩트 버전을 라벨링하고 식별하는 방법을 제공합니다.
W&B Registry 또는 Python SDK를 사용해 맞춤형 별칭을 만들 수 있습니다. 사용 사례에 따라 필요에 가장 잘 맞는 아래 탭을 클릭하세요.
- W&B Registry로 이동합니다.
- 컬렉션에서 View details 버튼을 클릭합니다.
- Versions 섹션에서 특정 아티팩트 버전의 View 버튼을 클릭합니다.
- Aliases 필드 옆의 + 버튼을 클릭해 하나 이상의 별칭을 추가합니다.
Python SDK로 아티팩트 버전을 컬렉션에 연결할 때 link_artifact()의 alias 파라미터에 대한 인수로 하나 이상의 별칭 목록을 선택적으로 제공할 수 있습니다. 제공한 별칭이 아직 존재하지 않으면 W&B가 별칭(보호되지 않은 별칭)을 생성합니다.다음 코드 스니펫은 Python SDK로 아티팩트 버전을 컬렉션에 연결하고 해당 아티팩트 버전에 별칭을 추가하는 방법을 보여줍니다. <> 안의 값을 환경에 맞게 바꾸세요.import wandb
# run을 초기화합니다
with wandb.init(entity = "<team_entity>", project = "<project_name>") as run:
# 아티팩트 객체를 생성합니다
# type 파라미터는 아티팩트 객체의 유형과
# 컬렉션 유형을 모두 지정합니다
artifact = wandb.Artifact(name = "<name>", type = "<type>")
# 파일을 아티팩트 객체에 추가합니다.
# 로컬 머신의 파일 경로를 지정합니다.
artifact.add_file(local_path = "<local_path_to_artifact>")
# 아티팩트를 연결할 컬렉션과 레지스트리를 지정합니다
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,
aliases = ["<alias_1>", "<alias_2>"]
)
수정하거나 삭제해서는 안 되는 아티팩트 버전에 레이블을 지정하고 식별하려면 보호된 별칭을 사용하세요. 예를 들어, 조직의 머신 러닝 프로덕션 파이프라인에서 사용 중인 아티팩트 버전에 레이블을 지정하고 식별하기 위해 production 보호된 별칭을 사용하는 것이 좋습니다.
레지스트리 관리자 사용자와 Admin 역할이 있는 service accounts는 보호된 별칭을 생성하고 아티팩트 버전에 보호된 별칭을 추가하거나 제거할 수 있습니다. Member, Viewer, Restricted Viewer 역할이 있는 사용자와 service accounts는 보호된 버전의 연결을 해제하거나 보호된 별칭이 포함된 컬렉션을 삭제할 수 없습니다. 자세한 내용은 레지스트리 액세스 구성을 참조하세요.
일반적인 보호된 별칭의 예는 다음과 같습니다.
- Production: 해당 아티팩트 버전은 프로덕션에 사용할 준비가 되었습니다.
- Staging: 해당 아티팩트 버전은 테스트할 준비가 되었습니다.
다음 단계에서는 W&B Registry UI에서 보호된 별칭을 만드는 방법을 설명합니다.
- W&B Registry로 이동합니다.
- 레지스트리를 선택합니다.
- 페이지 오른쪽 상단의 톱니바퀴 버튼을 클릭해 레지스트리 설정을 엽니다.
- Protected Aliases 섹션에서 + 버튼을 클릭해 하나 이상의 보호된 별칭을 추가합니다.
생성 후 각 보호된 별칭은 Protected Aliases 섹션에 잠금 아이콘이 있는 회색 사각형으로 표시됩니다.
보호되지 않은 맞춤형 별칭과 달리, 보호된 별칭은 W&B Registry UI에서만 만들 수 있으며 Python SDK를 사용해 프로그래밍 방식으로 만들 수는 없습니다. 아티팩트 버전에 보호된 별칭을 추가하려면 W&B Registry UI 또는 Python SDK를 사용할 수 있습니다.
다음 단계에서는 W&B Registry UI에서 아티팩트 버전에 보호된 별칭을 추가하는 방법을 설명합니다.
- W&B Registry로 이동합니다.
- 컬렉션에서 View details 버튼을 클릭합니다.
- Versions 섹션에서 특정 아티팩트 버전의 View 버튼을 선택합니다.
- Aliases 필드 옆의 + 버튼을 클릭해 하나 이상의 보호된 별칭을 추가합니다.
보호된 별칭이 생성되면 관리자는 Python SDK를 사용해 이를 아티팩트 버전에 프로그래밍 방식으로 추가할 수 있습니다. 보호된 별칭을 아티팩트 버전에 추가하는 방법의 예시는 위의 맞춤형 별칭 만들기 섹션에 있는 W&B Registry 및 Python SDK 탭을 참조하세요.
W&B Registry의 전역 검색창을 사용해 기존 별칭을 찾을 수 있습니다. 보호된 별칭을 찾으려면 다음 단계를 따르세요.
- W&B Registry로 이동합니다.
- 페이지 상단의 검색창에 검색어를 입력합니다. Enter 키를 눌러 검색합니다.
입력한 검색어가 기존 레지스트리, 컬렉션 이름, 아티팩트 버전 태그, 컬렉션 태그 또는 별칭과 일치하면 검색 결과가 검색창 아래에 표시됩니다.
다음 코드 스니펫은 아티팩트 버전을 생성하고 여기에 맞춤형 별칭을 추가하는 방법을 보여줍니다. 이 예시에서는 UCI Machine Learning Repository의 Zoo 데이터셋과 Zoo_Classifier_Models 레지스트리의 Model 컬렉션을 사용합니다.
import wandb
# run 초기화
with wandb.init(entity = "smle-reg-team-2", project = "zoo_experiment") as run:
# 아티팩트 객체 생성
# type 파라미터는 아티팩트 객체의 유형과
# 컬렉션 유형을 모두 지정합니다
artifact = wandb.Artifact(name = "zoo_dataset", type = "dataset")
# 아티팩트 객체에 파일 추가.
# 로컬 머신의 파일 경로를 지정하세요.
artifact.add_file(local_path="zoo_dataset.pt", name="zoo_dataset")
artifact.add_file(local_path="zoo_labels.pt", name="zoo_labels")
# 아티팩트를 연결할 컬렉션과 레지스트리 지정
REGISTRY_NAME = "Model"
COLLECTION_NAME = "Zoo_Classifier_Models"
target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"
# 아티팩트 버전을 컬렉션에 연결
# 이 아티팩트 버전에 하나 이상의 별칭 추가
run.link_artifact(
artifact = artifact,
target_path = target_path,
aliases = ["production-us", "production-eu"]
)
- 먼저 아티팩트 객체(
wandb.Artifact())를 생성합니다.
- 다음으로,
wandb.Artifact.add_file()을 사용해 데이터셋용 PyTorch 텐서 두 개를 아티팩트 객체에 추가합니다.
- 마지막으로,
link_artifact()를 사용해 아티팩트 버전을 Zoo_Classifier_Models 레지스트리의 Model 컬렉션에 연결합니다. 또한 aliases 파라미터에 production-us와 production-eu를 인수로 전달해 아티팩트 버전에 맞춤형 별칭 두 개를 추가합니다.