Skip to main content
PyTorch Lightning는 PyTorch 코드를 정리하고 분산 트레이닝 및 16비트 정밀도와 같은 고급 기능을 추가하기 위한 경량 래퍼를 제공합니다. W&B는 ML 실험을 로깅하는 경량 래퍼를 제공합니다. 두 가지를 직접 결합할 필요가 없습니다. PyTorch Lightning 라이브러리는 WandbLogger를 통해 W&B를 직접 포함합니다. 이 페이지는 WandbLogger를 사용하여 메트릭을 추적하고, 하이퍼파라미터를 로깅하고, 모델 체크포인트를 아티팩트로 저장하고, 미디어를 로깅하고, PyTorch Lightning 및 W&B와 함께 multi-GPU 트레이닝을 실행하는 방법을 보여줍니다.

Lightning과 통합하기

다음 섹션에서는 W&B로 인증하는 방법, wandb 라이브러리를 설치하는 방법, Lightning의 Trainer 또는 Fabric 인스턴스에 WandbLogger를 연결하는 방법을 보여줍니다.
wandb.log() 사용: WandbLogger는 Trainer의 global_step을 사용하여 W&B에 로깅합니다. 코드에서 직접 wandb.log()를 추가로 호출하는 경우 wandb.log()에서 step 인수를 사용하지 마십시오.대신 다른 메트릭과 마찬가지로 Trainer의 global_step을 로깅하세요:
대화형 대시보드

가입하고 API 키 생성하기

API 키는 W&B에 머신을 인증합니다. 사용자 프로필에서 API 키를 생성할 수 있습니다.
더 간단한 방법으로 User Settings로 이동해 API 키를 생성하세요. API 키를 즉시 복사한 후 비밀번호 관리자와 같은 안전한 위치에 저장하세요.
사용자 프로필에서 API 키를 생성하려면:
  1. 오른쪽 상단의 사용자 프로필 아이콘을 클릭하세요.
  2. User Settings를 선택한 다음 API Keys 섹션으로 스크롤하세요.

wandb 라이브러리 설치 및 로그인

wandb 라이브러리를 로컬에 설치하고 로그인하려면 다음 단계를 따르세요.
  1. WANDB_API_KEY 환경 변수에 API 키를 설정하세요. <>로 묶인 값은 사용자 값으로 바꾸세요.
  2. wandb 라이브러리를 설치하고 로그인하세요.

PyTorch Lightning의 WandbLogger 사용하기

PyTorch Lightning에는 메트릭, model 가중치, 미디어를 로깅할 수 있는 여러 WandbLogger 클래스가 있습니다. 사용 중인 트레이닝 설정에 맞는 클래스를 선택하세요. Lightning과 통합하려면 WandbLogger를 인스턴스화한 후 Lightning의 Trainer 또는 Fabric에 전달하세요.

공통 logger 인수

다음 table은 WandbLogger에 대한 공통 매개변수를 나열합니다. 모든 logger 인수에 대한 자세한 내용은 PyTorch Lightning 문서를 참조하세요.

하이퍼파라미터 로깅하기

W&B로 하이퍼파라미터를 로깅하면 run을 비교하고 결과를 재현할 수 있습니다. 사용하는 Logger에 맞는 방법을 선택하세요.

추가 설정 매개변수 로깅하기

하이퍼파라미터와 함께 추가 설정 값을 캡처하려면 run 설정을 직접 업데이트하세요:

그라디언트, 매개변수 히스토그램 및 모델 토폴로지 로깅하기

모델 객체를 wandb_logger.watch()에 전달하여 훈련하는 동안 모델의 그라디언트와 매개변수를 모니터링하세요. PyTorch Lightning WandbLogger 문서를 참조하세요.

메트릭 로깅

WandbLogger를 사용할 때 메트릭을 W&B에 로깅하려면 LightningModule 내에서, 예를 들어 training_step 또는 validation_step 메서드 안에서 self.log('my_metric_name', metric_value)를 호출하세요.다음 코드 스니펫은 메트릭과 LightningModule 하이퍼파라미터를 로깅하도록 LightningModule을 정의하는 방법을 보여줍니다. 이 예제에서는 torchmetrics 라이브러리를 사용하여 메트릭을 계산합니다.

메트릭의 최소/최대값 로깅

W&B의 define_metric 함수를 사용하면 W&B summary 메트릭이 해당 메트릭의 최소, 최대, 평균 또는 최적값을 표시할지 정의할 수 있습니다. define_metric을 사용하지 않으면 summary 메트릭에 마지막으로 로깅한 값이 표시됩니다. 자세한 내용은 로깅 축 사용자 지정 가이드를 참조하세요. W&B summary 메트릭에서 최대 검증 정확도를 추적하려면 트레이닝 시작 시 wandb.define_metric()을 한 번만 호출하세요.

모델 체크포인트

