본문 바로가기
이론

[풀스택 딥러닝] 2번째, 딥러닝 실험 관리 방법, Weights & Biases, W&B, wandb, 텐서보드

by davidlds 2025. 6. 22.
반응형

개발자 직군이라면 누구나 한번쯤 들어봤을 풀스택.

대 AI 시대에 들어선 지금, 마침내 딥러닝도 풀스택이란 용어가 생겼다.

 

나도 AI는 모델만 잘 만들면 되는줄 알았다.

하지만 실제로는 AI를 위한 부수적인 툴과 개념이 수없이 많이 생겼다.

그리고 기업들도 점점 `풀스택 AI 엔지니어`를 선호하기 시작했다.

(데이터 사이언티스트, 리서치 엔지니어도 마찬가지로 풀풀익선이다.)

 

그래서 Full Stack Deep Learning 이라는 유우명한 강의를 번역 의역하고자 한다.

나에게도 도움이 되고, 딥러닝 입문자, 중급자에게도 도움이 되길 바란다.

 

이번 내용은 `딥러닝 실험 관리 방법` 이다.

원문과 영상의 링크는 여기.

 

Weights & Biases

 

1. 실험 관리의 중요성

실험 관리의 중요성

딥러닝 모델 개발 과정은 단순히 코드 작성과 학습시키는 것을 넘어선다.
특히 하이퍼 파라미터, 데이터 전처리, 아키텍처 등 다양한 요소가 성능에 영향을 준다.

 

모든 실험 과정을 체계적으로 관리하지 않으면 결과를 재현할 수 없다.
모델 학습은 방대한 정보가 실시간으로 생성되고 즉시 휘발된다.
모델 정보, 시스템 리소스, 성능 지표 등을 모두 수집하고 분석해야 한다.
학습 중에 이 데이터는 모두 덮어씌워지거나 삭제된다.


나중에 특정 모델의 성능을 재현하려면 `실험 관리`가 필수적이다.
이런 문제를 해결하기 위해 모든 정보를 `로그`하는 것은 매우 중요하다.
과거에는 이런 작업을 구글 시트와 같은 곳에 수동으로 처리했다.
하지만 이런 작업은 단순히 시간을 낭비할 뿐만 아니라 실수를 유발한다.
우리는 라이브러리를 통해 이런 비핵심 작업을 효율적으로 수행해야 한다.

 

2. 텐서 보드

텐서 보드

딥러닝 실험 추적을 위한 고전적인 도구 중 하나이다.
시간에 따라 로깅된 모든 지표를 차트 형태로 시각화 해준다.
학습 데이터셋과 검증 데이터셋의 성능 변화를 시각적으로 볼 수 있다.


하지만 텐서보드는 특히 단일 실험의 결과를 확인하는 것에만 적합하다.
여러 실험을 비교하거나 그룹화하면 사용자 경험이 저하된다.
또한, 주피터 노트북과 유사하게 프로세스 관리가 필요하다.
이런 관리는 딥러닝 엔지니어에게는 생소하고 방해 요소이다.

 

3. Weights & Biases

Weights & Biases

W&B는 FSDL에서 추천하는 실험 관리 도구이다.
W&B는 로깅, 코드 통합, 결과 시각화, 다른 도구와의 통합 측면에서 매우 강력하다.

 

특히 팀 내에서 실험 정보를 공유하고 협업하는데 탁월한 도구이다.
라이트닝, 허깅페이스 같은 프레임워크에서 W&B를 쉽게 추가할 수 있다.

단 4~5줄의 코드로 많은 추가 기능을 실행할 수 있다.

 

무료 사용자 계층에 매우 관대하고 공개 프로젝트에 대해서 적합하다.
비공개 프로젝트는 유료이고 이런 경우 MLflow를 추천한다.

 

4. W&B의 주요 기능

W&B의 주요 기능

W&B는 여러 탭으로 구성되어 각 탭은 다른 정보를 제공한다.

 

Charts 탭
다양한 지표를 시각화하여 실험 결과를 쉽게 분석할 수 있다.

 

Overview 탭
실험 시작 시간, 지속 시간, GPU 사용량 등 시스템 정보를 제공한다.
하이퍼파라미터와 모델 아키텍처를 시각적으로 표현한다.

 

System Metrics 탭

System Metrics 탭
GPU 사용량, CPU 사용량, 메모리 사용량 등을 실시간으로 모니터링한다.
멀티 GPU 환경에서는 모든 GPU의 지표를 동시에 볼 수 있다.

 

Model 탭
모델의 아키텍처를 시각적으로 표현한다.
모델의 레이어, 파라미터 수 등을 쉽게 확인할 수 있다.
wandb.watch(model)를 사용하여 모델을 로깅할 수 있다.

 

Logs 탭
터미널 출력을 실시간으로 확인할 수 있다.
학습 중에 빠르게 스킵될 수 있는 중요한 메시지를 다시 확인할 수 있다.

 

Files 탭
requirements.txt 같은 유용한 정보를 포함한다.
Git 리포지토리 대비 코드 변경 사항을 쉽게 확인할 수 있다.

 

