ML Engineering vs. AI Research

jeung byun·2022년 3월 20일
post-thumbnail

Introduction

경력이 이제 막 3년차 AI Researcher로 접어들고 2번째 직장을 가지게 되면서 그 동안의 과정을 돌이켜 보고 성찰해보고자 기술블로그를 시작해보았습니다.
물론 아직은 초보 연구자이고 부족한 점이 많이 있지만 너그럽게 이해해주시고 글을 가볍게 읽어주시면 감사하겠습니다. ㅎㅎ

일단 저는 전 직장에서 ML Engineer로 근무하였다가 현 직장에서는 AI Researcher로 position을 바꾸게 되었는데 두 position들이 어떤 차이점이 있는지 이번 블로그에서 다뤄보겠습니다.

AI Research

AI Researcher은 말 그대로 Deep Learning, Machine Learning, AI 쪽 연구 업무를 하는 포지션으로 주로 딥러닝 관련 CS conference 및 Journal을 초점으로 연구를 하고 있습니다. 물론 딥러닝도 정말 다양한 분야와 다양한 문제에 대해서 적용됩니다. 하지만 회사에 소속된 연구원인만큼 회사의 사업방향과 회사가 풀고자 하는 문제와 이와 연관된 주제에 대해서 연구를 진행하고 있습니다. 기술 및 연구 기반의 회사의 경우 회사의 기술력을 “증명” 혹은 “quantify”하기 위해서는 회사가 보유한 특허와 publish한 논문이 중요한 기술력 지표가 됩니다. 따라서 AI Researcher의 Key Performance Index (KPI)은 특허 출허와 논문 기고가 되겠습니다.

ML Engineering

ML Engineer의 경우 Deep Learning, Machine Learning, AI 쪽 개발 업무를 하는 포지션으로 주로 인공지능 모델을 상용화하여 서비스하는 개발 업무를 합니다. 여기서 ML 개발 업무는 크게 (1) “Data Engineering”, (2) “ Pipeline 성능 고도화”, (3) “MLOps” 등등으로 볼 수 있습니다.

(1) Data Engineering:

“Garbage in, Garbage out”이란 meme이 ML 세계에서 많이 인용되듯이, 나쁜 quality 혹은 label corruption이 심한 data은 인공지능 모델 성능을 저해할 수 있습니다. 따라서 Data Engineering의 경우 quality가 나쁜 data은 filter-out하고 data의 versioning, data quality control 등등의 업무를 포함합니다.

(2) Pipeline 성능 고도화:

뛰어난 모델 성능은 단일 딥러닝 모델 하나로 성취하기 굉장히 어렵습니다. 최종 모델 성능은 pipeline의 구성 (a) 전처리 과정 (preprocessing) (b) model”s” (e.g. ensemble) (c) 학습 data (d) 후처리 과정 (post-processing) 들에 의해서 결정되기 때문에 모델 하나만 최적화해서는 이루기 힘들고, pipeline의 구성들을 모두 하나하나 최적화하고 개선해야지만 뛰어난 성능을 확보할 수 있습니다. 따라서 모델 성능 고도화 업무는 해당 pipeline의 (Data engineering에 해당되는 학습 data만 제외한 나머지) 구성들을 최적화하는 업무에 해당됩니다.

(3) MLOps:

ML Model도 일종의 “유통기한”이 있습니다. 예를 들어서 외부 환경의 변화에 의해서 data의 분포가 바뀌는 distribution shift나 label shift에 의해서 기존의 모델은 성능이 잘 나오지 않는 경우가 있습니다. 혹은 유저의 needs에 의해서 더 개선된 성능의 모델이 필요하기도 합니다. 그래서 ML Model도 계속 개선되어야 하는데, ML Model의 학습 -> ML Model의 deployment -> deploy된 ML Model의 성능 저하 혹은 개선된 성능의 필요성-> ML Model의 추가 학습 혹은 수정 -> 재 deployment 이 일련의 과정을 ML lifecycle이라고 합니다. 이러한 ML lifecycle과 관련된 업무를 MLOps 업무에 해당됩니다. MLOps가 “모델 성능 고도화”와 일부 유사한 측면이 있는데 MLOps은 고도화된 모델을 기존에 서비스 중인 제품에 continuous하게 integrate하고 이를 scalable하게 서비스하는 것에 있다고 볼 수 있습니다.

Conclusion

보시다시피 ML Engineering의 업무는 (1) “Data Engineering”, (2) “ 모델 성능 고도화”, (3) “MLOps”으로 나뉩니다. 물론 이 3가지 업무에 전부 능통하고 혼자서 수행하고 계시는 뛰어난 엔지니어도 있을 수 있습니다. 하지만 저는 이전 직장에서 job title은 ML Engineer였지만 AI Research + Pipeline 성능 고도화 + Data Engineering 구분없이 전부 다 진행하다보니 이도저도 아닌 결과물이 나오기 쉽상이였습니다. 따라서 (제 개인적인 생각으로는) AI Research와 ML Engineering을 서로 구분짓는 것이 필요하고 ML Engineering 업무를 “Data Engineering”, “Pipeline 성능 고도화” , ”MLOps” 관점에서 세분화하고 이를 구분지어 진행하는 것이 중요해보입니다.

profile
AI Researcher

1개의 댓글

comment-user-thumbnail
2023년 1월 21일

깔끔한 정리 감사합니다

답글 달기