로딩...

upstage-ai-lab-day-43

  • machine learning basic
  • machine learning advanced
  • 캐글, 대회 관련 특강
  • House Price Prediction 경진대회

수업

  • 기본이 없는 경우 수업을 들으면서 무엇에 쓰이는지를 상상하기 어렵기 때문에 효율이 떨어진다
  • 때문에 졸리게 되는데 진도를 뺀다는 생각으로 들어봤자 졸면서 해봤자 기억에 남지 않는다.
  • learn by doing 이라고 오히려 실습, 혹은 실제 프로젝트를 들어가서야 아! 그거 하는 순간이 찾아오고 찾게된다.

대회: House Price Prediction

대회의 EDA 시도나 결과는 모두 유사할 수 밖에 없어, 개인적인 경험을 위주로 기록한다

대회

  • 대회기간은 2주다
  • 2주는 한주는 수업을 들어야해서 입문자를 기준으로는 기간이 1주다
  • upstage 에서 주관하므로 [URL] https://stages.ai/ 를 통해 진행된다
    • 한번은 제출 결과가 영원히 pending 에 빠지는 문제가있었으나 재업로드로 해결할 수 있었으므로 크리티컬한 문제는 아니었다.
  • 대회는 일별로 제출 한도가 있다. 때문에 뒤늦게 하려고한들 팀원들이 몰릴테고 나에게 돌아오는 기회는 작아지게된다
    • 때문에 피쳐 엔지니어링에 들어가기전에 한사이클을 돌릴 수 있도록 모델까지의 파이프라인을 생성해야한다
    • 그럼 서버는 파이프라인으로 매번 돌아가고 난 그사이에 피쳐 엔지니어링을 통해 다음 타스크를 머신에 부여할 수 있다.
  • 주최측에서 제공하는 서버는 nvidia RTX3090 을 포함하고있었다.
    • nvidia-smi 는 설치되어 있었으나 nvcc 명령어가 없어 추가 설정을 해야 gpu 를 활용할 수 있었다.
      • 이런 설정도 주최측의 의도인건가?

협업

  • 팀바팀이지만 우리 팀에 능력자는 없었다. 학부때 경험자는 있었다.
  • 특별한 리더쉽이 없는 상태에서 스크럼은 유야무야되어 5일동안 2,3번 정도 초기에 진행되었다.
    • 소통이 별로 없다보니 서로 공유하거나 이런 것이 제한되었다.
  • git 이 활용되기 어려워서 파일들은 주로 slack 을 통해 전달되었다
    • 팀원들의 경험
    • jupyter-notebook 이 실행 결과를 포함하는 포맷이어서 생기는 문제
  • 개발 환경
    • os 부터 시작해서 모두 각자 다른환경을 가지고 있고 이걸 통합하지 못함으로 인해서 로컬 실행이 안되는 분도 있었다.

코드

  • jupyter-notebook 을 통해 모든 것을 진행하게 되면 스파게티 코드와 같은 경험을 하게된다
    • 이 것이 이분야의 일반적인 경험인지 모르겟으나 나로썬 집중하기 어렵고 비효율이 집중을 흐리게했다.
      • 너무 길다, 마킹을 위해서는 중간 중간을 markdown 으로 헤더를 남겨서 IDE 기능을 통해서 이동해야한다
      • 수정을 어디했는지를 잘 모르니 어디서 부터 다시 시작해야할지 헷갈린다
      • stateful 한 방식의 코드가 셀별로 사용되다가 어디까지 실행되었는지 잃은경우 다시 시작한다
    • 이러한 것들은 이런 프로젝트의 프로세스가 체화되면 나아질 수 있을 것 같다
    • 개발자가 가지는 모듈화라는 관점에서는 좀 어려운 면이 있었다
    • vscode 는 좀 나은 것 같긴한데 pycharm + vim 의 조합은 최악이었다. 버그투성이고 커서가 튀어서 집중하기가 어려웠다.

경험

  • 각개 격파를 하는 중에 chatgpt 와의 심도깊은 대화를 통해 많은 것을 깨달았으나 이미 늦었다.
  • 데이터 분석도 실습없이 눈으로 보고 온 것들이 지금와서 발목을 잡는다
    • 실습하고왔어도 어차피 같은 상황이었을 것 같긴한다
    • 어차피 익숙해지는데는 시간이 걸린다
    • 프로젝트가 시작되기 전에 눈으로 보는 수준으론 어렵고 손으로 정리하면서 이해의 수준을 끌어 올려두면 도움이 될 것
  • 프로젝트를 진행하면서 필요한 task는 순서가 분명히 존재하니 이를 체화해야한다.
    • 효율성 때문, 결측치를 먼저 보정한뒤에 그래프를 본다 등
  • jupyter-notebook
    • jupyter-notebook 의 결과에 대한 커밋을 strip 하는 방식으로 진행해야할지 확인이 필요하다
      • diff 툴도 찾아본다
    • 한 파일이 너무 길어지면 파일 관리가 어려워지는 것은 매 한가지인 것 같다
      • 그러나 캐글등 모들 플랫폼에서 원파일로 정리가 되어있다.
        • 정리만 한 파일로 한걸가?
    • 하이퍼파라메터 튜닝등 time-consuming 한 작업을 하기위해 py 파일이 편리할 것
      • tmux 와 같은 가상 세션으로 집전기세는 보존
    • 아무래도 eda 나 피쳐 셀렉션등의 결과를 스탭단위로 저장하고 다음 파이프라인(파일)로 가는 형태로 설계하는게 좋을것이라 생각된다