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

아티팩트의 lineage 그래프 보기

아티팩트의 lineage 그래프를 보려면:
  1. W&B App으로 이동합니다.
  2. 탐색하려는 run 또는 아티팩트가 포함된 프로젝트를 선택합니다.
  3. 프로젝트 사이드바에서 Artifacts 탭을 클릭합니다.
  4. Lineage 탭을 선택합니다.
Lineage 탭으로 이동하기

라인리지 그래프 추적 활성화하기

라인리지 그래프 추적을 활성화하려면 W&B Python SDK를 사용해서 아티팩트를 run의 입력 또는 출력으로 지정해야 합니다.

run의 입력 추적하기

wandb.Run.use_artifact() 메서드를 사용해서 아티팩트를 run의 입력(또는 의존성)으로 지정합니다. 아티팩트의 이름과, 해당 아티팩트의 특정 버전을 참조하기 위한 선택적 별칭(alias)을 지정합니다. 아티팩트 이름 형식은 <artifact_name>:<version> 또는 <artifact_name>:<alias>입니다. 꺾쇠 괄호(< >)로 둘러싸인 값을 사용자 값으로 바꾸세요:
import wandb

# run 초기화
with wandb.init(entity="<entity>", project="<project>") as run:
  # 아티팩트 가져오기, 의존성으로 표시
  artifact = run.use_artifact(artifact_or_name="<name>", aliases="<alias>")

run의 출력 추적하기

wandb.Run.log_artifact()를 사용해 아티팩트를 run의 출력으로 지정합니다. 먼저 wandb.Artifact() 생성자를 사용해 아티팩트를 생성합니다. 그런 다음 wandb.Run.log_artifact()으로 해당 아티팩트를 run의 출력으로 로깅합니다. 꺾쇠 괄호(< >)로 둘러싸인 값을 사용자 값으로 바꾸세요:
import wandb

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

  # 아티팩트를 run의 출력으로 로깅
  run.log_artifact(artifact_or_path = artifact)
지정한 아티팩트 또는 job 유형이 이름 앞에 표시되며, 아티팩트는 파란 아이콘으로, run은 초록색 아이콘으로 표시됩니다. 그래프의 화살표는 run 또는 아티팩트의 입력과 출력을 나타냅니다.
Run 및 아티팩트 노드
왼쪽 사이드바와 Lineage 탭 모두에서 아티팩트의 유형과 이름을 확인할 수 있습니다.
입력과 출력
더 자세히 보려면 개별 아티팩트나 run을 클릭해 해당 객체에 대한 추가 정보를 확인합니다.
Run 미리보기

아티팩트 클러스터

그래프의 한 레벨에 run 또는 아티팩트가 다섯 개 이상 있으면 해당 레벨이 클러스터로 표시됩니다. 클러스터에는 특정 버전의 run 또는 아티팩트를 찾을 수 있는 검색 창이 있으며, 클러스터 안에서 관심 있는 노드를 개별 노드로 꺼내 해당 노드의 계보를 계속 추적할 수 있습니다. 노드를 클릭하면 해당 노드에 대한 개요를 보여주는 미리보기가 열립니다. 화살표를 클릭하면 run 또는 아티팩트를 클러스터에서 분리하여, 분리된 노드의 계보를 더 자세히 살펴볼 수 있습니다.
run 클러스터에서 검색하기
W&B Python SDK를 사용하여 그래프를 프로그래밍 방식으로 탐색합니다. 아티팩트 객체의 logged_by()used_by() 메서드를 사용해 그래프를 순회하세요:
with wandb.init() as run:
    artifact = run.use_artifact("artifact_name:latest")

    # 아티팩트에서 그래프를 위아래로 탐색합니다:
    producer_run = artifact.logged_by()
    consumer_runs = artifact.used_by()