Search
✍🏼

25년 3분기 회고 & 계획

2페이지 논문을 작성 및 제출해서 영어로 발표도 하고, 학부연구생들을 위한 커리큘럼을 설계 및 운영도 하고, 논문 주제를 선정하는 과정부터 실험을 진행하는 과정까지
많은 경험을 했던 25년 3분기의 기록을 정리하고자 합니다

[25.08] 논문 작성 및 영어 발표 at PlatCon25 학회

PlatCon25에 제출한 소논문
저희 컴퓨터시스템 연구실(CSLab)은 매년 제주도 또는 부산에서 열리는 PlatCon(International Conference on Platform Technology and Service) 학회에 참석합니다. 작년 PlatCon 갔을 때는 학부연구생으로서 참석만 했었는데, 올해는 석사과정으로서 “서버리스 컴퓨팅 환경에서의 함수 수준의 스케줄링에 대한 연구(A Study of Function-Level Scheduling in Serverless Computing)”라는 주제로 2페이지의 짧은 논문을 작성하고 제출했습니다.
PlatCon25에서 영어로 발표하는 모습
많은 사람 앞에서 연구 내용을 설명하는 것도 떨리는데, 이를 영어로 발표하게 되어 더 떨렸던 것 같습니다. 이번 연구를 통해 ‘서버리스 환경에서 각 함수 인스턴스를 어떤 노드에 어떤 식으로 배치하냐’에 따라 리소스 효율성이 크게 변한다는 것을 알게 되었습니다. 또한, 더 큰 무대로 나아가기 위해서는 영어로 매끄럽게 발표하는 연습도 필요하다는 것을 배웠습니다.

[25.07-08] 학부연구생들을 위한 커리큘럼 구성 및 운영

저는 여러 사람의 동기를 부여하고 함께 성장하도록 돕는 일에 강점이 있고, 이를 즐긴다는 사실을 알게 되었습니다.
25년 7월 학부연구생 커리큘럼 일부
올해 7~8월에는 제가 석사과정생으로서 6명의 학부연구생들을 위해 여름방학 커리큘럼을 설계하고 운영하는 역할을 맡게 되었습니다. 작년 학부연구생 시절의 커리큘럼을 생각하며 아쉬웠던 점은 보완하고 좋았던 점은 살려서 학부연구생들이 입학하자마자 연구실에서 진행하는 프로젝트 및 연구에 바로 투입될 수 있도록 성장시키는 것을 목표로 2개월간의 체계적인 커리큘럼을 구성했습니다.
커리큘럼 운영을 제 대학원 업무 및 연구와 함께 진행하다 보니, 힘들었던 순간들도 있었습니다. 하지만 고맙게도 학부연구생들이 두 달 동안 열심히 잘 따라왔고, 열띤 토론을 통해 지식의 범위를 넓혀가려는 연구생들의 모습을 보니 힘듦보다는 뿌듯함이 더 컸습니다.

[25.07-08] 치열했던 논문 주제 선정 과정

무(無)에서 유(有)를 만드는 논문 주제를 선정하는 과정이 아무래도 제일 어렵지 않을까 싶습니다.
논문을 아무리 읽어도 충분하지 않은 것 같고, 괜찮은 아이디어라고 생각하면 비슷한 논문이 발견되곤 합니다. 그리고 비슷한 논문도 없고 나쁘지 않은 아이디어라고 생각해서 박사과정 분들께 세미나 형식으로 발표하면, 예상하지 못한 논리적 허점이 발견되어 원점에서 다시 시작했던 순간들이 있었습니다.
논문 주제를 선정하는 과정이 쉽지 않았지만, 연구자로서 단기간 내 빠르게 성장할 수 있는 좋은 기회였습니다. 우여곡절 끝에 선정한 제 논문 주제의 궁극적인 목표는 “서버리스 컴퓨팅 환경에서 미리 함수 호출량을 예측하여 함수 인스턴스를 미리 띄우거나 제거함으로써 콜드 스타트(Cold Start)와 오버 프로비저닝(Over-provisioning)을 최소화하는 시스템”을 만드는 것입니다.
그래서 저는 하나의 추론을 여러 개의 하위 전문가 모델들로 분할하여 추론하는 MoE(Mixture of Experts)를 활용하여 서버리스 환경에서 함수 호출량을 더 정확하게 예측하는 시스템인 “MESP: Mixture of Experts based dynamic router for Serverless workload Prediction”라는 논문 주제를 제안했습니다.

 논문 주제 선정 과정에서 배운 점

