일기장

캐글 코리아 5차 커뮤니티 대회 모각캐 오프라인 모임 후기

graph-dev 2024. 3. 17. 19:31
728x90

 

"모여서 각자 캐글" 줄여서 모각캐라고 한다.

 

 

오프라인 모임을 상당히 오랜만에 진행했다고 한다. 내가봐도, 2019년 이후로 잘 참여못해서 코로나 시기(2020~2021) 이후로 캐글 이야기를 잘 들어보지 못했던 것 같다.

 

최근에는 그래도 자체 캐글대회도 열고 한다니 참여해볼 의향이 있다.

 

핸즈온 세션과 발표 세션이 있는데 그 중 발표 세션만 들었다.

 

 

강남의 논스(nonce)라는 장소에서 진행했다. 역삼역에서 갔고, 의외로 거리가 좀 있다.

 

 

 

논스 입구

 

 

각종 간식과 스티커를 준비해두었다. 푸짐하고 좋다. 뒤에 물도 있어서 갈증을 잘 해소했다.

 

 

 

세션은 아래와 같다. 간단히 핸즈온 세션, 발표 세션 다 보는데, 핸즈온은 12명 회의실에서 진행되어 늦게 신청하면 못 듣는다. 그래서 못 들었고, 들어보니 발표 세션이 무난하고 질의응답도 넉넉히 할 수 있어 마음에 들었다.

 

발표 세션
1. ML 스터디 운영기: 5년간의 여정 - 모두의 연구소, 김태헌
2. 분산 환경 GPU 학습 스케줄러 구현기 - Naver BoostCamp AI Tech, 한상범
3. ChatGPT와 함께 캐글 경진대회 도전하기 - 카이스트 AI 대학원 박사과정, 허경훈
4. 정형 데이터 기반 ML 경진대회 후기 공유 - 업스테이지, 김현우

핸즈온 세션
1. TensorRT로 스테이블 디퓨전 가속하기 - 가짜 연구소, 이홍규
2. Huggingface Baseline Hands-on - 카이스트 AI 대학원 박사과정, 배성수
3. Langchain을 통한 CS업무 대체하기 (열화판) - 위메이드, 이동욱

 

ML 스터디 운영기: 5년간의 여정

첫번째 발표는 김태헌님의 ML 스터디 운영기이다.

스터디는 늘 진행하지만 항상 어려웠고, 5년이나 진행했다는 소식에 눈이 반짝인다. 그 노하우와 비결을 들어보았다.

 

 

 

혼자 공감했던 슬라이드, 나의 유리멘탈 파트. 스터디 운영하면 늘 반응하지 않는 채팅방과 스터디원들의 차가운 얼굴을 마주해야한다. 의무가 아니다보니 늘 그렇고, 취업이나 시험 등으로 수많은 불참을 마주해야한다. 그 모든 것을 견디는 스터디는 훌륭한 스터디라 감히 말하겠다. 그 외에도 재밌는 발표 주제들을 보여주시며, 진행하고 있다니 궁금하기도 했다. 전반적으로 재밌게 듣고 공감하는 시간이었다.

 

다음은 듣고 내맘대로 정리한 부분이다.

어쩌다보니 2019년부터 4년 12개월 운영 중이다. 200개 진행.

HRD, DevRel, 콘텐츠 PD, 퇴근후딴짓 유튜브 채널

30명 참여 vs 5명 참여 → 5명이 좋다.

5명에서 활동하고 싶다. → 장기적으로 가려면 30명

5명은 오래 못간다. 끈끈하고 좋지만.

체감상 느낀바는, 참석률 그래프(스터디 유통기한)

(인원 / 열정)

초기에 열정있는 분 많이 참여한다. 2개월을 못간다.(5명 기준) → 절반만 빠져도 모임이 잘 되지 않는다.

스터디는 오래가지 못한다.

4개월 되면 또 꺼지고 그렇다.

수원에 모임 시작

캐글도 모르고, 취업카페에 모집(네이버에서 검색)

모임 초기: 파이썬 완벽 가이드 → 머신러닝 탐구생활

발표자 지정 → 발표자 불참시 리스크가 크다.

