일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- keyword
- 변수
- receiver method
- 패스트캠퍼스업스테이지부트캠프
- golang pointer
- Pointer
- 함수
- 패스트캠퍼스
- slice
- 패스트캠퍼스AI부트캠프
- array
- scope
- 메서드
- 타입
- golang slice
- package
- receiver
- golang array
- method
- UpstageAILab
- golang
- golang slice remove
- Interface
- 업스테이지패스트캠퍼스
- 상수
- 패스트캠퍼스업스테이지에이아이랩
- struct
- 스코프
- 국비지원
- golang interface
- Today
- Total
느리지만 꾸준히, 코딩
Upstage AI Lab 수료 본문
나는 지난해 11월 부터 어제까지 AI 부트캠프에 참여했다. 그리고 어제 25.6.18(수) Upsatge AI Lab 6기가 마무리 되었다. 부트캠프 기간동안 어떠한 변화가 있었는지 기록으로 남기고자한다. 내가 AI에 대해 관심을 가지게된건 한국사람이라면 모를수가 없는 이세돌과 구글 딥마인드 알파고의 대국이었다. 그때 나는 웹개발자로 일을 하고 있었기 때문에 AI를 배우면 좋겠다는 생각을했다. 그리고 아무생각없이 케라스 라는 머신러닝 책을 구매했다. 책을 펼처보니 1도 이해가 가지 않아서 바로 덮어버리고 책상 깊숙한곳에 넣어버렸다. 그러면서도 중간중간에 데이터 엔지니어링 온라인 수업도 들었던적도 있고 유튜브로 꾸준히 AI 쪽을 기웃거렸던것 같다. 그러면서 들었던 생각은 너무 Low Level 기술이고 일반적인 소프트웨어 개발자가 학습해서 사용할정도로 interface가 조금은 고수준으로 올라오면 그때 다시 도전해봐야지 생각을 했었다. 그런데 ChatGPT가 나오면서 AI기술이 생각했던것 이상으로 빠르게 발전하면서 과거 내가 생각했었던 레벨로 점차 다가오는게 느껴졌다. 그리고 다시 한번 AI를 Deep Dive해야겠다는 생각을 하게되었고 부트캠프를 찾아보게 되었다. 나에게는 많은 시간이 없었기 때문에 최대한 가까운 시기에 시작하는 과정과 밑을만한 교육업체에서 주최하는 교육을 원했다. 그렇게 두개의 교육이 눈에 보였다. 네이버 재단에서 운영하는 boostcamp 와 업스테이지 AI Lab이 었다. 1순위는 "boostcamp" 였지만, 시기가 나와 맞지 않았다. 업스테이지 AI Lab 은 한달정도 뒤에 시작하는과정이 있어서 적합하다고 생각했다. 그렇게 AI 부트캠프를 시작하게 되었다. 이 당시 나는 방통대 편입학도 고려했었는데 AI 부트캠프와 동시에 진행하는게 무리일지 판단하기 위해 우선 한달간 부트캠프 수업을 듣고 결정하기로 했었다. 그렇게 python 기본 문법부터 선형대수 등 점차 난이도가 있는 수업이 진행되면서 이건... 방통대와 함께 진행한다면 둘다 놓치게 될 수도 있을것 같아서 방통대는 부트캠프 졸업후 진행해야겠다고 생각했다. 그렇게 AI 기본 역량 수업을 한달반? 정도 진행하고 12월 중순쯤 부터 첫번째 대회엔 "서울 가격 예측" 대회가 시작되었다. 참고로 Upstage AI Lab을 선택했던 가장 큰 이유는 과정 거의 대부분이 대회와 프로젝트를 진행한다는것 때문이었다. 직접 만들어보면서 배우고 느끼는것이 학습효율이 좋다고 생각을 했었기 때문에 나와 결이 맞는 커리큘럼이라고 생각했었다. 그렇게 대회가 시작되었는데 당연하게도 전혀 이해가 되지 않았다. 파생변수, 데이터 정제, 결측치 보완, 변수 제거 등등 어떤 시도를 해보아도 점수가 전혀 오리지도 않았고, 실험을 진행하지만 이 실험이 모델성능을 향상시키는 방향인것이지 조차 갈피를 잡을수 없었다. 그렇게 나와 우리팀은 2024.12.23 ~2025.01.07 큰 성과를 거두지 못한채 대회를 마치게되었다. 이때 가장 크게 실수했던것은 모델 성능 개선 여부를 판단할수있는 기준점이 없었다는것 이었다. 왜냐면, 당시 로컬 모델 evaluation에서는 5000 score였는데 실제 제출을하면 45000 score가 나오는것이었다. 당시는 모델 학습 부터 평가에 이르는 과정을 처음 경험해봤기 때문에 "이게 뭐지?", "왜 이런거지?" 의문만 남긴 채 로컬 evaluation score는 무시하고 직접 제출을 통해 모델이 개선되고 있는지 판단했었다. 하지만, 12번으로 하루 제출 제한이 걸려있었기 때문에 많은 실험을 할 수 없었던것이다. 이때 우리가 해야 했었던 것은 평가 데이터셋을 테스트 데이터셋과 유사한 방식으로 분리후 진행해야했었다. public 평가 데이터는 23년 07~9월까지의 데이터였지만 로컬 평가 데이터는 랜덤 스플릿으로 전체 기간에서 20%의 데이터를 빼서 했기때문에 애초에 우리가 만들고자하는 모델과 전혀 다른성격의 데이터로 진행했었던것이다. 그렇기 때문에 당연하게도 성능 개선에 대한 방향성이 끝까지 잡히지 않았던것이다. 그렇게 대회가 끝나고 난후 비록 제출을 통해 모델 점수를 평가받을수는 없었지만 일주일동안 나는 내 로컬에서 문제점들을 파악하며 혼자만의 대회를 진행했다. 대회 데이터는 23.06월까지의 데이터였기 때문에 23.03~6월 데이터를 평가데이터로 삼고 23.02 이전 데이터를 학습데이터로 제한해서 진행했다. 그렇게 하나씩 복기하면서 나혼자만의 대회를 진행했고 대회이후에 더 많은것을 깨닫고 배울수 있었다. 다음 프로젝트는 2025. 01. 16 ~ 2025. 02.03 기간동안 진행한 MLOps 프로젝트였다. MLOps는 대회는 아니고 팀 프로젝트로 진행했다. 내가 팀장을 맡았다. 아무래도 나는 웹개발자로 일해봤기 때문에 어느정도 자신감은 있었다. 우리팀은 서울 공공 날씨데이터를 수집하고 다음날 기온을 예측하는 주제로 진행했다. MLOps프로젝트는 내가 알고있었던 기술들이 많았기때문에 그렇게 어렵지 않았다. 하지만 Airflow, mlflow는 처음 접해봐서 두개의 툴을 통해 파이프라인을 만드는것에 집중하면서 진행했다. "데이터 수집 -> 모델 학습 -> 모델 버전 관리 -> 모델 배포" 의 과정이 많이 궁금했었는데 MLOps프로젝트를 진행하면서 모델 학습부터 배포까지의 프로세스를 경험할수 있어서 많은것을 배울수 있는 프로젝트였다. 3번째는 "문서 타입 분류" 대회로 이미지에 적합한 분류 하는 Computer Vision 모델을 만드는 대회였다. 부트캠프 과정중 가장 기억에 남고 보람되었던 대회이기도 하다. 왜냐하면 내 점수가 전기수 압도적 1등을 했기때문이다. 이전 기수들은 대부분 0.96대의 점수를 넘지 못했지만 내가 달성했던 점수는 "0.9832" 로 앞도적인 점수였다. 이 점수는 이후 매니저님, 강사님께서도 많은 칭찬을 해주시고 회자가 되었다. CV 대회에서 내가 높은 점수를 달성할수있었던 것은 "철저한 가설/검증"프로세스 덕분이었다고 생각한다. 지난 "서울 아파트 가격 대회"에서 정말 열심히 했지만 성능을 많이 올리지 못했다. 그 이유는 가설 없이 실험만 했고, 실험을 통해 더 나은 가설을 세우고 더 좋은 방향성을 찾아갔어야했는데 그러한 부분이 많이 미흡했기 때문에 CV 대회를 시작할때는 욕심을 버리고 "하나의 가설/검증"만 하더라도 나는 이번대회를 만족한다는 생각으로 시작했다. 그런데 신기하게도 정말 작은 가설을 세우고 실험을 하나씩 진행하는데 이전대회와는 다르게 성능이 개선되는 이유가 명확히 이해가 되니까 다음 단계로 어떠한 가설을 세우고 어떻게 실험해야하는지 자연스럽게 이어지면서 성능이 점점 좋아지는것을 느끼게 되었다. 하지만 이전기수가 0.96을 못넘엇던것처럼 우리팀 또한 0.96을 못넘고 있었다. 이때 나는 공원에서 운동을 하면서 여러생각을 하던중에 하나가 떠올랐는데 "나는 어떻게 문서를 인식하지"였다. 사람은 대부분 타이틀을 먼저 감지 한 후에 문서를 분류할것이다. 그런데 내가 학습시켰던 모델들은 문서 전체의 패턴을 학습해서 예측하는 모델들이었다. 그래서 나는 타이틀을 인식할수있는 모델이 필요했는데 그게 바로 "YOLOY" 모델이었다 "YOLO"는 객체탐지 모델이어서 내가 찾고있던 모델이었고 학습 후 성능을 테스트해보니 0.98로 역대 최대 점수가 나왔던것이다. 그 후 발표를 통해 내가 했던 가설과 실험을 열심히 설명했고, 강사님께서는 "감동적이다"라는 말씀까지 해주시면서 많은 칭찬을 해주셨다. 이 외에도 "Dialogue Summarization", "Scientific Knowledge Question Answering", "Chemical Process Anomaly Detection", "기업 연계 프로젝트" 등을 진행하면서 내가 생각했던것보다 훨씬 많은것을 경험하고 배울수있었다.
[마무리]
두서없이 생각의 흐름대로 적고있었는데, 너무 길어지는것같아서 빨리 마무리 지어야겠다. 지난해 11월 과정을 시작할때는 걱정도 많이 되고 잘할수 있을지 의심도 많이 들었었다. 하지만 나는 욕심을 내려놓고 매순간순간을 즐기는 마음으로 접근했었던것이 잘 마무리 할 수 있었던 힘이된것같다. 그렇게 나는 수료식에서 "우수 수료생"으로 선발이 되었고 AI 부트캠프를 마무리 하게되었다.