kaggle competition 관련

JunD·2024년 5월 8일

최근 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 경로를 참조하여 사용할 모델을 사용할 수 있다는 것!




  • 새로운 notebook에 upload는 아래 사진과 같이 Add Input을 누르고

  • 내가 추가하고자 하는 데이터셋을 + 버튼을 눌러 추가하면 된다.
    (추가 방법 자체는 아주 간단)




(이후 모델 사용 과정은 그렇게 어렵지 않기 때문에 다른 글 참고하면 될 것 같다!)

profile
Data Scientist & Data Analyst

0개의 댓글