naver-airush / NAVER-AI-RUSH

41 stars 20 forks source link

[공지] model 사이즈 관련 문의에 대한 대답입니다. #77

Open bluebrush opened 4 years ago

bluebrush commented 4 years ago

Model size관련 문의가 있어서 모든 분들이 보실 수 있도록 공지합니다. 정리하면, 아래와 같습니다.

  1. submit시 model size에 대한 제한은 없습니다.
  2. CLI를 통한 pre-trained model를 upload할 경우, CLI의 기본 upload 사이즈 제한을 적용받아서, 150MB까지 upload가능합니다.
  3. pre-trained model을 docker image에 내장하는 방식으로 사용할 경우, pre-trained model에 대한 size 제한은 없습니다.

참고사항:

  1. 사용하시는 GPU는 V100으로 GPU memory가 32GB 입니다.
  2. pre-trained model size 이슈는 CLI가 제공하는 upload 방식의 물리적 한계에 기인합니다. 따라서 다른 방식으로 pre-trained model를 사용한다면, 사실상 제약이 없습니다.
fenneccat commented 4 years ago

기초적인 질문인 것 같은데 제가 프레임웤에 익숙하지가 않아서요.. CLI를 통한 upload에 제한을 받는다는 것이 정확히 어떤 것인지 모르겠는데요. 일단 제가 학습시킨 모델이 약 350MB정도가 되는데 이 모델을 load해서 사용하고 싶은데 그러면 에러가 난다는 뜻이 맞나요? docker image에 내장하는 방식으로 사용할 경우 라는 말씀을 하셨는데, docker이미지가 이미 있는 경우에는 #nsml 이라고 setup.py앞에 붙여서 불러올 수 있는 것은 알겠는데, 제가 트레이닝해서 저장되어있는 모델을 docker이미지로 어떻게 만드는지 모르겠습니다. 혹시 참고할 수 있을만한 자료나 아니면 간략히 설명해주실 수 있나요?

bluebrush commented 4 years ago

@fenneccat 님,

  1. CLI를 통해서 run 명령을 실행할 경우, 실행 디렉토리를 통째로 서버로 전송하게됩니다. 이때, 전송하는 총량을 150MB로 제한하고 있습니다. run을 실행하는 디렉토리하위로 model 파일을 넣어둘 수 있는데, 넣어둔 상태로 run을 실행하게 되면 하위디렉토리의 model 파일이 서버로 전송되고, train과정에서 해당 model file을 참조할 수 있는 상태가 됩니다.

  2. 직접 학습 시킨 모델(run 과정에서 새로 생성한 모델)에 대한 제약은 특별히 하지 않습니다.

  3. nsml에서 train된 model을 docker image로 build하는 것은 아닙니다. 외부의 모델 파일을 docker image에 추가하고 build하는 것은 docker image build하기로 검색하시면 docker 문서 가이드를 받으실 수 있을 것 같습니다. docker image build는 nsml 기본 기능과는 거리가 있어 직접 가이드를 제공하고 있지는 않습니다.

jung-hunsoo commented 4 years ago

@fenneccat AFAIK, nsml run 수행에 앞서 .nsmlignore 파일에 업로딩에 필요없는 대상을 지정할 수 있는 준비가 되어 있습니다만 실제 작동하는지는 확인해보지 않았습니다.

저도 virtualenv로 로컬에 디펜던시를 설치해 쓰고 있었는데, 이런 제약을 알아서 부랴부랴 env를 추가했습니다~