캐글 대회 4개 챕터로 해서 참여할 수 있다.

들어가면서 어려워진다. 종료된 대회인데, 3주는 공부해야 학습이 가능하다.

스터디에서 진행하려니, 2주 지나니 공유할 내용이 없어진다.

당시 국내 대회도 다양했다. 대회 중에는 좀 열정적인데, 종료된 대회는 좀 몰입감 떨어짐.2개만 하고 그만둠.

작은 성공 경험한 멤버 등장.(1등 예정, 취업 성공 등)

5년간 유지 여부: 코로나 → 온라인 전환

지금도 온오프라인 병행한다. → 온라인은 해외에서도 꽤 참여한다. → 한국어로도 진행.

온라인이 좀 재미가 ㅇ벗어진다. 현업자 초청 세미나도 진행한다. 많이 까이기도 함.

치킨 이벤트도 하고, 머플러 나누며 파티도 함.

비대면 TIL 챌린지 - 매일매일 기록할 수 있게 유도하려고 함.

네트워킹: 캐글 코리아 스터디 송년회 진행.

두세달 한번 진행.

캐글 코리아 커뮤니티에서 모집

줌은 30명까지만 보인다. 30명 이상은 진행 어렵게 되기도 했다.

성과

대회 수상: 다수(국내 대회 위주)

취업/이직/직무전환

대학원

프로젝트(공공)

네트워킹, 매주 자극, 도서 지필

스터디 학습주제 변화

이번주 주제

신약개발 경진대회 등

정보보호 시각의 RAG, 지식그래프 등.

난이도가 매우 쉬움부터 어려움이 있다.

조금씩 어려워지는 추세인듯이다. MLOPS같은 것도 확장되는 경향. 엔지니어링적 역량도 키워두면 좋겠다.

<장점>

다양한 관점, 지식 스콥 넓어짐, 자극, 의욕이 생기고 새로운 것들을 배울 수 있고, 질의응답, 킵고잉문화

<단점>

집중도 조금 떨어짐, 개인 의지 중요, 스스로 의지 없으면 얻을 게 없다 / 못 알아듣는게 많음 / 수준별 스터디 안된다.

요즘은 Claude로 뽑음

최신 기술, 대회 참여 등

쪼개지질 않는다.

운영진이 있어서 나 없어도 되는 모임 원한다.

올해 시도는 매 모임마다 모더레이터를 얻어서 리딩하게 하려고 한다.

스터디 모임은 그냥하면된다.

이왕하는거 좋은 모임, 문화를 만들고 싶다.

 

 

 

분산 환경 GPU 학습 스케줄러 구현기

다음은 분산 환경 GPU 스케줄러 구현기라는 제목으로, 네이버 부스트캠프 AI 테크 한상범님의 발표를 들었다.

 

Redis의 pub sub 구조를 활용했다고 한다. 네이버 부스트캠프 AI 테크는 개인당 GPU 서버 한대를 제공한다. 6명이 모여서 GPU 서버 6개를 하나로 모아본다고 그런데, 잘 이해는 못했다. 

Redis의 자료구조 메커니즘

Pub Sub, Redis, cue

레디스 리스트를 활용해 분산 GPU상황에 실시간 서비스를 운용했다.

원자적 메시지 읽기, 메모리 제한 없음

단점도 메모리 제한 없음. 메시지 처리 실패 시 메시지 유실이 된다. → 해결 가능하다.

  • 추론 서버에서 발생 가능한 실패 케이스를 정의하여 메일/푸쉬 알림을 제공했다.

사용자가 부적절 영상을 입력할 경우, 디비에 적용하여 알림을 주어 극복했다? 알림 주는거도 비용이 들지 않나..?

 

 

ChatGPT와 함께 캐글 경진대회 도전하기

이제는 GPT로 캐글 경진대회에 참여할 수 있다고? 궁금해서 들어보았다.

 

 

2020 유튜브 도움 많이 받았다. 머신러닝 잘 모르면 이제 핑계다.

2024년은 이제 Chat GPT 선생님이 있다.

캐글 참여하기에 너무 좋은 시기이다.

캐글에 열정이 있으나, 현생이 너무 바빠서 참여할 여유가 없다.

