[공지] model 사이즈 관련 문의에 대한 대답입니다.
Opened this issue · 3 comments
Model size관련 문의가 있어서 모든 분들이 보실 수 있도록 공지합니다.
정리하면, 아래와 같습니다.
- submit시 model size에 대한 제한은 없습니다.
- CLI를 통한 pre-trained model를 upload할 경우, CLI의 기본 upload 사이즈 제한을 적용받아서, 150MB까지 upload가능합니다.
- pre-trained model을 docker image에 내장하는 방식으로 사용할 경우, pre-trained model에 대한 size 제한은 없습니다.
참고사항:
- 사용하시는 GPU는 V100으로 GPU memory가 32GB 입니다.
- pre-trained model size 이슈는 CLI가 제공하는 upload 방식의 물리적 한계에 기인합니다. 따라서 다른 방식으로 pre-trained model를 사용한다면, 사실상 제약이 없습니다.
기초적인 질문인 것 같은데 제가 프레임웤에 익숙하지가 않아서요..
CLI를 통한 upload에 제한을 받는다는 것이 정확히 어떤 것인지 모르겠는데요.
일단 제가 학습시킨 모델이 약 350MB정도가 되는데 이 모델을 load해서 사용하고 싶은데 그러면 에러가 난다는 뜻이 맞나요?
docker image에 내장하는 방식으로 사용할 경우 라는 말씀을 하셨는데, docker이미지가 이미 있는 경우에는 #nsml 이라고 setup.py앞에 붙여서 불러올 수 있는 것은 알겠는데, 제가 트레이닝해서 저장되어있는 모델을 docker이미지로 어떻게 만드는지 모르겠습니다. 혹시 참고할 수 있을만한 자료나 아니면 간략히 설명해주실 수 있나요?
@fenneccat 님,
-
CLI를 통해서 run 명령을 실행할 경우, 실행 디렉토리를 통째로 서버로 전송하게됩니다. 이때, 전송하는 총량을 150MB로 제한하고 있습니다. run을 실행하는 디렉토리하위로 model 파일을 넣어둘 수 있는데, 넣어둔 상태로 run을 실행하게 되면 하위디렉토리의 model 파일이 서버로 전송되고, train과정에서 해당 model file을 참조할 수 있는 상태가 됩니다.
-
직접 학습 시킨 모델(run 과정에서 새로 생성한 모델)에 대한 제약은 특별히 하지 않습니다.
-
nsml에서 train된 model을 docker image로 build하는 것은 아닙니다.
외부의 모델 파일을 docker image에 추가하고 build하는 것은 docker image build하기로 검색하시면 docker 문서 가이드를 받으실 수 있을 것 같습니다. docker image build는 nsml 기본 기능과는 거리가 있어 직접 가이드를 제공하고 있지는 않습니다.
@fenneccat AFAIK, nsml run
수행에 앞서 .nsmlignore
파일에 업로딩에 필요없는 대상을 지정할 수 있는 준비가 되어 있습니다만 실제 작동하는지는 확인해보지 않았습니다.
저도 virtualenv
로 로컬에 디펜던시를 설치해 쓰고 있었는데, 이런 제약을 알아서 부랴부랴 env
를 추가했습니다~