-
MLOps는 무엇이고 왜 필요한가?MLOps 2022. 8. 22. 23:46반응형
오늘은 데이터이쿠에서 작성한 "Introducing MLOps - MLOps 도입 가이드" 책을 기반으로 MLOps는 무엇이고 왜 필요한지 알아보겠다.
0. Introducing MLOps - MLOps 도입 가이드
해당 책은 Dataiku(데이터이쿠)가 작성한 책이다.
Dataiku는 사람이 아닌 기업으로 MLOps 플랫폼인 Dataiku Data Science Studio를 서비스하고 있다.
해당 책에서는 MLOps를 11개의 챕터를 통해서 소개하며,
각 챕터는 주제와 연관된 부서에서 근무하는 Dataiku 직원들이 작성하였다.
1. MLOps 개념과 필요성
MLOps의 핵심은 머신러닝 모델 생애주기 관리의 표준화 및 간호화다.
그렇다면 왜 MLOps가 필요할까?(왜 머신러닝 모델 생애주기 관리의 표준화와 간소화가 필요할까?)
- 많은 의존성
데이터와 비즈니스 요구사항은 지속적으로 변화한다.
모델은 이러한 지속적인 변화에 적응하며 문제해결을 수행해야 한다. - 동일한 언어를 사용하지 않는 이해관계자들
머신러닝 모델 생애주기(ML 프로젝트)에는 기획자, 분석가, 데이터사이언티스트,IT개발자 등 여러 직무가 함께하지만 소통의 표준이 되어줄 공통적인 도구나 기준이 없다. - 소프트웨어 개발을 모르는 데이터사이언티스트
데이터사이언티스트 등의 직무는 분석과 예측문제 해결에 특화되어 있으나, 운영과 배포 그리고 관리에 능숙하지 않다. 이 모든 업무를 능숙하게 하기는 굉장히 어렵다. - 기업단위의 AI프로젝트
이제 AI(ML/DL 등)은 연구소에서만 사용되는 실험적인 주제가 아니다.
많은 기업들이 AI의 적용 및 배포를 시도하거나 운영 중에 있다.
이는 수 많은 모델들이 운영되며 기업에 있어서 중점적으로 관리해야 하는 대상이 되었다.
2. MLOps의 구성원들
MLOps는 머신러닝의 전반적 Life Cycle에 관여하는 방법론으로써 다양한 직군이 포함된다.
도메인 전문가
- 머신러닝이 적용될 도메인의 지식을 갖춘 사람(00 공장의 품질 검수자 등)
- 머신러닝을 통해 다루어야 하는 비즈니스 문제 정의, KPI 제안, 요구사항의 지속적인 평가 및 검증
데이터 엔지니어
- 필요한 데이터를 수집 및 저장하며 머신러닝에 사용되기 적합하게 변환 및 관리하는 사람
- 데이터 파이프라인 구축 및 관리
데이터 사이언티스트
- 데이터 사이언스 관점에서의 비즈니스 문제 검토
- 제시된 비즈니스 문제를 해결하기 위한 머신러닝 모델 설계 및 개발
소프트웨어 엔지니어
- 개발된 머신러닝 모델을 기존 기업의 시스템에 연동 및 서비스화
- 개발된 머신러닝 모델의 배포 및 운영관리
3. ML Life Cycle 구성 및 MLOps 솔루션(플랫폼)의 기능
해당 파트에서는 ML Life Cycle의 구성 단계들이 어떠한 일을 수행하는지 알아본다
또한 MLOps를 우리가 쉽게 사용 할 수 있는 MLOps 솔루션들이 각 단계에서 어떠한 기능적 이득(표준화,간편화)를 제공할 수 있는지 파악한다
※MLOps 솔루션이 제공 가능한 기능적 이득은 파란색으로 나타내었으며, 글쓴이의 경험과 개인적인 생각이 묻어있다
※MLOps 솔루션이란 MLOps를 적용하기 위해서 직접 개발하였거나 사용으로 나와있는 플랫폼 등을 의마한다
3.1 모델 개발
3.1.1 비즈니스 목표 수립
프로젝트(과졔)를 정의하고 설계하는 단계
ML(또는 AI)를 통해서 해결하고자 하는 문제를 파악하고 목표를 설정한다
도메인적 지식 기반으로 해당 프로젝트를 수행하기 위해서 필요한 데이터가 무엇인지, 해당 데이터가 수집되고 있는지 파악한다
대다수의 MLOps 솔루션은 협업기능을 지원한다. 이를 통해서 다양한 의견들을 기록하고 공유할 수 있다.
또한 사용가능한 도메인지식기반 데이터를 파악하는 일(저장된 데이터를 통해서 해당 과제가 수행 가능한지)을 함에도 있어서 직접 데이터의 메타정보를 파악하는 것이 아닌 MLOps 솔루션을 통해서 쉽게 접근 가능하다
3.1.2 데이터 탐색적 분석(EDA)
Garbage in, garbage out이라는 말이 있다
"쓰레기가 들어가면 쓰레기가 나온다"는 뜻으로 컴퓨터과학 분야에서 논리 프로세스에 쓰레기 데이터가 들어갈 경우 컴퓨터는 이것을 정확한 데이터라고 판단하여 이를 기반으로 쓰레기 출력물을 낸다는 사실을 가리킨다
따라서 우리는 주어진 데이터가 문제해결에 적합한지 통계학적으로 분석하고 추가해야할 부분이 없는지 수정해야할 부분이 없는지 파악해야한다
데이터 연동 : 기존의 Code기반의 SQL문 등을 통한 연동이 아닌 솔루션에서 제공하는 간편화된 연동기능 제공할 수 있다
EDA 수행 : 기존에 Code 기반의 분석수행을 GUI기능 제공등으로 간편화 및 효율화 할 수 있다
공유기능 : 분석의 산출물들을 공유할 수 있는 대시보드 등의 기능을 제공할 수 있다
3.1.3 특성 선택 및 엔지니어링(Feature Selection & Egineering)
분석된 데이터로부터 특징으로 사용할 데이터를 선택하고 ML에 입력가능한 형태로 변환한다
관련 기법으로는 인코딩, 스케일링 등이 있다
특성 선택 및 엔지니어링을 함에 있어서 자주 쓰이는 기능들이 GUI 등을 통해 기본 기능으로 탑제되어 있다
또한 사용자가 수행한 선택 및 엔지니어링에 대해서 기록되어 어떠한 수행을 했었는지 형상관리를 진행해준다
3.1.4 ML 모델 학습,평가,분석
ML 모델을 설계하고 구현하며, 준비된 특징셋으로 학습 시키고 최적화 된다
여러 알고리즘에 대해 비교실험과 같은 알고리즘에서 여러 파라미터에 대한 비교실험 등을 진행한다
학습된 모델에 대해서 성능 평가 및 분석을 진행한다
기존에는 성능만이 평가의 척도였다면 최근에는 해당 결과가 나온 이유를 파악하는 것까지 모델의 평가에 포함된다
모델 구현 및 학습 : 모델 구현 및 학습 과정을 도와준다(GUI 기반의 구현 및 학습 간소화)
성능 비교 : 다양한 알고리즘과 각 알고리즘 버전들의 성능을 비교할 수 있게 도와준다
결과 분석 : 학습된 ML 모델을의 결과를 분석할 수 있게 도와준다(X-AI 기능 제공 등)
3.1.5 재현 가능성
최종적으로 모델이 선택되기까지 수많은 학습과 최적화가 이루어진다
이때 특징 선택, 특징 엔지니어링, 모델 하이퍼파라미터 최적화의 수많은 버전이 발생한다
각 버전들은 다양한 결과를 가질 것이며 수행자는 최종적으로 하나의 버전을 선택하게 된다
이때 각 버전들이 관리되며 재현 가능해야한다
특징 버전 관리 : 모델에 사용된 특징과 특징에 적용된 전처리 기법의 버전을 관리하고 재현 가능하게 도와준다
모델 버전 관리 : 여러번의 모델 학습에 있어서 각 버전의 상태 및 결과를 관리하고 재현 가능하게 도와준다
3.2 모델 배포(서비스화)
모델 배포는 개발된 ML 모델을 실제 적용하기 위해서 서비스화하는 영역으로 MLOps에서 Ops부분에 해당한다
현재 많은 기업들이 ML프로젝트를 개발하는데에는 비교적 수월하게 진행하고 있지만,
배포 및 운영하는데 있어서 많은 난항을 겪고 있다
배포의 어려운점 중 하나는 개발환경과 배포환경의 상이한 경우이다
3.2.1 API를 통한 배포
REST API 등으로 사용자가 요청함에 따라 예측 결과를 제공하는 배포 방식이다
서비스 제공자는 개발서버와의 별도인 운영서버(서비스서버)에서 개발된 모델을 운영하며 API 요청이 올때마다 사용자에게 결과를 반환해준다
장점으로는 서비스 제공자와 End Point와의 호환성에서 이점을 가질 수 있으며, 중앙집중형 서비스로 End Point 컴퓨팅 자원의 성능제약에서 자유롭다
MLOpls 솔루션에서는 완성된 프로젝트로부터 API 서비스 생성 및 운영 과정을 지원하여 DevOps적 개발 난이도를 낮춰준다
3.2.2 모델 직접 배포
개발된 프로젝트를 패키징화하여 End Point에 배포하여 운영하는 방식이다
패키징 방법에 따라서 환경 호환성 문제가 발생 할 수도 있다
End Point에 배포하는 만큼 배포 환경에서의 컴퓨팅 파워가 ML 모델의 연산량을 받쳐주어야 한다
개발 환경과 운영 환경의 네트워크가 분리되어 있다면 해당 방식이 강제되기도 한다
MLOps 솔루션에서는 프로젝트를 패키징하는 과정을 지원하며 일부 솔루션은 전용 패키징을 제공하기도 한다
3.3 모델 운영 및 관리
배포된 모델에 관해서 지속적인 운영 및 관리가 필요하다
(서비스가 지속적으로 운영되고 있는지, 에러가 나지는 않았는지, 예측 성능은 유지되고 있는지 등)
또한 운영 환경에 대한 권한적/자원적 관리도 이루어져야한다
(개인정보에는 보안팀/인사팀만이 접근 권한을 가진다 등)
3.3.1 자원 관리
ML 모델이 예측하고 재학습하는데에는 컴퓨팅 파워가 필요하다.
이때 CPU, GPU, RAM 등이 사용되게 되며, 운영 서버에서는 각 서비스들이 원활히 돌아가게 자원을 분배해야한다
때로는 우선순위 및 권한에 따라서 자원 사용량의 최대치를 제한하기도 한다
이를 위해서 쿠버네티스 등을 사용하여 효과적인 자원 분배를 시도한다
MLOps 솔루션에서는 직/간접적으로 자원할당에 관여하거나 전문 프로그램과의 연동을 지원한다
3.3.2 권한 관리
기업에서 데이터, 프로젝트, 서비스 등에 특정 인원이나 팀만이 열람/수정/사용/관리할 수 있는 권한의 관리가 필요하다
권한을 가지지 않은 사용자가 어떠한 서비스를 수정할 수 있다면, 치명적인 보안이슈가 발생할 것이다
MLOps 솔루션에서는 데이터 연동부터 서비스까지 포함하고 있어 ML Life Cycle에 대한 전반적인 권한관리를 보다 손쉽게 지원한다
3.3.3 모니터링
배포된 ML 모델들은 지속적으로 서비스를 제공해야한다
서비스 중에 아래와 같은 이슈들이 발생할 수 있다
- 서비스 환경 다운 : HW/SW적으로 서비스 환경이 다운된다(정전, 버전 업데이트 후 호환성 문제 발생 등)
- 데이터 드리프트 : 학습시점과 다르게 데이터의 특성이 변화되어 모델의 예측성능이 하락한다
- 서비스 지연 : 컴퓨팅 자원의 부족 등으로 인해서 서비스의 제공에 지연이 발생한다
따라서 배포된 모델의 상태를 지속적으로 모니터링하여 이슈의 발생을 파악해야한다
MLOps 솔루션은 관련 서비스들을 제공하여 배포 모델 모니터링을 지원한다
3.3.4 자동화
한두가지의 프로젝트를 운영중이라면 앞서 나열된 ML Life Cycle의 각 단계들을 운영자가 체크하며 관리할 수 있을 것이다
하지만 프로젝트가 늘어남에 따라서 관리에 드는 노력은 점차 늘어날 것이고, 이는 자동화의 필요성을 나타낸다
MLOps 솔루션은 시간, 이벤트 등의 트리거 기반으로 다양한 자동화 프로세스를 제공하여 ML Life Cycle의 반복 및 자동화를 지원한다
4. 그래서 MLOps란?
글의 초반에서 언급했듯이 MLOps는 ML Life Cycle 관리의 표준화 및 간소화다
MLOps의 구성요소들은 기존에 없던 방법 또는 기능이 아니다
각 분야에서 존재하고 사용되는 여러 방법들을 그대로 말하고 있다
따라서 MLOps는 ML을 통한 문제해결이 정의되고 구현하여 서비스 되기까지 일련의 프로세스를 효과적으로 관리/운영하는 하나의 문화이자 방법론이다
다양한 기업과 연구소에서 AI/ML을 통해서 문제해결을 한다는 뉴스는 정말 많이 나타나고 있다
과연 그중에서 지속적으로 관리되며 서비스되는 모델은 얼마나 있을까?
해당 모델을 개발하기 위해서 쏟아부은 노력에 대해서 그만큼의 결과를 뽑고 있을까?
MLOps는 이러한 의문점을 해소해주고 AI가 정말 우리의 일상으로 자리잡게 해줄 수 있는 방법론이라고 글쓴이는 생각한다
반응형'MLOps' 카테고리의 다른 글
솔루션과 플랫폼의 정의 및 차이 (1) 2023.03.20 OPs의 종류와 정의 - [MLOps, DevOps, AIOps, DataOps, ModelOps] (1) 2022.08.23 - 많은 의존성