캐글은 기간이 정해진 대회 플랫폼이다. 성장하는 느낌이 나야 시도를 한다.

수상을 했을 때, 나름 Chat GPT 활용해서 인공지능 대회 수상한다.

코드를 보이고 코드를 받아낸다. 아이디어 내놓으라 한다.

무엇이 가능하고 안되는가?

 

아이디어는 챗지피티를 통해 얻고, 코딩도 지피티로 얻는다.

 

GPT의 시대, 당신도 배울 수 있다. 캐글?

 

오늘 챗 지피티를 쓸 것이다. 근데 GPT-4 코드인터프리터를 구매해서 사용하면 좋겠다.

궁금한거 뭐든 물어보자.

마지막 문항만 정리해서 구체적인 텍스트 예시를 준다.

캐글 컴페티션의 Evaluation 넣고 더 물어본다.

데이터셋 설명 다 넣어서, GPT 설명 다시 해달라 해준다. 더 쉽게 설명해봐 할 수도 있다.

데이터셋은 csv파일을 GPT에게 보여줄 수도 있다.

실생활에 있는 데이터셋 쓰다보니 데이터가 크긴 하다.

직접 올리긴 어려워서 샘플링 해서 줄여서 올린다. 업로드 한다.

GPT가 csv 파일을 읽고 어떻게 생긴지 안다. 파이썬 코드로 읽어준다. 각 컬럼의 내용을 설명한다.

이 데이터셋을 EDA를 해달라 하면 그래프도 그려준다. 우측에 코드도 확인할 수 있다.

결측치도 잘 설명해준다. 데이터 분포도 잘 설명해주니 공부하기 좋아졌다.

이제 어떤 포인트로 가야할 지 알 수 있다.

모델 선택 및 훈련도 가능하다.

네가 모델을 구성하는 코드를 짜주고 학습도 해줘.

 

모든 걸 물어본다

아쉬운 점

싸이킷런의 내장된 테이블 데이터 같은 전통 모델은 가능하다.

근데 TensorFlow, PyTorch같은 딥러닝 모델은 알 수 없다. 다만 코드는 알려 준다. 잘 활용해서 학습해볼 수 있다.

Baseline 코드를 참고할 때가 있다.

공부하고 따라하고 빌드업하고 싶을 수 있다.

들어가서 주피터 노트북 / 캐글 노트북에 다운로드 받을 수 있다.

이 노트북을 캐글에 업로드할 수가 있다.

노트북 업로드하면 이것도 읽는다.

내게 설명해달라고, 모델 정의 부분을 찾아서 코드별로 뭘 의미하는지 설명해준다.

과거엔 라이브러리 코드를 하나씩 검색해야하는데, 이젠 GPT한테 물어보면 라인별로 알려준다.

매우절약된다. 메트릭이 중요하다. Loss 구성이 예측 모델 성능에 좋을까?

그 중 2번과 3번 전략에 따른 코드 알려줘.

GPT가 고려 못하고 코드를 짜주는데, GPT가 알 수 있게 train set에는 이런 피처 있고, 테스트는 이런 피처 없다는 점 고려해서 성능 높이는 방법을 알려달라고 새야겠지.

 

되는거 안되는거

기술적 문제

  • 업로드 데이터셋 용량 제한
    • 타임아웃 에러로 진행 불가
    • 가벼운 수준은 코드 인터프리터로 바로 가능.
    • 모델은 싸이킷런 내장만 가능
    • 물론 파이토치 등도 코드는 알려주니 캐글 노트북 등에서 돌리면 되겠죠?
    • ipynb, csv 실행가능한데, 중간에 에러나기도함.
  • 프롬프팅에 대한 이슈
    • 충분한 이슈 제공 loss 사례
    • 원하는 포인트 별로 따로 질문하는 것이 좋다.

구글 검색보다는 이걸 하는게 시간적으로 좀 더 효율적이라 할 수 있다.

 

정형 데이터 기반 ML 경진대회 후기 공유

마지막으로 업스테이지 김현우님의 정형 데이터 기반 ML 경진대회(캐글 외에도) 풀이와 후기를 들었다.

 

 

 

 

TEAM-EDA 블로그

