어떤 라이브러리에도 wandb 추가하기
아직 W&B 사용 방법을 익히는 중이라면, 이 문서의 Experiment Tracking과 같은 다른 W&B 가이드를 먼저 살펴볼 것을 권장합니다.
- 설정 요구사항
- 사용자 로그인
- wandb 실행 시작하기
- 실행 Config 정의하기
- W&B로 로그 기록하기
- 분산 학습
- 모델 체크포인트와 기타 기능
- 하이퍼파라미터 튜닝
- 고급 통합
설정 요구 사항
설치 시 W&B를 필수 의존성으로 설정하기
requirements.txt와 같은 종속성 파일에 W&B Python 라이브러리(wandb)를 추가하세요.
설치 시 W&B를 선택 사항으로 만들기
wandb)를 선택 사항으로 두는 방법은 두 가지가 있습니다:
A. 사용자가 wandb를 수동으로 설치하지 않은 상태에서 wandb 기능을 사용하려고 할 때 오류를 발생시키고, 적절한 오류 메시지를 표시하도록 합니다:
pyproject.toml 파일에 wandb를 선택적 의존성으로 추가합니다:
사용자 로그인하기
API key 생성
보다 간편하게 설정하려면 User Settings로 바로 이동해 API key를 생성하세요. 새로 생성된 API key는 즉시 복사하여 비밀번호 관리자와 같은 안전한 위치에 저장하세요.
- 오른쪽 상단의 사용자 프로필 아이콘을 클릭합니다.
- User Settings를 선택한 다음, 아래로 스크롤하여 API Keys 섹션으로 이동합니다.
wandb 라이브러리를 설치하고 로그인하기
wandb 라이브러리를 설치하고 로그인하려면:
- Command Line
- Python
- Python notebook
-
WANDB_API_KEY환경 변수를 API key로 설정합니다. -
wandb라이브러리를 설치하고 로그인합니다.
wandb.init을 호출하면 자동으로 로그인 프롬프트가 표시됩니다.
실행 시작하기
wandb_project와 같은 파라미터를 사용해 사용자가 직접 설정하도록 할 수 있습니다. 이때 엔터티 파라미터에는 사용자 이름 또는 팀 이름을 wandb_entity와 같이 함께 전달합니다:
run.finish()를 호출하여 실행을 종료해야 합니다. 이 방식이 사용 중인 통합의 설계와 잘 맞는다면, 실행을 컨텍스트 매니저로 사용하십시오:
wandb.init는 언제 호출해야 하나요?
wandb를 선택적 의존성으로 사용하기
wandb를 옵션으로 두고 싶다면 다음 중 하나를 사용할 수 있습니다:
- 다음과 같이
wandb플래그를 정의하거나:
- Python
- Bash
- 또는
wandb.init에서wandb를disabled로 설정하거나:
- Python
- Bash
- 또는
wandb를 오프라인 모드로 설정합니다. 이 경우에도wandb는 여전히 실행되지만, 인터넷을 통해 W&B와 통신을 시도하지는 않습니다:
- Environment Variable
- Bash
실행 config 정의하기
wandb 실행 config를 사용하면 W&B 실행을 생성할 때 모델, 데이터셋 등의 메타데이터를 함께 지정할 수 있습니다. 이 정보는 서로 다른 실험을 비교하고 주요 차이점을 빠르게 파악하는 데 활용할 수 있습니다.

- 모델 이름, 버전, 아키텍처 파라미터 등
- 데이터셋 이름, 버전, train/val 예제 수 등
- 학습률, 배치 크기, 옵티마이저와 같은 학습 파라미터 등
실행 config 업데이트
wandb.Run.config.update를 사용해 config를 업데이트합니다. 구성 딕셔너리는 딕셔너리가 정의된 이후에 파라미터를 얻게 되는 경우에 유용합니다. 예를 들어, 모델을 인스턴스화한 후 모델의 파라미터를 추가하고 싶을 수 있습니다.
W&B로 로깅하기
메트릭 기록
run.log에 전달합니다:
train/..., val/... 같은 접두사를 사용해 UI에서 자동으로 그룹화할 수 있습니다. 이렇게 하면 학습 및 검증 메트릭(또는 분리해서 보고 싶은 다른 유형의 메트릭)을 위해 W&B 워크스페이스 내에 각각 별도의 섹션이 생성됩니다:

wandb.Run.log() 참고 문서를 참조하세요.
x축 불일치 방지
run.log를 여러 번 호출하면, wandb SDK는 run.log가 호출될 때마다 내부 스텝 카운터를 증가시킵니다. 이 카운터는 학습 루프의 학습 스텝과 일치하지 않을 수 있습니다.
이러한 불일치를 피하려면, wandb.init을 호출한 직후에 한 번만 run.define_metric을 사용해 x축 스텝을 명시적으로 정의하세요:
*는 모든 메트릭이 차트에서 global_step을 x축으로 사용한다는 뜻입니다. 특정 메트릭만 global_step 기준으로 기록하고 싶다면, 대신 해당 메트릭들을 명시하면 됩니다:
run.log를 호출할 때마다 지표와 step 메트릭, global_step을 함께 기록하세요:
이미지, 테이블, 오디오 등 로깅하기
- 메트릭은 어느 정도 간격으로 로깅해야 할까요? 선택적으로 로깅해도 될까요?
- 시각화에 어떤 유형의 데이터가 도움이 될까요?
- 이미지의 경우 샘플 예측값, 세그멘테이션 마스크 등을 로깅하여 시간 경과에 따른 변화를 확인할 수 있습니다.
- 텍스트의 경우 나중에 분석할 수 있도록 샘플 예측값을 테이블 형태로 로깅할 수 있습니다.
분산 학습
- 어떤 프로세스가 “메인” 프로세스인지 감지한 뒤, 해당 프로세스에서만
wandb를 사용합니다. 다른 프로세스에서 오는 필요한 데이터는 먼저 메인 프로세스로 전달해야 합니다. (이 워크플로를 권장합니다.) - 모든 프로세스에서
wandb를 호출하고, 모두에게 동일한 고유group이름을 부여해 자동으로 하나의 그룹으로 묶이도록 합니다.
모델 체크포인트와 기타 항목 로깅

- 모델 체크포인트나 데이터셋을 로깅할지 여부(옵션으로 두고 싶은 경우).
- (있는 경우) 입력으로 사용되는 아티팩트의 경로나 참조값. 예:
user/project/artifact. - 아티팩트를 로깅하는 빈도.
모델 체크포인트 기록하기
wandb 실행 ID를 활용해 출력되는 Model Checkpoints의 이름을 지정하면 실행 간 체크포인트를 구분하는 데 유용합니다. 또한 유용한 메타데이터를 추가할 수도 있습니다. 아래 예시와 같이 각 모델에 별칭(alias)을 추가할 수도 있습니다:
사전 학습된 모델 또는 데이터셋을 로깅하고 추적하기
아티팩트 다운로드
wandb가 로컬에 사본을 다운로드하여 캐시합니다:
latest, v2, v3)이나 로깅 시 수동으로 지정한 별칭(best_accuracy 등)을 사용해 참조할 수 있습니다.
분산 환경이나 단순 추론과 같이 wandb.init을 통해 wandb 실행을 생성하지 않고 아티팩트를 다운로드하려는 경우, 대신 wandb API를 사용해 아티팩트를 참조할 수 있습니다: