최근 kaggle에서 진행하는 머신러닝 경진대회에 참가하면서 얻은 지식을 정리하고자 한다.
어떠한 개념을 정리하는 건 아니고 competition 코드 제출 방법에 대해 정리하고자 한다.
kaggle에는 다양한 competition이 진행된다.
가장 많은 데이터 분석 경진대회 사이트라고 해도 무방할 정도로 많은 프로젝트, 경진대회가 열린다.
최근에 한 competition에 참가하면서 제출 방식이 조금 다른 방식으로 진행된다는 걸 알게 되었는데, 첫 번째는 오로지 kaggle notebook에서 결과를 내어야 했고, 두 번째는 internet이 disable인 상태에서 코드를 완성하고 결과를 제출하는 방식이었다
첫 번째 경우
두 번째 경우
문제는 첫 번째 경우에는 큰 어려운 점이 없지만, 두 번째 경우에는 쉽게 사용했던 사전학습 모델을 사용하지 못한다는 치명적인 문제가 존재했다.
(sentence_transformers라는 모듈을 예로 들어 설명하도록 하겠다.) sentenve_transformer 모듈은 kaggle에 설치되어 있지 않기 때문에 사용하려면 먼저 install 해주어야 한다.
평소라면 'pip install [~~]' 방식으로 하면 되지만 internet이 off인 환경에서는 pypl을 사용할 수 없으르므 설치가 되지 않는다.
해결 방법
competition 제출용 notebook이 아닌 또 다른 notebook을 만들고 내가 이용하고자 할 모델을 생성, 파인 튜닝 작업을 거친 뒤 model.save를 통해 pre-trained 모델을 저장한다.
여기서 중요한 점은 커밋 (혹은 save_version) 후 , kaggle 홈페이지에서 new datasets 에 커밋된 notebook을 추가하면 internet이 off인 환경에서도 기존에 저장한 model 경로를 참조하여 사용할 모델을 사용할 수 있다는 것!
(이후 모델 사용 과정은 그렇게 어렵지 않기 때문에 다른 글 참고하면 될 것 같다!)