추천 시스템 KR 페이스북 그룹 운영진

깃허브

Kaggle

ML에 관심이 많다. 근데 캐글이 많이 죽었다고 한다. 참여가 저조함.

과거 참여한 캐글 경진대회이야기.

 

 

IEEE CIS Fraud Detection 경진대회

총 두가지 대회의 후기를 공유해주셨다. IEEE CIS Fraud Detection 경진대회로, 캐글 대회였다. 요새는 이러한 정형 데이터 기반 ML 경진대회가 거의 안나온다고 하니 잘 알아두기만 하자.

 

 

IEEE CIS Fraud Detection

https://www.kaggle.com/c/ieee-fraud-detection

 

IEEE-CIS Fraud Detection | Kaggle

 

www.kaggle.com

이 대회는 결제 단계에서 지불 거절 예방 → 진위 확인 비용 최소화하고, 가짜 고객이 거래하는지 확인해서 그 비용을 최소화한다.

identification 아이디 정보를 가져간다.

어떤 카드로 결제했는지 등과 같은 거래 관련 정보가 담긴 데이터셋이 제공되었다.

어려운 점은, 대회에서 상위 카테고리는 변수 정보가 제공된다.

변수 자체 정보는 제공하지 않는다.

변수 내용을 알고, 세부항목 모르는, 캐글 대회 나온 익명화 처리된 허들이다.

익명화 변수를 풀어서 어떻게 사기 거래를 검증하는지 확인한다.

정보 EDA를 통해 전처리나 파생변수 생성을 통해 최종 3명이 나눈다. 일부 피처를 통한 LGB + catboost + XGB 사용한다.

나머지 전 변수 활용한 모델 활용함.

“실제 0인 부분만 샘플링”

익명화된 변수를 찾는게 핵심이었다.

D1 649, D9 24 이런거에 대한 탐색을 시작함. (D1은 결측치 거의 없었음)

Train, Test 분포 크기가 다르다. train 0~400까지 값, test 0~600 → 이런 부분에 대해 전처리 해주는 포인트가 있다.

identificaiton과 정보 활용한다.

이 세개 중에 어떤 정보를 가용해 탐색.

6개 value가 isfraud가 1인 사람이다. 보라색으로 칠한 사람만 봤을 때, time D1을 보니, 실제 timeblock과 함께 이동한다.

D1 - 57을 하면, 이 사람의 카드 가입날짜를 알 수가 있다.

D에 대한 탐색.

V 변수에 대해 이야기한다.

너무 크다. 전처리 등을 Aggregation, PCA할 때, → “결측치”가 중요했다.

이 상관관계 행렬 heatmap에서 블록 형태 V를 aggregation(mean, median) 등 파생변수를 만들기도 했다.

D는 특정 시점에서 증가값.

그래서 모든 D의 값을 정규화했다.

거래량을 보다가 시계열을 본다.

train 과거, test 미래

이때 time series- split

근데 이렇게 넣으니 성능이 안좋다.

StraifiedKfold cv를 통해 진행함.

미래 테스트를 통해 담는다.

미래 정보를 통해 과거 탐지한다.

시간에 따른 연관성 있는 정보는 또 아니다. 그래서

전처리 / 정규화 시도함.

동일 유저군(카드 가입일 등)을 통해 EDA하고 → group by하고 → mean, counting encoding 등 모델링 전략을 사용합니다.

LGB XGB 등을 사용함

6300 중 20명 두명을 두고 경진대회 은메달 수상함.

 

 

 

NCSOFT Gamebot 탐지 경진대회

이건 아마 캐글 대회는 아니었던 것으로 기억한다. NCSOFT는 빅콘테스트인가 그런 대회에서 주로 대회를 열었던 것으로 기억한다. 게임에 대해 조금 관심있기에, 재밌게 들었다.

 

 

 

 

EDA 부분도 재밌게 들었다. 일반 유저와 게임봇의 차이를 시각적으로 살펴보고 몇가지 패턴을 보여주는데, 흔히 손크로라고 하는 사람들의 패턴이 아주 흥미롭다.

 

 

