본문 바로가기
C.W.K.
Stream
Lesson 07 of 08 · published

실험 추적

~18 min · tracking, wandb, mlflow

Level 0호기심
0 XP0/73 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

왜 실험 추적 도구가 필요할까

진지한 프로젝트를 진행하다 보면 한 주 안에 서로 다른 하이퍼파라미터로 백 가지 실험을 돌릴 수도 있어. 그러다 디스크에 저장된 각 모델이 어느 실험에서 나온 것인지 놓치기 쉽지. 실험 추적 도구는 이 문제를 해결해 줘. 모든 실행을 코드 커밋, 설정, 지표, 산출물과 함께 기록하거든. 덕분에 여러 실행을 비교할 때 포렌식 조사부터 벌이지 않고 UI에서 바로 확인할 수 있어.

널리 쓰이는 추적 도구 3개

  • Weights & Biases (W&B) — 관리형 클라우드 서비스야. UI가 훌륭하고 개인은 무료, 팀은 유료로 사용할 수 있어. 업계에서 사실상 표준으로 자리 잡았어.
  • MLflow — 오픈 소스이며 직접 호스팅하거나 클라우드에서 운영할 수 있고, Databricks와 연동돼. UI는 덜 세련됐지만 배포 방식은 더 유연해.
  • TensorBoard — PyTorch에서 기본으로 지원하고 로컬에서 실행할 수 있어. 간단하며 별도 서비스를 설정할 필요가 없어. 혼자 작업할 때 좋아.
팁: 팀마다 추적 도구 하나를 골라 계속 사용해. 도구를 바꾸는 비용은 정말 커. 이전의 모든 실행 기록이 기존 도구에 남아 있기 때문이야. 혼자 작업한다면 TensorBoard로 충분하고, 팀에서는 보통 W&B가 더 나아.

무엇을 기록해야 할까

  • 설정 — 모든 하이퍼파라미터, Git 커밋 해시, 데이터셋 버전.
  • 지표 — 손실(학습/검증), 과제 지표(정확도/F1/등), 기울기 노름, 학습률, 처리량.
  • 산출물 — 최종 체크포인트, 최고 성능 체크포인트, 예측 표본, 혼동 행렬.
  • 시스템 — GPU 사용률, 메모리, 학습 시간.
원칙: 추적 기록만으로 실험을 재현할 수 없다면 그 도구는 인프라가 아니라 장식이야. 설정과 커밋 해시만으로 다시 실행할 수 있는지 확인해.

Code

다섯 줄로 쓰는 W&B·python
import wandb

wandb.init(project="dl-foundations", config=cfg.__dict__)
for epoch in range(cfg.epochs):
    train_loss = train_one_epoch(model, train_loader, opt, device)
    val_acc = evaluate(model, val_loader, device)
    wandb.log({"train_loss": train_loss, "val_acc": val_acc, "epoch": epoch,
               "lr": opt.param_groups[0]["lr"]})
wandb.finish()
로컬 기록용 TensorBoard·python
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter(log_dir="runs/exp001")
for step, (xb, yb) in enumerate(train_loader):
    loss = train_step(model, xb, yb, opt)
    writer.add_scalar("train/loss", loss, step)
    if step % 100 == 0:
        writer.add_scalar("lr", opt.param_groups[0]["lr"], step)
writer.close()
# tensorboard --logdir runs

External links

Exercise

학습 루프에 W&B(또는 TensorBoard)를 추가해. 손실, 정확도, 기울기 노름, 학습률을 기록하고, 서로 다른 하이퍼파라미터로 두 실험을 돌린 뒤 UI에서 비교해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.