메인 콘텐츠로 건너뛰기
W&B는 _계보 (lineage) 그래프_라고 불리는 유향 비순환 그래프 (DAG)를 사용하여 run 의 입력과 출력을 추적합니다. 계보 그래프는 ML 실험에서 Artifacts 와 Runs 사이의 관계를 시각적으로 표현한 것입니다. 이 그래프는 원시 데이터 수집부터 모델 트레이닝 및 평가에 이르기까지, 데이터와 모델이 ML 라이프사이클의 여러 단계를 어떻게 통과하는지 보여줍니다. Artifact 계보를 추적하면 다음과 같은 몇 가지 주요 장점이 있습니다:
  • 재현성 (Reproducibility): 팀이 디버깅, 실험 및 검증을 위해 실험, 모델, 결과를 재현할 수 있도록 합니다.
  • 버전 관리: 시간에 따른 Artifact 의 변경 사항을 추적하여, 팀이 필요할 때 이전 데이터나 모델 버전으로 되돌릴 수 있도록 합니다.
  • 감사 (Auditing): 규정 준수 및 거버넌스를 지원하기 위해 Artifact 와 변환 과정에 대한 상세한 기록을 유지합니다.
  • 협업: 실험 이력을 투명하게 공개하여 중복된 노력을 줄이고 개발 속도를 높임으로써 팀워크를 개선하는 데 도움이 됩니다.

Artifact 계보 그래프 보기

Artifact 의 계보 그래프를 보려면 다음 단계를 따르세요:
  1. W&B 앱으로 이동합니다.
  2. 탐색하려는 run 이나 Artifact 가 포함된 Projects 를 선택합니다.
  3. 왼쪽 사이드바에서 Artifacts 탭을 클릭합니다.
  4. Lineage 탭을 선택합니다.
Getting to the Lineage tab

계보 그래프 추적 활성화하기

계보 그래프 추적을 활성화하려면, W&B Python SDK를 사용하여 Artifact 를 run 의 입력 또는 출력으로 표시해야 합니다.

Run 의 입력 추적하기

wandb.Run.use_artifact() 메소드를 사용하여 Artifact 를 run 의 입력(또는 종속성)으로 표시합니다. Artifact 의 이름과 특정 버전을 참조하기 위한 선택적 에일리어스를 지정하세요. Artifact 이름의 형식은 <artifact_name>:<version> 또는 <artifact_name>:<alias>입니다. 꺾쇠괄호(< >)로 묶인 값들을 실제 값으로 바꾸세요:
import wandb

# run 초기화
with wandb.init(entity="<entity>", project="<project>") as run:
  # Artifact를 가져오고, 이를 종속성으로 표시합니다
  artifact = run.use_artifact(artifact_or_name="<name>", aliases="<alias>")

Run 의 출력 추적하기

wandb.Run.log_artifact()를 사용하여 Artifact 를 run 의 출력으로 선언합니다. 먼저, wandb.Artifact() 생성자로 Artifact 를 생성합니다. 그런 다음, wandb.Run.log_artifact()를 사용하여 해당 Artifact 를 run 의 출력으로 로그합니다. 꺾쇠괄호(< >)로 묶인 값들을 실제 값으로 바꾸세요:
import wandb

# run 초기화
with wandb.init(entity="<entity>", project="<project>") as run:
  
  # Artifact 생성
  artifact = wandb.Artifact(name = "<artifact_name>", type = "<artifact_type>")
  artifact.add_file(local_path = "<local_filepath>", name="<optional-name>")

  # Artifact를 run의 출력으로 로그
  run.log_artifact(artifact_or_path = artifact)

계보 그래프 탐색하기

사용자가 제공한 Artifact 나 job 유형은 이름 앞에 표시되며, Artifact 는 파란색 아이콘으로, Runs 는 녹색 아이콘으로 표시됩니다. 화살표는 그래프에서 run 이나 Artifact 의 입력 및 출력을 상세히 보여줍니다.
Run and artifact nodes
왼쪽 사이드바와 Lineage 탭 모두에서 Artifact 의 유형과 이름을 확인할 수 있습니다.
Inputs and outputs
더 자세한 보기를 원하시면, 특정 Artifact 나 run 을 클릭하여 해당 오브젝트에 대한 상세 정보를 확인하세요.
Previewing a run

Artifact 클러스터 (Clusters)

그래프의 한 레벨에 5개 이상의 Runs 또는 Artifacts 가 있는 경우, 클러스터가 생성됩니다. 클러스터에는 특정 버전의 Runs 또는 Artifacts 를 찾기 위한 검색 바가 있으며, 클러스터 내부 노드의 계보를 계속 조사하기 위해 클러스터에서 개별 노드를 끌어낼 수 있습니다. 노드를 클릭하면 해당 노드의 개요가 포함된 미리보기가 열립니다. 화살표를 클릭하면 개별 run 이나 Artifact 가 추출되어, 추출된 노드의 계보를 조사할 수 있습니다.
Searching a run cluster

프로그래밍 방식으로 Artifact 그래프 탐색하기

W&B Python SDK를 사용하여 프로그래밍 방식으로 그래프를 탐색할 수 있습니다. Artifact 오브젝트의 logged_by()used_by() 메소드를 사용하여 그래프를 트래버스하세요:
with wandb.init() as run:
    artifact = run.use_artifact("artifact_name:latest")

    # Artifact에서 그래프를 위아래로 트래버스합니다:
    producer_run = artifact.logged_by()
    consumer_runs = artifact.used_by()