W&B 아티팩트로 체크포인트를 저장하면 run, 별칭 또는 버전으로 나중에 검색할 수 있는 버전 관리된 모델 파일을 얻을 수 있습니다. W&B 아티팩트로 모델 체크포인트를 저장하려면 Lightning ModelCheckpoint callback을 사용하고 WandbLogger에서 log_model 인수를 설정하세요.
latest와 best 별칭은 W&B 아티팩트에서 모델 체크포인트를 더 쉽게 검색할 수 있도록 자동으로 설정됩니다:
로깅한 모델 체크포인트는 W&B 아티팩트 UI에서 조회할 수 있으며, 전체 모델 리니지도 함께 확인할 수 있습니다(UI의 예시 모델 체크포인트 참조). 최고 성능 모델 체크포인트를 북마크하고 팀 전체에서 한곳에 모아 관리하려면 W&B 모델 레지스트리에 연결하세요. 레지스트리에서는 최고 성능 모델을 작업별로 정리하고, 모델 라이프사이클을 관리하고, ML 라이프사이클 전반에 걸쳐 추적 및 감사할 수 있으며, 웹훅이나 작업으로 다운스트림 액션을 자동화할 수도 있습니다.

이미지, 텍스트 등 로깅하기

WandbLogger에는 미디어를 로깅하기 위한 log_image, log_text, log_table 메서드가 있습니다. 또한 wandb.log() 또는 trainer.logger.experiment.log()를 직접 호출하여 오디오, Molecule, point cloud, 3D 객체와 같은 다른 미디어 유형을 로깅할 수 있습니다.
Lightning의 callback 시스템을 사용하여 WandbLogger를 통해 W&B에 로깅하는 시점을 제어하세요. 다음 예시는 검증 이미지 및 예측 샘플을 로깅합니다:

Lightning 및 W&B와 함께 여러 GPU 사용

분산 트레이닝을 실행할 때, rank 간에 wandb.run을 참조하는 방식이 트레이닝이 계속 진행될지 아니면 교착 상태에 빠질지에 영향을 줄 수 있습니다. 이 섹션에서는 요구 사항을 설명하고 권장 패턴을 보여줍니다. PyTorch Lightning은 DDP 인터페이스를 통해 multi-GPU를 지원합니다. 그러나 PyTorch Lightning의 설계상 GPU를 인스턴스화하는 방식에 주의해야 합니다. Lightning은 트레이닝 루프의 각 GPU(또는 rank)를 정확히 동일한 방식으로, 동일한 초기 조건으로 인스턴스화해야 합니다. 그러나 rank 0 프로세스만 wandb.run 객체에 액세스할 수 있습니다. 0이 아닌 rank 프로세스의 경우 wandb.run = None입니다. 이로 인해 0이 아닌 rank 프로세스가 실패할 수 있습니다. 이 경우 rank 0 프로세스는 이미 크래시된 0이 아닌 rank 프로세스가 join하기를 계속 기다리게 되므로 교착 상태에 빠질 수 있습니다. 따라서 트레이닝 코드를 설정하는 방식에 주의해야 합니다. 권장하는 방법은 코드가 wandb.run 객체에 의존하지 않도록 작성하는 것입니다.

예시

엔드투엔드 워크스루를 따라 하려면 Colab 노트북이 포함된 비디오 튜토리얼을 참고하세요.

자주 묻는 질문

W&B는 Lightning과 어떻게 통합되나요?

핵심 인테그레이션은 Lightning loggers API를 기반으로 합니다. 이 API를 사용하면 로깅 코드의 상당 부분을 프레임워크에 구애받지 않는 방식으로 작성할 수 있습니다. Logger 인스턴스는 Lightning Trainer에 전달되며, 이 API가 제공하는 풍부한 훅 및 callback 시스템에 따라 트리거됩니다. 덕분에 연구 코드를 엔지니어링 코드 및 로깅 코드와 깔끔하게 분리할 수 있습니다.

추가 코드 없이 인테그레이션은 무엇을 로깅하나요?

W&B는 모델 체크포인트를 저장하므로, 이를 확인하거나 향후 run에서 사용하기 위해 다운로드할 수 있습니다. W&B는 또한 GPU 사용량 및 네트워크 I/O와 같은 시스템 메트릭을 캡처합니다. 하드웨어 및 OS 정보와 같은 환경 정보를 캡처합니다. Git 커밋 및 diff 패치, 노트북 콘텐츠, 세션 이력을 포함한 코드 상태를 캡처합니다. 또한 표준 출력으로 출력된 모든 것을 캡처합니다.

wandb.run을 트레이닝 설정에서 사용해야 하는 경우에는 어떻게 하나요?

액세스해야 하는 변수의 범위를 직접 확장해야 합니다. 즉, 모든 프로세스에서 초기 조건이 동일하도록 하십시오.
그렇다면 os.environ["WANDB_DIR"]을 사용하여 모델 체크포인트 디렉터리를 설정할 수 있습니다. 이렇게 하면 0이 아닌 rank 프로세스가 wandb.run.dir에 액세스할 수 있습니다.
마지막 수정일 2026년 9월 30일