로딩...
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 나 피쳐 셀렉션등의 결과를 스탭단위로 저장하고 다음 파이프라인(파일)로 가는 형태로 설계하는게 좋을것이라 생각된다
- jupyter-notebook 의 결과에 대한 커밋을 strip 하는 방식으로 진행해야할지 확인이 필요하다