논문을 꾸준히 조금씩이라도 읽는 루틴을 만들자.
최신 연구 트렌드를 놓치지 않고, 아이디어를 얻는 가장 확실한 방법입니다. 흐름을 한번 놓치면 따라잡기 어렵기 때문에, 매일 정해진 시간에 논문을 읽는 습관은 장기적으로 큰 자산이 됩니다.
논문은 꼼꼼하게 정리해둬야 나중에 편하다.
나중에 Related Work를 쓰거나 참고 문헌(Reference)을 인용할 때, 정리된 자료가 없으면 읽었던 논문을 다시 찾아 읽어야 하는 비효율이 발생합니다. 각 논문의 핵심 아이디어, 한계점, 인상 깊었던 점 등을 키워드와 함께 기록해 두는 것이 중요합니다.
어떤 문제를 해결할 것인지, 그 문제가 정말 중요한지, 그리고 이 방법론이 적합한지 등 논리적인 흐름이 가장 중요하다.
“왜 이 연구가 필요한가?”라는 질문에 제대로 대답할 수 있어야 합니다. 문제 정의(Problem) → 제안 방법(Method) → 기여하는 점(Contribution)으로 이어지는 탄탄한 논리 구조가 필요합니다.
논문 주제를 동료나 지도교수님과 적극적으로 공유하고 피드백을 통해 ‘객관화’한다.
혼자만의 생각에 갇히면 아이디어의 허점을 놓치기 쉽습니다. 다른 사람에게 자신의 연구를 설명하는 과정에서 스스로 논리가 정리되기도 하고, 예상치 못한 허점을 발견하거나 더 좋은 아이디어를 얻을 수 있습니다.
논문 주제를 검증할 데이터셋과 컴퓨팅 자원이 현실적으로 확보 가능한지 가장 먼저 확인한다.
아무리 훌륭한 아이디어라도 그것을 실험으로 증명할 수 없다면 논문으로 완성되기 어렵습니다. 연구를 시작하기 전, 필요한 데이터에 접근할 수 있는지, 연구실 서버 등에서 감당할 수 있는 수준의 모델인지 등 현실적인 제약 조건을 반드시 먼저 체크해야 합니다.
다음 논문 주제를 선정할 때, 위의 배운 점을 잘 참고하고자 합니다.

[25.09] 논문 주제에 대한 실험 진행 과정

9월에는 정해진 논문 주제에 대한 본격적인 실험을 시작했습니다. AI 모델을 학습하는 과정이 꽤 힘들었지만, 많은 것을 배웠습니다.
MESP(Mixture of Experts based dynamic router for Serverless workload Prediction) 시스템의 성능을 검증하기 위해서 다음 세 단계의 실험을 진행했습니다:
[실험 1] 클러스터링 알고리즘 학습 및 데이터셋 클러스터링
[실험 2] 전문가 모델 K개 학습 및 선정
[실험 3] MoE 아키텍처 vs 단일 모델 비교
먼저 [실험 1]에서는 여러 패턴이 함께 섞인 대규모 서버리스 함수 호출량 데이터를 K-Shape라는 클러스터링 알고리즘을 이용해 ‘유사한 패턴’을 가진 K개의 데이터 그룹으로 나누는 작업을 진행했습니다.
이어서 [실험 2]에서는 이렇게 나뉜 K개의 데이터 그룹 각각에 대해 Sunidal(2025), Chronos(2024), TimesFM(2023), PatchTST(2023) 등 다양한 시계열 예측 모델을 학습시켜 각 K개의 데이터 그룹에 대해 최고의 성능을 내는 ‘전문가 모델’을 선정했습니다.
마지막으로 [실험 3]에서는 선정된 전문가 모델의 MoE 아키텍처 조합이 모든 데이터를 하나의 모델로 학습시킨 기존 방식(단일 모델)에 비해 예측 성능이 뛰어난지를 비교 검증했습니다. 이 실험을 통해 MESP 시스템의 최종적인 우수성을 증명하고자 했습니다.

 AI 모델 학습 과정 중 배운 점

약 3주 동안 AI 모델을 학습시키면서 많은 시행착오를 겪었고, 미리 알아두면 좋을만한 점들을 공유하고 싶습니다.
학습 코드가 잘 동작하는지 확인하기 위해서 적은 데이터셋으로 먼저 돌려본다.
전체 데이터로 몇 시간씩 학습을 돌렸는데, 사소한 코드 오류로 멈추면 정말 허탈합니다. 1~2 에포크(epoch)라도 작은 데이터로 먼저 돌려보고 전체 파이프라인이 문제없이 동작하는지 꼭 확인해야 합니다.
AI가 짜주는 코드를 활용하는 것은 좋지만, 이해 없는 코드 복사/붙여넣기는 하지 않는다.
GPT 등이 제공하는 코드를 활용하는 것은 유용하지만, 데이터셋과 모델 구조에 대한 이해 없이 사용하게 되면 오히려 독이 될 수 있습니다. 코드가 어떤 원리로 동작하는지 이해하고 사용해야 올바르게 디버깅이 가능하고, 결국 이게 더 빠른 길이라는 것을 알 수 있습니다.
학습 과정과 결과를 체계적으로 기록한다.
하이퍼파라미터, 평가 지표 등을 엑셀이나 MLflow 같은 도구를 이용해 체계적으로 기록하는 습관이 매우 중요합니다. 기록하지 않은 실험은 없었던 실험과 같다고 보면 됩니다.
주기적으로 모델 체크포인트(checkpoint)를 저장한다.
몇 시간, 혹은 며칠씩 걸리는 학습이 중간에 멈췄을 때 처음부터 다시 시작해야 하는 아찔한 상황을 겪기도 했습니다. 가장 성능이 좋았던 시점의 모델 가중치를 주기적으로 저장하는 로직은 반드시 필요합니다.
조금씩 날씨가 쌀쌀해 지고 있습니다. 다들 감기 조심하시고 긴 글 읽어주셔서 감사합니다
“50대의 추교현이 20대의 추교현에게 감사할 수 있도록 하루하루 최선을 다해 살고 있습니다.”
The End.