지난주 모델이 더 좋았는데 아무도 못 찾는다 · 돌린 사람만 아는 숫자 · 퀴즈
퀴즈: 무엇을 적어야 다시 세울 수 있나
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
MLflow 문서가 말하는 '실행(run)' 하나가 기록하는 것은 무엇인가?
- 모델 파일 하나와 그 파일을 만든 사람의 이름
- 지표·파라미터·시작과 종료 시각 같은 메타데이터와 출력 산출물
- 학습에 쓰인 GPU 사용량과 전력 소비량의 시계열
- 코드 저장소의 전체 이력과 그 시점의 브랜치 목록
파라미터와 지표는 꼼꼼히 적었는데 학습 데이터의 지문을 남기지 않았다면 어떤 일이 생기나?
- 학습이 실패하고 실행이 열리지 않는다
- 지표가 계산되지 않아 표가 비어 보인다
- 같은 파라미터로 다시 돌려도 숫자가 달라질 수 있고 이유를 알 수 없다
- 저장소 용량이 빠르게 차서 오래된 실행이 지워진다
여러 실행 중 가장 좋은 것을 고를 때 표를 눈으로 훑는 대신 조회 코드를 쓰는 이유는?
- 조회가 사람보다 더 정확한 지표를 새로 계산해 주기 때문
- 정렬 기준이 코드에 남아 다음에 다시 골라도 같은 답이 나오기 때문
- 눈으로 고르면 추적 도구가 그 실행을 잠가 버리기 때문
- 표에는 가장 최근 실행 몇 개만 표시되기 때문
자동 기록(autolog)만 켜 두고 무엇이 기록되는지 확인하지 않았을 때의 위험은?
- 지원 목록에 없는 프레임워크에서는 학습이 중단된다
- 기록량이 늘어 학습 속도가 절반으로 떨어진다
- 수동으로 적은 파라미터가 모두 덮어써진다
- 빠진 항목이 있어도 표가 채워져 보여 한동안 아무도 모른다
학습을 돌린 컨테이너 안에만 실험 기록을 적어 두면 무엇이 문제인가?
- 그 컨테이너가 사라질 때 기록도 함께 사라진다
- 컨테이너 안에서는 JSON 을 쓸 수 없다
- 기록이 이미지 레이어에 저장돼 다음 빌드가 느려진다
- 같은 이미지를 쓰는 다른 학습과 기록이 섞인다
코드는 그대로인데 학습 스크립트의 전처리 한 줄만 바꿔 다시 돌렸다. 실행 기록에 무엇이 있어야 두 실행을 구분할 수 있나?
- 실행을 시작한 사람의 계정 이름
- 학습에 걸린 시간과 평균 CPU 사용률
- 실행 번호가 몇 번째인지를 나타내는 일련번호
- 그 시점 학습 코드의 지문이나 커밋 식별자