Artifacts 탭
학습 중에 생성된 모든 파일을 관리할 수 있다.
모델 체크포인트, 데이터셋, 이미지 등 다양한 파일을 저장하고 관리한다.
디렉토리와 유사하며 선형적으로 버전이 관리된다.
파이토치 라이트닝을 같이 사용하면 자동으로 best 성능 모델을 표시해준다.
아티팩트의 개별 파일과 폴더를 검사할 수 있다.
어떤 런이 어떤 아티팩트를 생성했는지 Lineage View로 추적할 수 있다.
무료 계정에서 100GB의 저장 공간을 제공한다.

5. W&B의 프로그래밍적 접근

W&B의 프로그래밍적 접근

W&B는 웹 인터페이스 외에도 API를 통해 프로그래밍적으로 접근할 수 있다.
API는 모델부터 데이터셋까지 전체 MLOps 워크플로우를 구현할 수 있다.


간단하게 판다스 DataFrame으로 가져와 분석과 시각화도 가능하다.
데이터 로더에서 일시적으로 증강한 데이터 또한 접근할 수 있다.
전처리 파이프라인이나 증강에서 발생하는 문제를 빠르게 파악할 수 있다.

6. 모든 것을 로깅하자

모든 것을 로깅하자

실험 관리에서 중요한 것은 가능한 모든 것을 로깅하는 것이다.
Git, 시스템, 모델 내부 값 등 가능한 모든 정보를 기록해야 한다.
딥러닝 학습 과정은 한번 놓치면 다시는 만들 수 없는 정보가 많다.


어떤 정보가 버그 해결, 성능 향상, 재현성에 도움이 될지 알 수 없다.
따라서, 모든 정보를 로깅하고 나중에 분석하는 것이 중요하다.

7. W&B의 보고서

W&B의 보고서

로깅된 방대한 정보는 프로젝트 외부 사람들에겐 다소 부담스럽다.
W&B의 Reports 기능은 로깅된 정보를 기반으로 보고서를 생성할 수 있다.
주피터 노트북처럼 추가 텍스트를 배치해서 더 나은 설명을 제공할 수 있다.


대시보드 보고서
하나 또는 여러 실험의 출력 일부로 대시보드 보고서를 만들 수 있다.
실시간으로 실험 상태를 파악하거나 실험을 비교할 수 있다.
적은 정보를 조직화하여 두 모델 간의 차이점을 쉽게 파악할 수 있다.
맞춤형 차트와 시스템 지표를 포함해 코드의 성능을 비교할 수 있다.


Pull Request 문서화 보고서
PR에 대한 문서화 보고서를 생성할 수 있다.
학습이나 전처리 코드를 변경할 때 코드 검토자가 유효성 확신에 도움을 준다.
PR에 포함되기 힘든 차트나 시각화를 포함해 코드 검토를 돕는다.
Git 버전 관리 시스템과 실험 관리 시스템을 서로 연결할 수 있다.


커뮤니케이션 보고서
팀 외부의 이해관계자나 딥러닝 커뮤니티에 전달하는 보고서를 생성할 수 있다.
더 많은 텍스트, 추가 컨텍스트, 예쁜 차트를 포함할 수 있다.
로깅된 정보를 시각적으로 더 매력적으로 표현할 수 있다.
예를 들어, 자세한 내용을 추가하면 독자가 클릭해서 정보를 볼 수 있다.

8. W&B의 하이퍼파라미터 최적화 기능

W&B의 하이퍼파라미터 최적화 기능

Sweeps 기능을 통해 하이퍼파라미터 튜닝을 지원한다.
대규모 실험을 자동으로 진행할 수 있는 강력한 기능이다.
다양한 하이퍼파라미터 조합을 탐색하고 최적의 조합을 찾는 데 유용하다.
러닝 레이트, 배치 크기, 레이어 수 등 다양한 하이퍼파라미터를 조정할 수 있다.


YAML 파일 기반 설정
Sweeps 설정은 YAML 파일만 작성하면 손쉽게 설정할 수 있다.
YAML 파일은 Sweeps의 컨트롤러를 구성하는 역할을 한다.
멀티 터미널이나 멀티 GPU 환경을 지원한다.


컨트롤러와 에이전트
컨트롤러는 W&B 서버에 실행되는 경량 프로세스이다.
컨트롤러는 실제 작업을 수행하는 에이전트로부터 요청을 기다린다.
에이전트는 컨트롤러로부터 작업을 받아 실행하는 프로세스이다.
특정 조합을 한번만 실행하기도 하고 다양한 값을 계속 실행하기도 한다.


Sweeps 대시보드
다양한 유용한 차트를 제공한다.
최종 검증 loss를 시각적으로 비교할 수 있다.
어떤 파라미터가 최종 값에 가장 큰 영향을 주는지 보여준다.
최고의 loss를 가진 run을 필터링해서 볼 수 있다.
필터링에 따라 다른 차트들도 자동으로 재계산되어 영향력을 쉽게 분석할 수 있다.

 

 

 

끝.

반응형