PyTorch 딥러닝 연구에서 재현성 문제 극복한 경험
딥러닝 연구에서 가장 어려웠던 건 같은 코드를 돌려도 결과가 달라지는 재현성 문제였다. 랜덤 시드를 고정했는데도 GPU 연산의 비결정성 때문에 Loss 값이 매 실험마다 미세하게 달라졌다. 처음에는 하이퍼파라미터 문제인 줄 알고 튜닝을 반복했는데, 원인을 잘못 짚어서 시간을 많이 낭비했다. 이후 실험 환경 전체를 로깅하는 방식으로 접근했다.
torch.backends.cudnn.deterministic = True 옵션을 추가하고, Python·PyTorch·CUDA 버전까지 기록했다. 실험마다 설정·결과·타임스탬프를 자동으로 저장하는 스크립트를 만들었더니 비교가 가능해졌다. 지도 교수님과의 미팅에서 이 문제를 공유했더니 정기 코드 리뷰로 이어졌고, 그 덕분에 로직 오류 하나도 추가로 발견했다. 이 경험에서 결과보다 실험 과정 자체를 추적 가능하게 만드는 것이 연구 효율을 높이는 핵심이라는 걸 배웠다.