레지스트리에서 컬렉션 또는 컬렉션 내 artifact 버전을 정리할 수 있도록 태그를 생성하고 추가합니다. W&B App UI 또는 W&B Python SDK를 사용해 컬렉션이나 artifact 버전에 태그를 추가, 수정, 확인 또는 제거할 수 있습니다.
태그와 alias를 구분해 사용하는 경우특정 artifact 버전을 고유하게 참조해야 할 때는 alias를 사용하세요. 예를 들어 artifact_name:alias가 항상 하나의 특정 버전을 가리키도록 하려면 ‘production’ 또는 ‘latest’와 같은 alias를 사용하세요.그룹화하거나 검색할 때 더 유연성이 필요하다면 태그를 사용하세요. 여러 버전이나 컬렉션이 같은 레이블을 공유할 수 있고, 특정 식별자에 하나의 버전만 연결되어야 한다는 보장이 필요하지 않을 때 태그가 적합합니다.
W&B App UI 또는 Python SDK를 사용해 컬렉션에 태그를 추가할 수 있습니다.
W&B App UI를 사용해 컬렉션에 태그를 추가합니다.
- W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 컬렉션 이름 옆의 View details를 클릭합니다.
- 컬렉션 카드에서 Tags 필드 옆의 더하기 아이콘(+)을 클릭한 다음, 태그 이름을 입력합니다.
- 키보드에서 Enter 키를 누릅니다.
import wandb
COLLECTION_TYPE = "<collection_type>"
REGISTRY_NAME = "<registry_name>"
COLLECTION_NAME = "<collection_name>"
full_name = f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"
collection = wandb.Api().artifact_collection(
type_name = COLLECTION_TYPE,
name = full_name
)
collection.tags = ["your-tag"]
collection.save()
태그를 프로그래밍 방식으로 업데이트하려면 다시 할당하거나 tags 속성을 변경하면 됩니다. W&B는 tags 속성을 제자리에서 변경하는 것보다 다시 할당하는 방식을 권장하며, 이는 Python에서도 좋은 관행입니다.
예를 들어, 다음 코드 예제는 다시 할당을 사용해 목록을 업데이트하는 일반적인 방법을 보여줍니다. 간단히 하기 위해 컬렉션에 태그 추가 섹션의 코드 예제를 이어서 사용합니다.
collection.tags = [*collection.tags, "new-tag", "other-tag"]
collection.tags = collection.tags + ["new-tag", "other-tag"]
collection.tags = set(collection.tags) - set(tags_to_delete)
collection.tags = [] # 모든 태그 삭제
다음 코드 스니펫은 artifact 버전에 속한 tags를 업데이트하기 위해 원본을 직접 변경하는 방식을 사용하는 방법을 보여줍니다.
collection.tags += ["new-tag", "other-tag"]
collection.tags.append("new-tag")
collection.tags.extend(["new-tag", "other-tag"])
collection.tags[:] = ["new-tag", "other-tag"]
collection.tags.remove("existing-tag")
collection.tags.pop()
collection.tags.clear()
W&B App UI를 사용해 컬렉션에 추가된 태그를 확인할 수 있습니다:
- W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 컬렉션 이름 옆의 View details를 클릭합니다.
컬렉션에 태그가 하나 이상 있으면 컬렉션 카드의 Tags 필드 옆에서 해당 태그를 볼 수 있습니다.
컬렉션에 추가된 태그는 해당 컬렉션 이름 옆에도 표시됩니다.
예를 들어, 다음 이미지에서는 “zoo-dataset-tensors” 컬렉션에 “tag1”이라는 태그가 추가되어 있습니다.
W&B App UI를 사용하여 컬렉션에서 태그를 제거합니다:
- W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 컬렉션 이름 옆의 세부 정보 보기를 클릭합니다.
- 컬렉션 카드에서 제거하려는 태그 이름 위에 마우스를 올립니다.
- 취소 버튼(X 아이콘)을 클릭합니다.
W&B App UI 또는 Python SDK를 사용하여 collection에 연결된 artifact 버전에 태그를 추가합니다.
- https://wandb.ai/registry의 W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 태그를 추가하려는 collection 이름 옆의 View details를 클릭합니다.
- 아래로 스크롤해 Versions로 이동합니다.
- artifact 버전 옆의 View를 클릭합니다.
- Version 탭에서 Tags 필드 옆의 더하기 아이콘(+)을 클릭한 다음 태그 이름을 입력합니다.
- 키보드에서 Enter를 누릅니다.
태그를 추가하거나 업데이트하려는 artifact 버전을 가져옵니다. artifact 버전을 가져온 후에는 artifact 객체의 tag 속성에 접근하여 해당 artifact의 태그를 추가하거나 수정할 수 있습니다. 하나 이상의 태그를 목록으로 artifact의 tag 속성에 전달합니다.다른 artifact와 마찬가지로 run을 생성하지 않고도 W&B에서 artifact를 가져올 수 있으며, run을 생성한 뒤 해당 run 내에서 artifact를 가져올 수도 있습니다. 어느 경우든 W&B 서버의 artifact를 업데이트하려면 artifact 객체의 save 메서드를 호출해야 합니다.아래의 적절한 코드 셀을 복사해 붙여넣어 artifact 버전의 태그를 추가하거나 수정합니다. <> 안의 값은 사용자 환경에 맞게 바꾸세요.다음 코드 스니펫은 새 run을 생성하지 않고 artifact를 가져와 태그를 추가하는 방법을 보여줍니다:새 run을 생성하지 않고 artifact 버전에 태그 추가
import wandb
ARTIFACT_TYPE = "<TYPE>"
REGISTRY_NAME = "<registry_name>"
COLLECTION_NAME = "<collection_name>"
VERSION = "<artifact_version>"
artifact_name = f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}:v{VERSION}"
artifact = wandb.Api().artifact(name = artifact_name, type = ARTIFACT_TYPE)
artifact.tags = ["tag2"] # 목록에 하나 이상의 태그를 지정합니다
artifact.save()
다음 코드 스니펫은 새 run을 생성해 artifact를 가져오고 태그를 추가하는 방법을 보여줍니다:import wandb
REGISTRY_NAME = "<registry_name>"
COLLECTION_NAME = "<collection_name>"
VERSION = "<artifact_version>"
with wandb.init(entity = "<entity>", project="<project>") as run:
artifact_name = f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}:v{VERSION}"
artifact = run.use_artifact(artifact_or_name = artifact_name)
artifact.tags = ["tag2"] # 목록에 하나 이상의 태그를 지정합니다
artifact.save()
태그는 재할당하거나 tags 속성을 수정해 프로그래밍 방식으로 업데이트할 수 있습니다. W&B는 tags 속성을 in-place로 수정하는 대신 재할당할 것을 권장하며, 이는 Python에서도 좋은 관행입니다.
예를 들어, 다음 코드 스니펫은 재할당으로 목록을 업데이트하는 일반적인 방법을 보여줍니다. 간단히 하기 위해 artifact 버전에 태그 추가하기 section의 코드 예제를 이어서 사용합니다:
artifact.tags = [*artifact.tags, "new-tag", "other-tag"]
artifact.tags = artifact.tags + ["new-tag", "other-tag"]
artifact.tags = set(artifact.tags) - set(tags_to_delete)
artifact.tags = [] # 모든 태그 삭제
다음 코드 스니펫은 artifact 버전에 속한 tags를 업데이트할 때 제자리 변경(in-place mutation)을 사용하는 방법을 보여줍니다:
artifact.tags += ["new-tag", "other-tag"]
artifact.tags.append("new-tag")
artifact.tags.extend(["new-tag", "other-tag"])
artifact.tags[:] = ["new-tag", "other-tag"]
artifact.tags.remove("existing-tag")
artifact.tags.pop()
artifact.tags.clear()
W&B App UI 또는 Python SDK를 사용해 레지스트리에 연결된 아티팩트 버전에 속한 태그를 확인할 수 있습니다.
- W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 태그를 추가하려는 collection의 name 옆에 있는 View details를 클릭합니다.
- Versions 섹션까지 아래로 스크롤합니다.
아티팩트 버전에 하나 이상의 태그가 있으면 Tags 열에서 해당 태그를 확인할 수 있습니다.태그를 확인하려면 아티팩트 버전을 가져옵니다. 아티팩트 버전을 가져온 후에는 아티팩트 객체의 tags 속성을 확인해 해당 아티팩트에 속한 태그를 볼 수 있습니다.다른 아티팩트와 마찬가지로 run을 생성하지 않고도 W&B에서 아티팩트를 가져올 수 있으며, run을 생성한 뒤 해당 run 내에서 아티팩트를 가져올 수도 있습니다.아래의 적절한 코드 셀을 복사해 붙여넣어 아티팩트 버전의 태그를 추가하거나 수정합니다. <> 안의 값은 사용자 환경에 맞게 바꾸세요.다음 코드 스니펫은 새 run을 생성하지 않고 아티팩트 버전을 가져와 태그를 확인하는 방법을 보여줍니다:새 run을 생성하지 않고 아티팩트 버전에 태그 추가
import wandb
ARTIFACT_TYPE = "<TYPE>"
REGISTRY_NAME = "<registry_name>"
COLLECTION_NAME = "<collection_name>"
VERSION = "<artifact_version>"
artifact_name = f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}:v{VERSION}"
artifact = wandb.Api().artifact(name = artifact_name, type = artifact_type)
print(artifact.tags)
다음 코드 스니펫은 새 run을 생성해 아티팩트 버전의 태그를 가져와 확인하는 방법을 보여줍니다:import wandb
REGISTRY_NAME = "<registry_name>"
COLLECTION_NAME = "<collection_name>"
VERSION = "<artifact_version>"
with wandb.init(entity = "<entity>", project="<project>") as run:
artifact_name = f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}:v{VERSION}"
artifact = run.use_artifact(artifact_or_name = artifact_name)
print(artifact.tags)
- W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 태그를 추가하려는 컬렉션 이름 옆의 View details를 클릭합니다.
- 아래로 스크롤해 Versions로 이동합니다.
- 아티팩트 버전 옆의 View를 클릭합니다.
- Version 탭에서 태그 이름 위에 마우스를 올립니다.
- 취소 버튼(X 아이콘)을 클릭합니다.
컬렉션과 artifact 버전의 기존 태그를 검색하려면 W&B App UI를 사용합니다:
- W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 검색창에 태그 이름을 입력합니다.
특정 태그가 지정된 artifact 버전 찾기
W&B Python SDK를 사용하여 특정 태그 세트가 지정된 artifact 버전을 찾습니다:
import wandb
api = wandb.Api()
tagged_artifact_versions = api.artifacts(
type_name = "<artifact_type>",
name = "<artifact_name>",
tags = ["<tag_1>", "<tag_2>"]
)
for artifact_version in tagged_artifact_versions:
print(artifact_version.tags)