마키나락스는 4년만에 파리에서 오프라인으로 개최된 JupyterCon 2023에 국내는 물론 아시아 기업 중 유일하게 발표 세션에 참여하였습니다. JupyterCon은 데이터 과학자, 비즈니스 분석가, 연구원, 교육자, 개발자 및 핵심 프로젝트 관리자들이 한 자리에 모여 Jupyter 생태계에 대해 깊이 있는 토론을 나누는 장으로 올해에는 AWS, Zerve, Databricks, Bloomberg, Hugging Face, MakinaRocks 등 800명이 넘는 글로벌 리더 기업이 방문하여 성황리에 마무리 되었습니다.
마키나락스는 Jupyter 기반 AI 모델 개발 툴인 링크(Link) 출시부터 Jupyter와 뗄레야 뗄 수 없는 관계를 지금까지 이어오고 있는데요. Jupyter에서 시작해서 MLOps 플랫폼 Runway를 개발하기까지 마키나락스의 스토리를 전 세계 각지에서 모인 Jupyter Geek들에게 전할 수 있는 아주 값진 경험이었습니다. 이번 포스팅에서는 창립자이자 마키나락스 CTO인 심상우(Sangwoo Shim)님의 From Jupyter to MLOps : Jupyter as a key integrator for MLOps의 발표 내용을 전달해 드리고자 합니다.

MLOps 어디까지 왔나?
AI의 응용 분야에 대한 관심이 커지면서 MLOps, 즉 머신러닝 운영시스템에 대한 관심도 급증하고 있습니다. 2015년 NIPS 논문에서는 ML 모델 이외의 운영 시스템 구축의 중요성이 강조되었고, 2022년 이후로는 Data-centric AI와 현재의 ChatGPT의 등장으로 인해 MLOps의 실제적인 이점이 점점 더 인지되고 있습니다.

GPT-4, Data-centric AI, Chat GPT의 등장으로 ML이 연구를 떠나 실질적인 서비스와 연결되고 있으며, MLOps가 ML의 서비스화에 중요한 역할을 수행하고 있음
이와 같은 상황에서 많은 기업들이 MLOps를 도입하고자 하는 관심을 보이고 있지만, 각 기업과 프로젝트 마다 MLOps에 대한 정의와 요구사항이 다양하게 나타난다는 현실적인 어려움들도 존재합니다.
마키나락스는 주로 창업 초기부터 제조 및 에너지 산업을 중심으로 다양한 요구 사항을 가진 프로젝트를 수행해 왔습니다. 이상 탐지, 최적 제어 문제, 조합 최적화 문제, 그리고 예측 문제를 해결해 온 경험을 바탕으로 각각의 요구사항을 통합하는 MLOps 시스템을 구축하여 작년 11월 MLOps 플랫폼 런웨이(Runway)를 출시하였습니다.
성공적인 MLOps 구축의 길 : 확장성 있는 AI 만들기
ML 파이프라인과 다양한 배포 방식의 이점
성공적인 MLOps 구축을 위해서 꼭 필요한 요소는 무엇일까요? ML엔지니어의 역할이 기존에 학습된 모델을 전달하는 것 뿐만 아니라, 새로운 데이터/파라미터 등을 가지고 모델을 자동으로 학습할 수 있는 파이프라인을 제공하는는 데까지 확장되는 것입니다. 하지만 이러한 과정에서 ML엔지니어에게 추가적인 부담이 생기게 되는데요. 아래 도표를 통해 자세히 설명해보겠습니다.

