반드시 기록할 지표
최소한 단계별 학습 손실, 에폭별 검증 손실, 에폭별 검증 정확도(또는 과제에 맞는 지표), 단계별 학습률은 기록해야 해. 이 4개만 있어도 거의 모든 문제를 디버깅할 수 있어.
여기에 단계별 기울기 노름(기울기 폭주 감지), 클래스별 정확도(불균형 감지), 초당 예시 처리량(데이터 로딩 성능 저하 감지)도 추가하는 걸 추천해.
팁: 지표는 그래프로 그려. 기록 파일의 숫자는 사후 분석에 쓰이고, 그래프는 문제를 진단하는 데 쓰여. 일회성 작업이라면 Jupyter 셀에서
matplotlib을 써도 괜찮지만, 제대로 진행하는 작업이라면 W&B나 TensorBoard를 사용해.에폭 평균과 이동 평균
학습 손실은 평활한 이동 평균으로 그리는 게 좋아. 한 단계의 손실값은 잡음이 너무 많거든. 0.99 * old + 0.01 * new는 무난한 기본값이야. 검증 손실은 에폭마다 한 번 측정하고 원시 값을 그대로 그려.
정확도만 믿지 마
정확도는 데이터 불균형, 보정 문제, 극단적인 사례에서 발생하는 실패를 숨겨. 분류에서는 클래스별 정밀도와 재현율을, 회귀에서는 MAE, RMSE, 분위수 오차를, 생성에서는 BLEU, ROUGE, 정확 일치를 항상 확인해. 검증 세트의 혼동 행렬도 에폭마다 확인해야 해.
원칙: 숫자 하나만 보면 나머지 모든 숫자 때문에 놀라게 돼. 모델이 정확도만 보면 괜찮아 보이는데 소수 클래스에서 무너졌다는 사실을 처음 발견하는 순간, 팀과 쌓은 신뢰를 일주일치 잃을 수 있어.