유형을 살펴보면, 게임봇(매크로)과 작업장(대량으로 모니터 띄워서 한번에 작업), 일반유저 정도로 본다. 헤비유저나 손크로 같은 예외적인 케이스가 좀 있는데, 이들도 사람이다보니 시간 제한은 있다. 로그가 0이 되는 시점이 분명하고, 쉬는 시간과 플레이 시간이 구분된다. 그게 사람인 것이다.

 

봇은 그런게 없겠다. 시스템이 돌아가는 순간이 거의 매일이라면 더더욱 확연히 차이가난다.

게임봇(매크로?) 오토 프로그램 이용해 벌기. 돈벌이를 위해 많이들 사용하는 모양이다. 그런 작업장들 다 잡아내서 유저에게 멋진 환경 만들어주면 좋겠다.

 

 

태블라 데이터 70GB 로그 정보를 가지고 해당 로그 ID 가지는 액션을 취한다.

월드 접속, 장소 어디든 캐릭터와 계정에 속한 캐릭터 → 행위 에 대한 정보(DP, EXP)

게임 봇 vs 유저 어떤 차이점이 있을까요?

게임봇은 뭔가 반복적일 것이다.

했던 행위를 반복하기도 한다.

출처: 자기유사도를 이용한 MMORPG 봇감지 시스템

Multimodal game bot detection using user behavioral

핵심 게임봇의 것

특정 장소에 해당하는 로그, 알고리즘 세팅한다.

그걸 클러스터링으로 디스턴스, std 등으로 게임봇, 유저 탐지하는데 분포 관점에서 유의미한 변수

로그 행위가 반복된다. 로그 = 벡터로 보고 → 코사인 유사도가 비슷하다면 유사하다.

(2)정규화를 통한 Covariate Shift 방지

Ratio라티오 기반으로 파생변수 조정하는것도 의미있었다.

얼마만큼 이동하는지 디스턴스의 std가진 것 정도가 의미있었음.

 

 

 

네트워킹: 의료 인공지능과 헬스케어

네트워킹 시간은 항상 즐겁다. 헬스케어 키워드만으로 5명에서 6명이 참여했다. 다른 키워드로 모인 곳보다 많은 분들이 모인 것 같다. 의사도 있고, 대학원생, 엔지니어, 개발자, 연구원 등 다양한 분들이 모였다.

 

 

앉은 자리에서 자기 소개를 하고보니, 의사도 있고, 대학원생, 엔지니어, 개발자, 연구원 등 다양한 분들이 있었다. 각자의 전문 분야를 들어보았다. 신약개발, 의료 영상, 유전체 연구 등 다양한 분야에서 활약하고 있었고, 캐글을 활용한 스터디에도 관심이 많아보였다. 헬스케어 직종은 워낙 분야가 다양하기도 하고, AI가 아니더라도 나같이 엔지니어링을 하거나 개발자도 있다보니 좀 더 다채로운 대화가 가능했다. 추가로 강화학습, 추천시스템을 공부하는 분들도 있었고, EHR 데이터를 활용한 연구를 하는 분들도 있었다. 과연 이러한 의료 데이터를 기반으로 하는 인공지능의 미래가 궁금하긴 하다. 국내 의료 시장의 한계를 논하는 분들도 있고, 결국에는 글로벌로 확장해야하는 것이 정답이란 분도 있고, 여러모로 생각이 많아지는 하루였다.

 

 

 

 

후기

모든 세션을 이해하기는 어려웠다. 그러나 스터디에 관한 경험과 캐글에 대한 열정에 대해서는 공감할 수 있었다. 요새는 ML 대회가 적고 LLM 대회 위주로 나온다고 하는 점은 아쉽지만, 그것도 시대의 흐름이라 생각하고 하나씩 배우며 성장하고 싶다.

 

결국 데이터분석이 하나의 엔지니어링처럼 변해가는 모습을 바라보며, 빠르게 업데이트하지 않으면 따라잡기도 쉽지 않겠다 싶다. 한편으로는 GPT 같은 도구를 적극 활용하여 빠르게 따라잡기도 가능할 것이라 생각이 든다. 결국 생각하기 나름일까, 아니면 꾸준한 사람이 결국 도달하게 될지, 마음 한켠으로 놔두고 다음을 기약해본다.