티스토리 뷰

캐글을 처음 시작할 때 환경과 용어가 익숙하지 않아서 헤맨 적이 있다.

캐글 메달리스트가 알려주는 캐글 노하우 책과 개인적으로 헤맨 경험을 요약했다.

 

Competitions

  • 대회에 관한 간략한 설명

 

Competition Submission

 

서브미션 방식에 따라서 Simple Competition과 Code Competition으로 나뉜다.

 

 

1. Simple Competition

직접 csv 파일 등을 업로드하여 서브미션을 만들 수 있다. Kaggle 외부에서, 로컬 컴퓨터로 학습 후 정답지를 제출해서 csv 파일만 제출할 수 있다.

 

2. Code Competition

정답 파일을 만들 수 있는 '캐글 노트북'을 제출해야 한다. 따라서 외부에서 실행하지 않고, 캐글 노트북에서 실행할 수 있어야 한다.

 

일반적인 Code Competition 제약

  • CPU, GPU 런타임 시간제한
  • 인터넷 사용 불가
  • 공개적으로 사용 가능한 외부 데이터 허용
  • 사전 훈련 모델 허용

 

외부 사전학습 모델을 사용할 경우

대부분 실행 Code Competition은 시간의 제한이 있고, 인터넷 연결이 불가능해 Hugginface 같은 외부 사전학습 모델을 불러올 수 없다고 한다. 해결책은 하단의 Dataset & Models upload 방법으로 외부에서 사전 학습 모델을 캐글 플랫폼에 upload 한다. 또한 미리 전처리를 적용한 데이터셋을 업로드하면 시간을 절약할 수 있다. 주의할 점은 테스트 셋을 제공하지 않을 경우, 추론하는 코드에 전처리 코드를 넣어두어야 한다. 이후 추론하는 ipynb파일을 업로드한다. 이 부분은 컴피티션마다 Rule을 잘 숙지하자.

 

Competition Type 

컴피티션 유형에 따라서 6가지로 구분된다.

 

1.  Featured

가장 일반적인 컴피티션이다. 실제 현장에서 해결하는 문제를 다루고, 기업에서 솔루션이 필요해 열기도 한다. 상금이 높은 편이다. 상금이 높아도 데이터양이 너무 많거나 연산 자원이 많이 필요하면 참여자가 적을 수 있다. 적당한 상금과 난이도면 많은 참여자가 몰린다고 한다.

 

2. Research

Featured 다음으로 많은 유형이다. 연구 목적으로 주최하는 경우가 많다. 조금 더 실험적이고 생소한 문제 해결로 어려운 경우가 있다. 또한 상금이 없는 경우도 있다.

 

3. Analytics

일반적인 컴피티션과 다른 유형이다. 보통은 문제가 주어지고 예측할 목적 변수(Target variable)을 얼마나 유사하게 맞추는지 경쟁한다. 반면 Analytics는 제공된 데이터를 자유롭게 분석한 노트북을 제출하고 평가한다. 사전 공지된 채점 방식에 따라서 참가자의 데이터 분석 능력, 시각화 능력, 설득 과정, 인사이트 발굴 능력 등 종합적으로 심사하고 평가를 점수로 환산 후 순위를 매긴다. 따라서 정답이 없다. 그렇기 때문에 리더보드도 없다.

 

4. Getting Started

시작하는 사람을 위한 튜토리얼 성격의 대회이다. 대표적인 예로 타이타닉 컴피티션이 있다. 'Ongoing'이라고 표시된 경우 종료 시점(Deadline)이 없다. 최근 2개월에 한해서만 리더보드에 집계되고 나머지는 표시되지 않는다.

 

5. Playground

재미와 연습을 목적으로 만들어진 컴피티션으로 Getting Started보다는 난도가 있다. 일반적인 컴피티션과 같은 프로세스와 환경에서 진행한다.

 

6. Community(In-class)

캐글러가 스스로 컴피티션을 만들고 운영하는 유형이다. 누구나 무료로 만들 수 있고, 보통의 컴피티션에서 제공하는 기능을 대부분 사용할 수 있다.

 

 

Datasets & Models

 

좌측의 툴의 Datasets에 들어가 보자. 공개된 다양한 데이터를 서칭할 수 있다. 또한 Your Work에서 사전학습 모델이나, csv파일, 데이터 등을 업로드할 수 있다. 

 

 

  • 컴피티션에서 이미 제출한 Notebook output도 가져와서 데이터에 추가할 수 있다.
  • 앙상블이 필요하면 여러 개의 모델을 처음부터 돌리는 코드가 아니라, 이미 제출한 csv 파일을 Datasets에 저장하고 새로운 Notebook 파일에 불러와서 앙상블만 하는 코드를 작성할 수 있다.

 

 


Models에서 사전학습 모델을 서칭할 수 있다. 

 

 

+ New Model을 눌러서 .pt, .pth, .safetensors. 등의 확장자로 로컬의 모델을 업로드할 수 있다. 로컬이나 호스팅한 GPU 서버로 사전학습 모델을 파인튜닝 후, 업로드해서 Kaggle Notebook에서 추론만 할 수도 있다.

 

 

Notebook

클라우드 노트북 만들기

 

왼쪽 툴바의 Code에 들어가서 + New Notebook을 눌러서 만들 수 있다.

 

 

  • 대회에 참여 중이면 대회의 Code에서 +New Notebook을 누른다. 이 방법은 데이터가 노트북 환경에 자동으로 연결되어서 따로 추가할 필요가 없다.
  • 추가적으로 Code에 Public으로 공개된 노트북 파일을 Copy&Edit으로 복사하여 수정할 수 있다. 캐글이 처음이면 공개된 코드의 EDA와 솔루션을 보고 공부하고 제출하면 도움이 된다.
  • 제출한 코드를 Public으로 전환해서 나의 코드를 공유할 수도 있다. 이미 공개한 코드도 비공개로 전환할 수 있다. 메달을 노린다면 노트북 파일을 공유해서 Upvote를 많이 받아 메달을 따는 전략도 있다.

 

 

import Notebook으로 로컬에서 작성한 ipynb 파일을 업로드할 수 있다.

 

GPU

 

  • 노트북을 실행할 때 Accelerator를 선택할 수 있다.
  • 만약 노트북에서 Settings가 보이지 않는다면 전화번호 인증을 하지 않은 것이다.

  • 우측 상단에 프로필을 누르고 Settings에 들어가서 Phone verification에서 인증하면 된다.

 

  • GPU는 1주일에 30시간 리필된다. 오른쪽 상단 프로필의 Settings에서 Quotas를 확인할 수 있다.
  • EDA나 GPU를 지원하지 않는 모델은 CPU로 실행하면 된다.

 

 

Dataset 불러오기

 

  • 컴피티션의 Code에서 노트북 파일을 만들고 왼쪽 사이드바를 연다. 기본적으로 Competitions PATH에 input 데이터를 불러올 수 있다.
  • + Add input에서 Kaggle에 공개된 데이터를 서칭하거나, 내가 Datasets에 추가한 데이터, 이미 제출한 submissions.csv 파일 등을 가져올 수 있다. 
  • Upload에서 새로운 데이터를 입력할 수 있다.
  • 대회에서 원본 데이터를 기반으로 증강한 data를  주었다고 설명할 때가 있다. 원본 데이터가 있으면  증강 기법을 역으로 추론해서 증강할 수도 있다.

 

Save Version

중요

  • 우측 상단에 Save Version을 누르면 code 저장이 가능하다. Version Name에서 Name을 입력한다.
  • 저장한 파일 위에 다시 저장할 수 있다. 이전 Version을 불러올 수 있어서 코드 Version 관리가 된다.

 

Save & Run All

 

  • Version Type에서 기본은 Save & Run All이다. 왼쪽 하단에 Save를 누르면 코드가 처음부터 실행되고 실행이 끝나면 Output 파일까지 저장한다. 실행 종료 후 Output 파일을 다운로드하거나 제출할 수 있다.
  • Save & Run All을 누르고 인터넷 브라우저를 끄거나 컴퓨터를 꺼도 실행된다.
    Colab 무료와 달리 백그라운드 실행이 가능하다. Save를 눌러 놓고 다른 업무를 해도 된다.
  • Advanced Settings에서 Accelerator 사용 여부를 선택할 수 있다. GPU로 실행할 수 있다. GPU 사용 시간 증가한다.
  • GPU를 쓰지 않거나, 당장 코딩을 할 생각이 없거나, GPU 시간을 아끼고 싶으면 without accelerator로 CPU 실행하면 된다.
  • 먼저 iteration을 작게 하거나, train, test 셋을 1로만 세팅하고 실행해 본다. 이후 끝까지 에러가 없는지 확인 후, 다시 하이퍼 파라미터와 data set을 수정하고 실행하면 혹시 모를 에러로 멈추는 것을 막을 수 있다.

  • Save & Run All 후, 왼쪽 하단 시계 표시에서 실행 중인 노트북 파일들을 볼 수 있다.
  • 노트북을 누르면 현재 실행 중인 log까지 확인할 수 있다.

 

Quick Save

  • 코드를 실행하지 않고 바로 저장한다.
  • 빠르게 저장하는 용도로 쓴다.
  • Version 관리용으로 쓸 수 있다.
  • 일단 저장하고 빠르게 Share하는 용도로 쓸 수 있다.
  • 코드를 실행하지 않아 Output 파일이 없다.

 

Submission

제출 방법

  • 제출할 때 submission description에 간단하게 data 전처리 정보, 하이퍼 파라미터 등을 저장하면 나중에 앙상블할 때 편하다.
  • Submit prediction에서 직접 CSV 파일을 제출한다.

 

 

 

  • Submit prediction에서 이전에 실행한 노트북 중 Version과 Output을 선택하고 제출한다.

 

 

  • 노트북 Edit에서 version을 선택하고, 코드를 실행 후 자동으로 제출한다.  파일명은 submission.csv 이어야 한다.



 

  • Save & Run All을 마친 노트북의 Output에서 제출한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함