-
스케쥴러를 이용한 GPU 활용 최대화
-
Inference를 Surrovision처럼 데모형식으로 사용할 수 있음
-
분산 시스템을 이용하여 idle time 줄이기
-
Visualization
- 단순히 실험의 경과를 보는 것 뿐만 아니라 facebook의 visdom을 이용하여 웹 interface를 통해 사진으로 출력해볼 수 있음
- Tensorboard를 사용하는데 실험이 완료된 것과 실험중인것을 겹쳐볼 수 있음
-
가상 터미널 환경(REPL)
- 작동 중인 실험에 명령어를 보낼 수 있어 변수 내용 확인, 하이퍼 파라미터 변경, plot 내용 변경, 임의의 함수 실행을 할 수 있음
- tmux같은 것
-
Environment
- 기존 docker 이미지를 사용할 수 있음
- Cluster로 작동하기 때문에 매번 docker가 작동될때마다 pip 설치되어 시간이 오래 걸림
- 해결책 : User docker image(사용자의 설정을 적용한 새로운 docker이미지를 만들고 그 이미지가 설정에 관련된 이름을 갖도록 하여 쉽게 docker를 고를 수 있도록 함)
-
Dataset
- docker로 file 복사를 하는 것은 굉장히 느림
- 해결책 : Minio와 같은 대용량 file storage를 도입 -> data volume container가 Minio로부터 data를 받고 user container에 넘겨주는 방식
- Dataset을 Minio에 넣을땐 github와 비슷한 명령어만 치면 됨
'nsml dataset push'
-
Code
- git : micro commit이 너무 많이 발생
- docker build command : 자주 바뀌는 코드를 이미지의 형태로 저장하는 것이 합리적이지 않고 build속도가 빠른 편이 아님
- docker cp : 컨테이너를 먼저 실행해놓고 나중에 복사하는 방식을 선택함
-
협업하는 연구환경
'nsml ps -a -n 5' 명령어를 통해 5가지의 session의 상태를 볼 수 있음
'nsml pull [session name]' 을 통해 다운로드 받은 후 수정할 수 있음
-
Leaderboard
- Kaggle에서 본땀
- 상금을 걸어놓음 -> 동료들과의 경쟁으로 인한 퍼포먼스 up
-
Best 모델이 자동으로 등록되어 서비스화 됨