Track experiments
6 minute read
기계 학습 실험 추적, 모델 체크포인트, 팀과의 협업 등을 위해 W&B 를 사용하세요.
이 노트북에서는 간단한 PyTorch 모델을 사용하여 기계 학습 실험을 생성하고 추적합니다. 노트북이 끝나면 팀의 다른 구성원과 공유하고 사용자 정의할 수 있는 대화형 프로젝트 대시보드를 갖게 됩니다. 여기에서 대시보드 예제를 확인하세요.
전제 조건
W&B Python SDK를 설치하고 로그인합니다:
W&B를 사용하여 기계 학습 실험을 시뮬레이션하고 추적합니다
기계 학습 실험을 생성, 추적 및 시각화합니다. 이렇게 하려면 다음을 수행하세요:
- W&B run을 초기화하고 추적하려는 하이퍼파라미터를 전달합니다.
- 트레이닝 루프 내에서 정확도 및 손실과 같은 메트릭을 기록합니다.
import random
import math
# 5개의 시뮬레이션된 실험을 시작합니다
total_runs = 5
for run in range(total_runs):
# 1️. 이 스크립트를 추적하기 위해 새 run을 시작합니다
wandb.init(
# 이 run이 기록될 프로젝트를 설정합니다
project="basic-intro",
# run 이름을 전달합니다 (그렇지 않으면 sunshine-lollypop-10처럼 무작위로 할당됩니다)
name=f"experiment_{run}",
# 하이퍼파라미터 및 run 메타데이터를 추적합니다
config={
"learning_rate": 0.02,
"architecture": "CNN",
"dataset": "CIFAR-100",
"epochs": 10,
})
# 이 간단한 블록은 메트릭을 기록하는 트레이닝 루프를 시뮬레이션합니다
epochs = 10
offset = random.random() / 5
for epoch in range(2, epochs):
acc = 1 - 2 ** -epoch - random.random() / epoch - offset
loss = 2 ** -epoch + random.random() / epoch + offset
# 2️. 스크립트에서 W&B로 메트릭을 기록합니다
wandb.log({"acc": acc, "loss": loss})
# run을 완료된 것으로 표시합니다
wandb.finish()
W&B 프로젝트에서 기계 학습이 어떻게 수행되었는지 확인합니다. 이전 셀에서 인쇄된 URL 링크를 복사하여 붙여넣습니다. URL은 그래프가 표시된 대시보드를 포함하는 W&B 프로젝트로 리디렉션됩니다.
다음 이미지는 대시보드가 어떻게 보이는지 보여줍니다:

이제 W&B를 유사 기계 학습 트레이닝 루프에 통합하는 방법을 알았으니 기본 PyTorch 신경망을 사용하여 기계 학습 실험을 추적해 보겠습니다. 다음 코드는 조직의 다른 팀과 공유할 수 있는 모델 체크포인트를 W&B에 업로드합니다.
Pytorch를 사용하여 기계 학습 실험 추적
다음 코드 셀은 간단한 MNIST 분류기를 정의하고 트레이닝합니다. 트레이닝하는 동안 W&B가 URL을 출력하는 것을 볼 수 있습니다. 프로젝트 페이지 링크를 클릭하여 결과가 W&B 프로젝트로 실시간 스트리밍되는 것을 확인하세요.
W&B run은 자동으로 메트릭, 시스템 정보, 하이퍼파라미터, 터미널 출력을 기록하고 모델 입력 및 출력이 있는 대화형 테이블이 표시됩니다.
PyTorch Dataloader 설정
다음 셀은 기계 학습 모델을 트레이닝하는 데 필요한 유용한 함수를 정의합니다. 함수 자체는 W&B에 고유하지 않으므로 여기서는 자세히 다루지 않습니다. forward 패스 및 backward 트레이닝 루프를 정의하는 방법, PyTorch DataLoaders를 사용하여 트레이닝을 위해 데이터를 로드하는 방법, torch.nn.Sequential
클래스를 사용하여 PyTorch 모델을 정의하는 방법에 대한 자세한 내용은 PyTorch 설명서를 참조하세요.
예측값과 실제값을 비교하는 테이블 생성
다음 셀은 W&B에 고유하므로 살펴보겠습니다.
셀에서 log_image_table
이라는 함수를 정의합니다. 기술적으로 선택 사항이지만 이 함수는 W&B Table 오브젝트를 만듭니다. 테이블 오브젝트를 사용하여 각 이미지에 대해 모델이 예측한 내용을 보여주는 테이블을 만듭니다.
보다 구체적으로 말하면 각 행은 모델에 공급된 이미지와 예측값 및 실제값 (레이블)으로 구성됩니다.
모델을 트레이닝하고 체크포인트를 업로드합니다
다음 코드는 모델 체크포인트를 트레이닝하고 프로젝트에 저장합니다. 일반적으로 모델 체크포인트를 사용하여 트레이닝 중에 모델이 수행된 방식을 평가합니다.
W&B를 사용하면 저장된 모델 및 모델 체크포인트를 팀 또는 조직의 다른 구성원과 쉽게 공유할 수 있습니다. 팀 외부의 구성원과 모델 및 모델 체크포인트를 공유하는 방법에 대한 자세한 내용은 W&B Registry를 참조하세요.
이제 W&B를 사용하여 첫 번째 모델을 트레이닝했습니다. 위의 링크 중 하나를 클릭하여 메트릭을 확인하고 W&B App UI의 Artifacts 탭에서 저장된 모델 체크포인트를 확인하세요.
(선택 사항) W&B Alert 설정
Python 코드에서 Slack 또는 이메일로 알림을 보내도록 W&B Alerts를 만듭니다.
코드에서 트리거된 Slack 또는 이메일 알림을 처음 보내려면 다음 두 단계를 따르세요.
- W&B 사용자 설정에서 Alerts를 켭니다.
- 코드에
wandb.alert()
를 추가합니다. 예를 들어:
다음 셀은 wandb.alert
를 사용하는 방법을 보여주는 최소한의 예제를 보여줍니다.
여기에서 W&B Alerts에 대한 전체 문서를 찾을 수 있습니다.
다음 단계
다음 튜토리얼에서는 W&B Sweeps를 사용하여 하이퍼파라미터 최적화를 수행하는 방법을 배웁니다. PyTorch를 사용하여 하이퍼파라미터 스윕
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.