메인 콘텐츠로 건너뛰기
W&B를 사용해 머신 러닝 워크플로에서 모델 아티팩트를 언제, 어떻게 추적하고 공유하며 관리할 수 있는지 알아보세요. 이 페이지에서는 각 작업에 적합한 W&B API를 사용해 실험을 로깅하고, 리포트를 생성하고, 로깅된 데이터에 액세스하는 방법을 다룹니다. 이 튜토리얼에서는 다음을 사용합니다.
  • W&B Python SDK (wandb.sdk): 트레이닝 중 실험을 로깅하고 모니터링합니다.
  • W&B Public API (wandb.apis.public): 로깅된 실험 데이터를 쿼리하고 분석합니다.
  • W&B Reports and Workspaces API (wandb.wandb-workspaces): 결과를 요약하는 리포트를 생성합니다.

가입하고 API 키 생성하기

W&B에서 사용 중인 머신을 인증하려면 먼저 wandb.ai/settings에서 API 키를 생성해야 합니다. API 키를 복사해 안전한 곳에 보관하세요.

패키지 설치 및 임포트

이 워크스루에 필요한 W&B 라이브러리와 몇 가지 추가 패키지를 설치하세요.
W&B Python SDK를 임포트하세요:
다음 코드 블록에서 팀의 entity를 지정하세요:

모델 트레이닝하기

다음 코드는 기본적인 머신러닝 워크플로를 시뮬레이션합니다. 모델을 트레이닝하고, 메트릭을 로깅하고, 모델을 아티팩트로 저장합니다. 트레이닝 중 W&B와 상호작용하려면 W&B Python SDK(wandb.sdk)를 사용하세요. wandb.Run.log()로 loss를 로깅한 다음, wandb.Artifact로 트레이닝한 모델을 아티팩트로 저장하고, 마지막으로 Artifact.add_file로 모델 파일을 추가합니다.
이전 코드 블록의 핵심 내용은 다음과 같습니다.
  • 트레이닝 중에 메트릭을 로깅하려면 wandb.Run.log()를 사용합니다.
  • 모델(데이터셋 등)을 W&B 프로젝트에 아티팩트로 저장하려면 wandb.Artifact를 사용합니다.
이제 모델을 트레이닝하고 아티팩트로 저장했으므로, W&B의 레지스트리에 게시할 수 있습니다. 프로젝트에서 아티팩트를 조회하고 Model 레지스트리에 게시할 준비를 하려면 wandb.Run.use_artifact()를 사용합니다. wandb.Run.use_artifact()는 두 가지 핵심 용도로 사용됩니다.
  • 프로젝트에서 아티팩트 객체를 조회합니다.
  • 아티팩트를 run의 입력으로 표시해 재현성과 추적 가능성을 보장합니다. 자세한 내용은 Create and view Lineage 맵을 참조하세요.

대시보드에서 트레이닝 데이터 확인하기

https://wandb.ai/login 에서 계정에 로그인합니다. Projects 아래에 my-awesome-project(또는 위에서 프로젝트 이름으로 사용한 이름)가 표시됩니다. 이를 클릭해 프로젝트의 워크스페이스로 이동합니다. 여기에서 지금까지 수행한 모든 run의 세부 정보를 확인할 수 있습니다. 이 스크린샷에서는 코드를 여러 번 다시 실행해 여러 run이 생성되었으며, 각 run에는 무작위로 생성된 이름이 지정되어 있습니다.
run 이름, 메트릭, 상태 정보가 포함된 테이블 뷰에서 여러 run을 보여주는 W&B 프로젝트 페이지

모델을 W&B 레지스트리에 게시하기

조직의 다른 사용자와 모델을 공유하려면 wandb.Run.link_artifact()를 사용해 컬렉션에 게시하세요. 다음 코드는 아티팩트를 레지스트리에 연결하여 팀에서 액세스할 수 있게 합니다.
wandb.Run.link_artifact()를 실행하면 모델 아티팩트가 레지스트리의 DemoModels 컬렉션에 추가됩니다. 여기에서 버전 이력, Lineage 맵, 기타 메타데이터 등의 세부 정보를 확인할 수 있습니다. 아티팩트를 레지스트리에 연결하는 방법에 대한 자세한 내용은 아티팩트를 레지스트리에 연결하기를 참조하세요.

Inference용 모델 아티팩트를 레지스트리에서 조회

모델로 Inference를 수행하려면 wandb.Run.use_artifact()를 사용하여 레지스트리에서 게시된 아티팩트를 조회합니다. 그러면 아티팩트 객체가 반환되며, 이후 wandb.Artifact.download()을 사용해 아티팩트를 로컬 파일로 다운로드할 수 있습니다.
레지스트리에서 아티팩트를 조회하는 방법에 대한 자세한 내용은 레지스트리에서 아티팩트 다운로드를 참조하세요. 사용 중인 머신 러닝 프레임워크에 따라 가중치를 로드하기 전에 모델 아키텍처를 다시 생성해야 할 수 있습니다. 이는 사용하는 프레임워크와 모델에 따라 달라지므로, 여기서는 독자가 직접 수행하는 것으로 남겨 둡니다.

발견한 내용을 리포트로 공유하기

W&B Report and Workspace API는 공개 프리뷰 상태입니다.
작업을 요약한 리포트를 만들어 공유하세요. 프로그래밍 방식으로 리포트를 만들려면 W&B Report and Workspace API를 사용하세요. 먼저 W&B Reports API를 설치하세요:
다음 코드 블록은 마크다운, 패널 그리드 등을 포함한 여러 블록으로 구성된 리포트를 생성합니다. 블록을 더 추가하거나 기존 블록의 내용을 변경해 리포트를 사용자 지정할 수 있습니다. 코드 블록을 실행하면 생성된 리포트 URL 링크가 출력됩니다. 브라우저에서 이 링크를 열어 리포트를 확인할 수 있습니다.
프로그래밍 방식으로 리포트를 만들거나 W&B App에서 대화형으로 리포트를 만드는 방법에 대한 자세한 내용은 W&B Docs Developer 가이드의 리포트 만들기를 참조하세요.

레지스트리 쿼리하기

W&B Public API를 사용해 W&B의 이력 데이터를 쿼리하고, 분석하고, 관리할 수 있습니다. 이는 아티팩트의 리니지를 추적하고, 서로 다른 버전을 비교하며, 시간에 따른 모델 성능을 분석하는 데 유용합니다. 다음 코드 블록은 특정 컬렉션의 모든 아티팩트를 대상으로 모델 레지스트리를 쿼리하는 방법을 보여줍니다. 컬렉션을 조회한 뒤 해당 버전들을 순회하면서 각 아티팩트의 이름과 버전을 출력합니다.
레지스트리 쿼리에 대한 자세한 내용은 레지스트리 항목 쿼리를 참조하세요.