아티팩트의 일부 파일에 변경 사항을 적용해야 하고 원본 아티팩트의 크기가 상당히 큰 경우에는 증분 아티팩트를 만드는 것이 좋습니다.
처음부터 새 아티팩트 버전 만들기
- Single run: 하나의 run이 새 버전에 필요한 모든 데이터를 제공합니다. 가장 일반적인 경우이며, run이 필요한 데이터를 완전히 재생성할 수 있을 때 가장 적합합니다. 예를 들어 저장된 모델을 출력하거나, 분석을 위해 테이블에 모델 예측을 출력하는 경우입니다.
- Distributed runs: 여러 run의 집합이 함께 새 버전에 필요한 모든 데이터를 제공합니다. 보통 여러 run이 병렬로 데이터를 생성하는 분산 작업에 가장 적합합니다. 예를 들어 모델을 분산 방식으로 평가하고 예측을 출력하는 경우입니다.
wandb.Artifact API에 전달하면 W&B는 새 아티팩트를 만들고 v0 별칭을 부여합니다. 동일한 아티팩트에 다시 log하면 W&B는 콘텐츠의 체크섬을 계산합니다. 아티팩트가 변경된 경우 W&B는 새 버전 v1을 저장합니다.
프로젝트의 기존 아티팩트와 일치하는 이름과 유형을 wandb.Artifact API에 전달하면 W&B는 기존 아티팩트를 가져옵니다. 가져온 아티팩트의 버전은 1보다 큽니다.

단일 run
- run 출력으로 추적
- 직접 저장
wandb.Run.log_artifact()를 사용하면 아티팩트를 run과 명시적으로 연결할 수 있습니다:wandb.init()로 run을 생성합니다.wandb.Artifact로 새 아티팩트를 만들거나 기존 아티팩트를 가져옵니다.wandb.Artifact.add_file()로 아티팩트에 파일을 추가합니다.wandb.Run.log_artifact()로 run에 아티팩트를 기록합니다.
분산 run
- 컬렉션의 각 run이 동일한 버전에서 함께 작업하려면 동일한 고유 ID(
distributed_id)를 알고 있어야 합니다. 기본적으로 이 값이 있으면 W&B는wandb.init(group=GROUP)로 설정한 run의group을distributed_id로 사용합니다. - 버전을 “커밋”하여 상태를 영구적으로 잠그는 최종 run이 반드시 있어야 합니다.
- 공동 작업 중인 아티팩트에 내용을 추가하려면
upsert_artifact를 사용하고, 커밋을 최종 완료하려면finish_artifact를 사용하세요.
upsert_artifact를 사용해 동일한 아티팩트에 각기 다른 이미지 파일을 추가합니다.
Run 1
Run 2
Run 3
wandb.Run.finish_artifact()를 호출하는 run은 아티팩트에 파일을 포함할 수 있지만, 반드시 포함할 필요는 없습니다.
기존 버전에서 새 아티팩트 버전 만들기

Artifact.add_file(), Artifact.add_dir(), Artifact.remove() 같은 메서드를 사용해 초안을 수정할 수 있습니다. 전체 메서드 목록은 Artifact 레퍼런스 문서를 참조하세요.
초안 수정을 마친 후에는 이를 로그하거나 저장해 새 아티팩트 버전을 만드세요.
증분 아티팩트 대신 새 아티팩트를 처음부터 만들 수도 있습니다. 하지만 이 방법을 사용하려면 모든 아티팩트 파일을 로컬 디스크에서 사용할 수 있어야 합니다. 증분 아티팩트를 사용하면 이전 아티팩트 버전의 변경되지 않은 파일을 재사용하면서 개별 파일을 추가, 삭제, 또는 수정할 수 있습니다.
단일 run
- run 입력으로 추적
- 직접 가져오기
현재 run이 아티팩트를 사용하는 경우
wandb.Run.use_artifact()를 사용하세요. W&B는 아티팩트를 해당 run의 입력으로 기록합니다.wandb.Run.use_artifact()로 아티팩트 버전을 가져오세요.Artifact.new_draft()로 초안을 만드세요.- 초안에서 항목을 추가, 제거 또는 수정하세요.
wandb.Run.log_artifact()로 초안을 기록하여 새 아티팩트 버전을 생성하세요.
분산 run
Artifact.upsert_artifact() 및 Artifact.finish_artifact()를 사용하세요.
다음 예시는 아티팩트가 run의 입력으로 사용되는 경우, 분산 run에서 새 아티팩트 버전을 생성하는 방법을 보여줍니다. 아티팩트를 Public API로 직접 가져오는 경우에도 동일한 방식을 적용할 수 있습니다.