ML모델을 개발하는 일반적인 절차
위의 도식화된 장표는 ML 모델을 개발하는 일반적인 절차라고 볼 수 있습니다. ML엔지니어는 데이터를 준비한 뒤 학습 코드, 모델 구조, 실행 환경, 파라미터를 사용하여 모델을 학습합니다. 이후 테스트 데이터로 성능을 평가하고 실험 내용 기록하며 만족할 만한 성능을 갖춘 학습 모델을 얻을 때까지 이를 반복합니다.
원하는 정도의 성능이 나오면 소프트웨어 엔지니어들은 학습된 모델을 사용하여 제품 또는 서비스를 구현 합니다. 하지만 ML 모델은 시간이 지나면 성능이 떨어지게 되고 새로운 데이터와 파라미터로 업데이트가 필요합니다. 모델을 다시 훈련하기 위해서는 소프트웨어 엔지니어들이 ML엔지니어에게 재학습을 요청합니다. 이러한 과정이 반복되면서 전반적인 모델 개발 과정은 느려지게 됩니다.
MLOps는 이러한 반복적인 과정을 ML 파이프라인과 다양한 배포방식을 통해 간소화합니다.
- ML엔지니어가 모델을 파이프라인으로 구성한다면 모델을 운영하는 운영자는 ML엔지니어의 개입 없이도 새로운 데이터와 새로운 파라미터로 파이프라인을 실행하여 새롭게 학습된 모델을 얻을 수 있습니다.
- 또한 MLOps 환경에서는 서빙을 위한 다양한 모델 배포 방식을 제공하기 때문에 애플리케이션 코드를 변경하지 않고 모델을 업데이트하고, 재학습 시 ML엔지니어를 개입시키지 않을 수 있습니다.
결과론적으로 본다면 MLOps는 ML엔지니어의 부담을 줄여주는 필수적인 역할을 한다고 볼 수 있습니다. 하지만 아이러니하게도 MLOps를 도입하면 ML엔지니어에게 추가적인 태스크가 생기게 됩니다. 왜일까요?
ML엔지니어는 본연의 일에만 집중할 수 있도록
MLOps를 구축하기 위해 ML엔지니어들은 이미 알고 있는 Python과 Machine Learning 라이브러리에 추가로 도커(Docker), 쿠버네티스(Kubernetes)와 같은 컨테이너 관련 기술을 익히고 실행 환경을 다루는 방법을 배워야 합니다. 파이프라인 작성할 수 있는 방법도 필요합니다. 파이프라인 작성을 위해 대부분의 경우 argo workflow, airflow, kubeflow, luigi 등의 새로운 툴들을 학습해야 합니다. 모델만 전달했던 과거와 비교했을 때, ML엔지니어의 역할이 상당히 확장되는 것이죠. 하지만 새로 확장된 역할은 기존 ML엔지니어들이 일하는 방식이나 스킬셋과 잘 맞지 않을 수 있으며, 실질적인 ML프로젝트의 성공을 위해서 ML엔지니어들에게 시스템을 구성하는 일보다는 분석과 모델링에 더 많은 시간을 투자하는 것이 바람직합니다.
그래서 마키나락스는 ML엔지니어들이 오로지 본연의 일에만 집중할 수 있도록 하는 방법에 대해 많은 고민을 하였고 그 결과 ML엔지니어들에게 사랑받는 JupyterLab에 모델 학습 파이프라인을 구성하는 아키텍처를 개발하고 이를 통해 모델 서빙과 운영까지 효율적으로 관리할 수 있는 MLOps 플랫폼을 개발했습니다.
마키나락스가 제안하는 MLOps 방법론
MakinaRocks Runway는 모델 학습 및 서빙 파이프라인을 효과적으로 관리하기 위한 포괄적인 MLOps 솔루션을 제공합니다. 또한 새로운 데이터셋과 파라미터로 모델을 재훈련하는 과정을 단 한 번의 클릭으로 간편하게 수행할 수 있습니다. Runway에서는 모델에 대한 파라미터, 파이프라인 소스 코드, 학습 실행에 사용된 환경을 추적할 수 있기 때문에 사용자는 모델에 대한 HTTP API 및 실시간 추론을 쉽게 구성하고 업데이트할 수 있습니다. 재훈련된 모델로 실행 중인 추론 내에서 ML 모델을 업데이트하는 것도 UI로 간편하게 진행할 수 있습니다.
MLOps가 나아가야하는 길
한국전쟁 중에 미국 전투기 조종사였던 존 보이드는 유명한 보이드의 반복의 법칙을 이렇게 말했습니다.
“반복의 속도가 반복의 질보다 우선한다.”(Speed of iteration beats quality of iteration)
존 보이드가 한국전쟁에서 미군과 소련군의 전투기 공중전을 분석하며 발견한 OODA 루프 전략의 핵심은 적기의 움직임에 반응해 의사결정과 실행의 순환 주기를 더 빠르게 수행하는 쪽이 승리할 가능성이 높다는 것입니다.
데이터사이언스와 머신러닝 모델링 자체가 본질적으로는 반복적인 과정입니다. 불확실성이 높은 상황에서는 반복의 퀄리티 보다는 ‘빠른 반복’이 가장 중요합니다. OODA 루프 전략에 따르면, 문제 정의부터 데이터 수집 및 분석, 머신러닝 모델링, 그리고 OODA 루프와 머신러닝 라이프사이클 생산 환경 배포로 이어지는 머신러닝 라이프사이클을 빠르게 반복하는 전략이 AI 프로젝트의 성공률을 높일 수 있습니다.
MLOps를 활용해 확장성 있는 AI를 만들기 위해서는 많은 병목 현상이 존재하기에 데이터 사이언티스트, ML엔지니어, 백엔드 엔지니어, 인프라 엔지니어, 기술 관리자 등 다양한 역할에서 많은 노력이 필요합니다. 마키나락스는 모델 개발부터 배포 운영에 이르기까지 각각의 이해관계자 사이의 연결을 강화하고, 더 빠른 반복과 더 지속성 있는 MLOps 시스템을 구축에 대한 고민을 앞으로도 Runway에 녹여낼 것입니다.
지금까지 JupyterCon에서 소개한 마키나락스 CTO 심상우 님의 발표 내용을 전해드렸습니다. Jupyter에서 시작해 가장 빠르고 합리적으로 MLOps를 도입할 수 있는 플랫폼, Runway에 대해 자세히 알아보고 싶다면 공식 페이지를 방문하거나 언제든 연락주세요. 스타트업에서부터 자동차, 반도체, 에너지, 배터리, 화학 등 다양한 분야에 AI를 적용해본 마키나락스의 AI 전문가들이 기다리고 있겠습니다.