프로젝트를 하던 도중 데이터관리와 모델관리를 같이할수 있는 도구가 무엇이 있나 찾아보다 clearml을 알게 되었습니다. (MLops tool 비교)
ClearML에서 제공해주는 서버를 사용해도 되지만 저는 로컬 서버를 사용하는 방법을 다루려고 합니다.
ClearML 서버를 보면 어떻게 뒷단이 구성되어 있는지 확인 할 수 있습니다.
윈도우에서 도커를 이용해 간단히 서버를 구성할 수 있습니다. 자세한 내용은 사용법을 보면 알 수 있습니다.
cd c:\
mkdir c:\opt\clearml\data
mkdir c:\opt\clearml\logs
curl https://raw.githubusercontent.com/allegroai/clearml-server/master/docker/docker-compose-win10.yml -o c:\opt\clearml\docker-compose-win10.yml
docker-compose -f c:\opt\clearml\docker-compose-win10.yml up -d
명령어를 실행하면 컨테이너가 올라가는 것을 볼 수 있습니다.
이후 localhost:8080에 접속하면 아래와 같은 사이트를 볼 수 있고
이름을 입력하고 천천히 아래과정을 따라갑니다
이제 credential을 생성하고 위와 같은 과정을 거치면 clearml에 로깅을 시작할 수 있습니다.
미리 만든 학습 코드를 실행해보니 argparse로 받는 인자값은 자동으로 감지해 저장합니다.
콘솔도 자동로깅하고 plot의 경우는 tensorboard, tensorboardX, matplolib으로 출력하면 자동으로 감지해 clearml에 저장한다고 합니다.
ClearML Logger에 자세히 나와있습니다.
이전 코드에서 python logging 내장 라이브러리로 .log파일에 로그를 저장해 자동으로 ClearML에 저장되지는 않았는데 나중에 학습할 때 따로 ClearML scalar의 문서대로 스칼라 값을 저장해보니 아래처럼 로깅하여 그래프를 확인할 수 있었습니다.
(그래프 이름이 잘못되었긴한데 로깅은 잘 되었네요)