레지스트리 내에서 컬렉션 또는 아티팩트 버전을 정리하기 위해 태그를 생성하고 추가하세요. W&B App UI 또는 W&B Python SDK를 사용하여 컬렉션이나 아티팩트 버전에 태그를 추가, 수정, 확인 또는 제거할 수 있습니다.
태그와 별칭(alias)을 언제 사용해야 하는지특정 아티팩트 버전을 고유하게 참조해야 할 때는 별칭(alias)을 사용하세요. 예를 들어 artifact_name:alias가 항상 하나의 특정 버전을 가리키도록 보장해야 할 때 ‘production’이나 ‘latest’와 같은 별칭을 사용합니다.그룹화나 검색에 더 유연성이 필요할 때는 태그를 사용하세요. 여러 버전 또는 컬렉션이 동일한 레이블을 공유할 수 있고, 특정 식별자에 오직 하나의 버전만 연결된다는 보장이 필요하지 않을 때 태그가 적합합니다.
컬렉션에 태그를 추가하려면 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 속성을 재할당하거나 변경(mutate)해서 태그를 코드로 업데이트할 수 있습니다. W&B는 일반적인 Python 모범 사례와 마찬가지로, 제자리(in-place) 변경 대신 tags 속성을 재할당하는 방식을 사용할 것을 권장합니다.
예를 들어, 다음 코드 스니펫은 재할당을 사용해서 리스트를 업데이트하는 일반적인 방법을 보여줍니다. 간결성을 위해 컬렉션에 태그 추가 섹션의 코드 예제를 이어서 사용합니다:
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 = [] # 모든 태그 삭제
다음 코드 예제는 인플레이스 변경(in-place mutation)을 사용해 아티팩트 버전에 속한 태그를 업데이트하는 방법을 보여줍니다.
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 필드 옆에서 해당 태그를 확인할 수 있습니다.
컬렉션에 추가된 태그는 해당 컬렉션 이름 옆에도 표시됩니다.
예를 들어, 다음 이미지에서는 “tag1”이라는 태그가 “zoo-dataset-tensors” 컬렉션에 추가되어 있습니다.
W&B App UI에서 컬렉션의 태그를 제거하려면 다음을 수행합니다.
- W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 컬렉션 이름 옆의 View details를 클릭합니다.
- 컬렉션 카드에서 제거하려는 태그 이름 위에 마우스를 올립니다.
- 취소 버튼(X 아이콘)을 클릭합니다.
W&B App UI 또는 Python SDK를 사용하여 컬렉션에 연결된 아티팩트 버전에 태그를 추가할 수 있습니다.
- https://wandb.ai/registry 에서 W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 태그를 추가하려는 컬렉션 이름 옆의 View details를 클릭합니다.
- Versions 섹션으로 스크롤합니다.
- 아티팩트 버전 옆의 View를 클릭합니다.
- Version 탭에서 Tags 필드 옆의 플러스 아이콘(+)을 클릭하고 태그 이름을 입력합니다.
- 키보드에서 Enter 키를 누릅니다.
태그를 추가하거나 업데이트하려는 아티팩트 버전을 가져옵니다. 아티팩트 버전을 가져오면, 해당 아티팩트 객체의 tag 속성에 접근하여 그 아티팩트에 태그를 추가하거나 수정할 수 있습니다. 하나 이상의 태그를 리스트 형태로 아티팩트의 tag 속성에 전달합니다.다른 아티팩트와 마찬가지로, 실행을 생성하지 않고 W&B에서 아티팩트를 가져오거나, 실행을 생성한 뒤 그 실행 내에서 아티팩트를 가져올 수 있습니다. 두 경우 모두 W&B 서버의 아티팩트를 업데이트하려면 아티팩트 객체의 save 메서드를 호출해야 합니다.아티팩트 버전의 태그를 추가하거나 수정하려면 아래에서 적절한 코드 셀을 복사하여 붙여 넣으세요. <> 안의 값은 사용자 환경에 맞게 교체합니다.다음 코드 스니펫은 새 실행을 생성하지 않고 아티팩트를 가져와 태그를 추가하는 방법을 보여줍니다:Add a tag to an artifact version without creating a new 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)
artifact.tags = ["tag2"] # 리스트에 하나 이상의 태그를 지정합니다
artifact.save()
다음 코드 스니펫은 새 실행을 생성하여 아티팩트를 가져오고 태그를 추가하는 방법을 보여줍니다:Add a tag to an artifact version during a 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)
artifact.tags = ["tag2"] # 리스트에 하나 이상의 태그를 지정합니다
artifact.save()
태그는 재할당하거나 tags 속성을 변경(mutate)하여 프로그래밍 방식으로 업데이트할 수 있습니다. W&B에서는, 그리고 일반적인 Python 모범 사례에서도, tags 속성을 in-place로 변경하기보다는 재할당하는 방식을 권장합니다.
예를 들어, 다음 코드 스니펫은 재할당을 사용해 리스트를 업데이트하는 일반적인 방법을 보여줍니다. 예시를 간단히 하기 위해, 아티팩트 버전에 태그 추가 섹션의 코드 예시를 이어서 사용합니다:
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 = [] # 모든 태그 삭제
다음 코드 스니펫은 제자리(in-place) 변경을 사용하여 아티팩트 버전에 속한 태그를 업데이트하는 방법을 보여줍니다:
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로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 태그를 추가하려는 컬렉션 이름 옆의 View details를 클릭합니다.
- 아래로 스크롤해 Versions 섹션으로 이동합니다.
아티팩트 버전에 하나 이상의 태그가 있는 경우 Tags 열에서 해당 태그를 볼 수 있습니다.아티팩트 버전을 가져와 해당 태그를 확인합니다. 아티팩트 버전을 가져온 후에는 아티팩트 객체의 tag 속성을 확인해 그 아티팩트에 속한 태그를 볼 수 있습니다.다른 아티팩트와 마찬가지로, 실행을 생성하지 않고도 W&B에서 아티팩트를 가져올 수 있고, 실행을 생성한 다음 그 실행 내에서 아티팩트를 가져올 수도 있습니다.아티팩트 버전의 태그를 추가하거나 수정하려면 아래에서 적절한 코드 셀을 복사해 붙여 넣습니다. <> 안의 값을 사용자 값으로 바꾸십시오.다음 코드 스니펫은 새로운 실행을 만들지 않고 아티팩트 버전의 태그를 가져와 확인하는 방법을 보여줍니다:새 실행을 만들지 않고 아티팩트 버전에 태그 추가하기
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)
다음 코드 스니펫은 새로운 실행을 생성한 뒤 아티팩트 버전의 태그를 가져와 확인하는 방법을 보여줍니다: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 아이콘)을 클릭합니다.
W&B 앱 UI를 사용해 컬렉션과 아티팩트 버전에서 기존 태그를 검색하세요.
- W&B Registry로 이동합니다.
- 레지스트리 카드를 클릭합니다.
- 검색 창에 태그 이름을 입력합니다.
W&B Python SDK를 사용해 특정 태그가 달린 아티팩트 버전을 찾습니다:
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)