240924 TIL #497 AI Tech #35 머신러닝 실험관리

김춘복·2024년 9월 25일
0

TIL : Today I Learned

목록 보기
499/571

Today I Learned

프로젝트 마무리까지 d-2. 아직 갈길이 멀다..


강의 복습

머신러닝 실험관리

개발과 최적화 과정에서 실험에 사용된 요소들을 체계적으로 추적하고 관리하는 것

  • 실험 재현성(Reproducibility)이 중요하기 때문에 여러 요소들을 체계적으로 관리해야 한다.
    그리고 실험관리가 잘 된다면 모델 성능 향상과 최적화에 더 용이하다.

  • 실험 설정(하이퍼파라미터, 모델 아키텍처), 실험 결과(성능지표, 손실 그래프 등), 실험 메타데이터(코드, 라이브러리 버전, 하드웨어 사양), 모델 및 데이터 버전 등이 주요 관리 대상이다.

실험관리 툴

  • 실험관리 툴은 실험추적 및 관리, 시각화, 하이퍼파라미터 튜닝, 버전관리, 모델 관리 등의 기능을 포함한다.

  • Weights & Biases(WandB)
    비즈니스는 비싸지만 개인이 쓰기엔 좋다.
    실험 추적과 시각화, 대시보드, 하이퍼파라미터 최적화(Sweep), 모델 버전관리, 협업, 하드웨어 상태 모니터링 등의 기능을 제공한다. 아래와 같이 단순한 코드 몇줄로 클라우드 기반의 웹에서 실험 정보를 볼 수 있다.

import wandb

# 프로젝트 초기화
wandb.init(project="my_project")

# 모델 학습 중 성능 지표 기록
for epoch in range(epochs):
    loss = compute_loss(model, data)
    acc = compute_accuracy(model, data)
    
    # 성능 기록(시간에 따라 메트릭 기록)
    wandb.log({"loss": loss, "accuracy": acc})

# 최종 메트릭 기록
wandb.summary["accuracy"] = acc

# 학습 종료 후 모델 저장
torch.save(model.state_dict(), "model.pth")
wandb.save("model.pth")

# 실험 종료
wandb.finish()

피어세션

  • 계속 slack 허들 켜두고 프로젝트를 진행했다.
    분류문제를 회귀문제로 돌려서 진행해보고 있다.

회고

  • 아직 accuracy가 잘 오르지 않는다. 놓친 부분이 있는지 확인해봐야겠다.
profile
Backend Dev / Data Engineer

0개의 댓글