메인 콘텐츠로 건너뛰기
Jupyter에서 W&B를 사용하여 노트북을 벗어나지 않고도 대화형 시각화를 사용할 수 있습니다. 사용자 정의 분석, 실험, 프로토타입을 하나로 결합하고, 전체 과정을 빠짐없이 로깅할 수 있습니다.

Jupyter notebook에서 W&B 활용 사례

  1. 반복 실험: 실험을 반복 실행하면서 파라미터를 조정하고, 진행 상황을 따로 손으로 적어 두지 않아도 실행한 모든 run이 자동으로 W&B에 저장되도록 할 수 있습니다.
  2. 코드 저장: 모델을 재현할 때 notebook에서 어떤 셀을 어떤 순서로 실행했는지 알기 어렵습니다. 설정 페이지에서 코드 저장 기능을 켜서 각 실험마다 셀 실행 기록을 저장하세요.
  3. 커스텀 분석: run이 W&B에 로깅되면, API에서 데이터프레임을 손쉽게 가져와 커스텀 분석을 수행한 다음, 그 결과를 다시 W&B에 로깅하여 리포트로 저장하고 공유할 수 있습니다.

노트북에서 시작하기

노트북의 첫 부분에 다음 코드를 추가해 W&B를 설치하고 계정을 연결하세요:
!pip install wandb -qqq
import wandb
wandb.login()
다음으로, 실험을 설정하고 하이퍼파라미터를 저장합니다:
wandb.init(
    project="jupyter-projo",
    config={
        "batch_size": 128,
        "learning_rate": 0.01,
        "dataset": "CIFAR-100",
    },
)
wandb.init()을 실행한 후, 노트북에서 실시간 그래프를 보려면 새 셀에서 %%wandb로 시작하세요. 이 셀을 여러 번 실행하면 데이터가 현재 run에 계속 추가됩니다.
%%wandb

# 트레이닝 루프를 여기에 작성하세요
예제 노트북에서 직접 사용해 보세요.
Jupyter W&B 위젯

노트북에서 W&B 인터페이스를 실시간으로 렌더링하기

%wandb 매직 명령어를 사용하여 기존의 대시보드, 스윕, 리포트를 노트북에서 바로 표시할 수도 있습니다:
# 프로젝트 워크스페이스 표시
%wandb USERNAME/PROJECT
# 단일 run 표시
%wandb USERNAME/PROJECT/runs/RUN_ID
# 스윕 표시
%wandb USERNAME/PROJECT/sweeps/SWEEP_ID
# 리포트 표시
%wandb USERNAME/PROJECT/reports/REPORT_ID
# 임베드된 iframe의 높이 지정
%wandb USERNAME/PROJECT -h 2048
%%wandb 또는 %wandb 매직 명령어 대신, wandb.init()을 실행한 이후에는 셀을 wandb.Run.finish()로 끝내 인라인 그래프를 표시할 수 있으며, 당사 API가 반환하는 리포트, 스윕, run 객체에 대해 ipython.display(...)를 호출할 수도 있습니다.
import wandb
from IPython.display import display
# run 초기화
run = wandb.init()

# 셀이 run.finish()를 출력하면 실시간 그래프를 볼 수 있습니다
run.finish()
W&B로 무엇을 할 수 있는지 더 알고 싶다면 데이터와 미디어 로깅 가이드를 참고하고, 선호하는 ML 툴킷과 W&B를 인테그레이션하는 방법을 살펴보거나, 바로 레퍼런스 문서예제 리포지토리를 확인해 보세요.

W&B에서 제공하는 추가 Jupyter 기능

  1. Colab에서 간편한 인증: Colab에서 처음으로 wandb.init을 호출하면, 브라우저에서 W&B에 로그인되어 있는 경우 런타임이 자동으로 인증됩니다. run 페이지의 개요 탭에서 해당 Colab으로 연결되는 링크를 볼 수 있습니다.
  2. Jupyter 매직: 노트북 안에서 직접 대시보드, 스윕, 리포트를 표시할 수 있습니다. %wandb 매직은 프로젝트, 스윕 또는 리포트에 대한 경로를 인수로 받아 노트북 안에 W&B 인터페이스를 바로 렌더링합니다.
  3. 도커 기반 Jupyter 실행: wandb docker --jupyter를 호출하면 도커 컨테이너를 시작하고, 그 안에 코드를 마운트한 뒤, Jupyter가 설치되어 있는지 확인하고 포트 8888에서 실행합니다.
  4. 셀을 순서에 관계없이 안심하고 실행: 기본적으로 wandb.init이 다음에 호출될 때까지 기다렸다가 run을 finished 상태로 표시합니다. 이렇게 하면 여러 개의 셀(예: 하나는 데이터 설정, 하나는 학습, 하나는 테스트)을 원하는 순서로 실행하면서도 모두 동일한 run에 로그를 남길 수 있습니다. User Settings에서 코드 저장을 켜면, 실행된 셀을 실행 순서와 실행 당시의 상태 그대로 함께 로그로 남겨, 가장 비선형적인 파이프라인조차 재현할 수 있습니다. Jupyter 노트북에서 run을 수동으로 완료 상태로 표시하려면 run.finish를 호출하십시오.
import wandb

run = wandb.init()

# 트레이닝 스크립트 및 로깅 코드를 여기에 작성하세요

run.finish()