오늘날 데이터 사이언스와 AI는 IT 분야뿐 아니라 제조, 구매, 유통, 마케팅, 반도체, 자동차, 식품 등 산업 전 분야에 걸쳐 기업 생존의 필수 요소로 인식되어 경쟁적으로 도입되고 있다. 이러한 데이터 사이언스와 AI 프로젝트의 핵심에 MLOps가 놓여 있다.
이 책은 비즈니스 환경에서 머신러닝 적용 실무를 담당하는 데이터 분석 팀 또는 IT 운영 팀의 관리자들을 대상으로 한다. MLOps가 새로운 영역이라는 점을 감안하여, MLOps 환경을 성공적으로 구축하기 위한 가이드 역할을 제대로 할 수 있도록 머신러닝 전문가 9명(데이터이쿠)이 조직적 이슈부터 기술적 이슈까지 꼼꼼하게 다루었다.
MLOps 핵심 개념: MLOps를 성공적으로 실행하기 위한 원칙과 구성 요소, 이해관계자들의 역할과 책임
MLOps 적용 방법: 머신러닝 모델 생애주기 다섯 단계에 따라 MLOps 프로세스를 도입하는 방법 소개
MLOps 실제 사례: MLOps의 실제 구축 형태와 그 의미를 알 수 있도록 대표적인 비즈니스 활용 사례들 제시
2013년에 설립된 데이터이쿠는 전 세계 450개 이상의 기업이 포괄적인 플랫폼을 이용해 AI와 분석 애플리케이션을 설계·설치·관리할 수 있도록 지원한다. 데이터이쿠는 ‘Everyday AI’를 통해 시장에서 승리할 수 있다는 신념을 바탕으로, 투명하고 반복 가능한 확장성 AI와 분석 프로그램의 구축을 목표로 한다. 다양한 기업이 데이터이쿠의 플랫폼을 활용해 필수 비즈니스 운영을 뒷받침하고 이상 거래 감지, 고객 이탈 방지, 예지 정비, 공급망 최적화 촉진 모델을 활용하여 급변하는 세계에 대응하고 있다. 데이터이쿠 플랫폼은 분석가부터 데이터 과학자까지 모든 이들이 활용할 수 있으며 기업에서는 이 플랫폼을 활용해 기업의 민첩성과 대응 능력을 높일 수 있고 기업 조직 전반에 AI 확대를 추진할 수 있다.
[역자] 동동구
현재 전략 기획 업무를 수행하고 있다. 이전에는 B2C 및 B2B 웹 애플리케이션, Brew/WIPI/SKVM 등의 피처폰 애플리케이션, iOS/안드로이드/윈도우폰/타이젠 애플리케이션 등의 설계 및 개발, 엔지니어 관리 업무를 수행했다. 그 외 다양한 IT 서적에 대한 번역 활동을 하고 있다.
머신러닝 기술은 이론과 학문의 영역에서 ‘현실 세계’의 영역으로 이동하는 전환점에 이르렀다. 전 세계의 모든 서비스와 제품에 머신러닝 기술을 적용해보려는 시도가 이어지고 있다. 이러한 변화가 흥미롭기는 하지만, 머신러닝 모델의 복잡한 특성과 현대적인 조직의 복잡한 구조를 조합하는 대단히 도전적인 과제다.
조직이 머신러닝을 실험실 수준에서 상용 환경으로 확대 적용할 때 겪는 어려움 중 하나는 유지보수다. 기업은 하나의 모델만 다루던 환경에서 수십, 수백 혹은 수천 개의 모델을 다루는 환경으로 어떻게 전환할 수 있을까? 바로 이 지점에서 앞서 언급한 기술적인 복잡성과 비즈니스적 복잡성이 드러나고, MLOps가 필요하다.
MLOps는 기업이 데이터 사이언스와 AI를 더 성공적으로 도입·운영할 수 있는 효과적인 방법론 중 하나다. 이 책을 통해 MLOps 역량을 개발하기 위한 실질적인 통찰과 해결책을 얻길 바란다.
이 책은 크게 3부로 구성되어 있다.
※ 1부_MLOps 개념과 필요성
MLOps라는 주제를 전반적으로 소개한다. MLOps가 어떻게 그리고 어떤 이유에서 원칙이 되었는지, MLOps를 성공적으로 실행하려면 어떤 사람들이 MLOps에 참여해야 하는지, 그리고 어떤 구성 요소가 있는지를 설명하였다.
※ 2부_MLOps 적용 방법
머신러닝 모델 생애주기에 맞춰 모델 개발, 상용화 준비, 상용 환경 배포, 모니터링과 피드백 루프, 모델 거버넌스 등의 순서로 구성하였다. 각 장에서는 일반적인 고려 사항과 함께 MLOps 관련 고려 사항을 다루었다. 특히, 1부 3장에서 가볍게 소개한 주제들을 상세하게 설명한다.
※ 3부_MLOps 실제 사례
오늘날 기업에서 운영하는 MLOps의 모습에 대한 실질적 예시를 제공하여, 독자들이 실제 구축 형태와 그 의미를 이해할 수 있도록 하였다. 등장하는 회사명은 모두 가명이지만, 모든 사례는 실제 기업에서 MLOps와 모델 관리에 대해 겪고 있는 경험을 바탕으로 구성하였다.
추천사
기업 내 다양한 조직에서 폭넓게 활용하기 위해 머신러닝 프로세스에 대한 더 나은 전략과 활성화 방안을 찾고 있다면, 이 책이 정답이다.
_아디 폴락, 마이크로소프트, 수석 소프트웨어 엔지니어
기업 내 모델 배포 프로세스 및 시스템의 구축, 확장, 효율화 및 관리에 대한 탁월한 가이드다.
_파룰 팬디, H2O.ai, 데이터 사이언스 에반젤리스트
최근 다양한 머신러닝/딥러닝 기반의 모델들이 기업과 사회 문제 해결, 성과 향상을 위해 여러 분야에서 활용되고 있다. 이 책은 이러한 모델의 생애주기에 따른 효율적인 운영과 관리를 위해 MLOps의 기본적인 고려 사항과 노하우를 다루고 있다. 데이터 과학자뿐 아니라 데이터와 관련한 다른 직무를 수행하는 사람들도 최근 MLOps의 중요성을 크게 느끼고 있다. 이 책은 MLOps에 대한 기본 지식을 쌓고 다양한 사례를 확인함으로써 효율적인 머신러닝 운영을 돕는 디딤돌이 되어줄 것이다.
_김진엽, Visa, Visa Consulting & Analytics, 이사
머신러닝을 실제 서비스에 효과적으로 도입/운용하는 데 꼭 필요한 MLOps의 개념과 법칙, 역할과 구성 요소를 모두 담고 있다.
머신러닝이 본격적으로 많은 기업에서 활용되기 시작하면서 최근 몇 년 간 MLOps의 수요도 덩달아 높아지고 있다. 머신러닝쪽은 현재 업무와 큰 연관성이 없어 MLOps를 배워야 할 절실한 이유가 있는 것은 아니지만, 올 해 초 쿠버네티스 페이스북 그룹에 조훈님이 올려주신 “2022년 쿠버네티스 표준 아키텍처(아키텍처에 대한 설명은 여기)” 에 한 꼭지로 MLOps도구인 Kubeflow가 올라와 있어 관심을 갖고 있던 분야라 신청해보았다.
MLOps란?
MLOps란 머신러닝과 운영(Machine Learning Operations)의 합성어로, ModelOps와 혼용되는 개념이기도 하다(ModelOps는 머신러닝 뿐만 아니라 다른 종류의 모델도 포함하는 MLOps보다 포괄적 개념이다). MLOps의 핵심은 머신러닝 모델의 생애주기 관리를 표준화하고 간소화하는 것이다. 이 MLOps는 AIOPs와 혼동될 수 있으나 AIOps는 인공지능을 이용하여 운영상의 과제들을 해결하는 데에 초점을 맞추고 있다. 즉, AIOps는 머신러닝을 포함한 인공지능을 ‘수단’으로서 활용하며, MLOps는 ‘머신러닝의 운영 효율화' 자체가 그 목적으로, MLOps 도입 가이드 책에서는 다루지 않는다.
‘MLOps 도입 가이드’ 리뷰
MLOps 도입 가이드는 총 세 개 파트로 나뉘어있다. 가장 먼저 MLOps의 개념과 필요성을 다룬 다음, MLOps를 어떻게 적용하는지에 대해 다루게 된다. 그리고 마지막으로는 마케팅 추천 엔진이나 소비 예측 들 MLOps가 활용되는 실제 사례를 다루고있다.
MLOps 도입 가이드를 읽으며 느낀 점은 MLOps가 단어 뿐만 아니라 업무 내용도 DevOps와 꽤나 유사하다는 점이다. 책의 도입 부분에서 머신러닝의 생애 주기를 다루고 있는데, “비즈니스 목표 정의 → 데이터에 대한 접근, 이해, 정리 → 머신러닝 모델 생성 → 머신러닝 모델 배포 (반복)”이라고 적혀있는 다이어그램을 보고 데이터를 다루고 있다는 점은 상이하지만 머신러닝 모델을 애플리케이션으로 치환하면 목표 정의와 배포, 평가를 반복하는 것이 DevOps와 꽤나 유사하다고 느꼈는데, 바로 다음페이지에서 MLOps 개념의 많은 부분은 DevOps에서 차용한 것이라고 해서 바로 납득했다 ㅎㅎ 다만, 책에 의하면 머신러닝 모델은 일반적인 애플리케이션보다 동적이기 때문에 DevOps 엔지니어를 바로 MLOps에 투입할 수 없다고 설명하고 있다.
이러한 동적이고 복잡도가 높은 MLOps의 업무를 어떻게 적용하는지에 대한 부분은 파트2에서 주로 나오게 되는데, 아직 주니어 데브옵스 엔지니어로서 DevOps업무와 가장 큰 차이가 있는 부분을 고르자면 데이터 거버넌스 파트이다. GDPR이나 GxP 등 개인정보 보호를 포함해 데이터를 다룰 때 각국의 규칙을 파악해 적용해야 한다는 부분이 인상 깊었다.
마지막 파트에서는 MLOps의 실제 사례를 다루고 있는데, 각 사례별로 전체적인 흐름을 제시하고 있다. 이 책의 제목이 “MLOps 도입 가이드"인 만큼, 특정 MLOps 툴이나 스텝별 프로세스를 상세히 알려주는 튜토리얼을 원하는 사람보다는, MLOps 업무의 전체적인 흐름과 MLOps 업무에서 중요한 부분을 파악하고싶은 머신러닝(혹은 MLOps) 엔지니어 직무를 희망하는 사람이나, 사내에서 MLOps 도입 검토를 맡게 된 사람에게 권하고 싶은 책이다.
MLOps는 DevOps와 함께 개념이 회자가 되기 시작한 시기부터 꾸준하게 구현하려고 애써왔다. 어느새 몇백만 원짜리 강의가 나오기도 해서 인공지능의 시대라는 반증 중 하나인가 같은 생각을 하기도 했다. 이 책은 독특하게도 '다타이쿠(데이터이쿠가 아니었다니.)'라는 AI 플랫폼 솔루션 업체가 지었다. 그럼에도 솔루션 언급은 단 한 줄도 없다. 대단하다. 어쨌든 플랫폼을 다루는 기업이 지은 만큼 MLOps의 처음부터 끝까지 모두 꼼꼼이 언급하는 기염을 토했다. 네카라쿠배라면 모를까, 이러기가 쉽지 않다.
Part 1 MLOps 개념과 필요성
이 책은 '선진국'에서 만들었구나 싶었다. AI 윤리에 대해 생각한 적이 있기는 하지만, 이렇게 본격적으로 리스크 관리에 대해 고심했던 적은 없었다. 단순히 MLOps가 이런 거니 만들어 보자며 시작하는 게 아니라 AI가 이런 영향을 끼치니 리스크를 평가하고 경감하며 책임주체를 따져 보자는 이야기로 시작하는 게 신기했다. 그리고 MLOps를 둘러싼 이해관계자를 나열하고 설명한 후에나 머신러닝의 기능 요소를 언급하기 시작한다. 이 책은 데이터이쿠 사의 여러 사람이 글을 나눠 썼는데, Part 1의 3장은 이 책 전체를 요약한 듯한 내용이다. 머신러닝 입문부터 거버넌스까지 주욱 언급했다.
Part 2 MLOps 적용 방법
드디어 상세한 이야기가 나온다. 터미널에서 명령어 입력하는 수준의 이야기는 아니다. 그건 MLOps를 구성하는 각종 솔루션 매뉴얼에서 찾아야 할 테고, 이 책은 무슨 일을 어떻게 하기 위해 어떤 기능을 구현해야 한다는 이야기를 한다. Kubeflow나 MLflow를 언급하는 일은 없다. 물론 Dataiku도 언급하지 않는다. 그래도 MLOps 씩이나 하겠다는 엔지니어라면 각 기능을 구현하기 위해 어떤 솔루션을 도입해야 할지 어렵지 않게 유추할 수 있다. 모델 개발, 상용 서비스 배포, 모니터링과 피드백 루프에 거버넌스까지의 개념은 독학으로 파악하기가 힘드므로 이 책의 미덕은 이들 생명주기를 낱낱이 언급하는 데에 있다. 이 책의 독자는 이 책을 출발점으로 삼아 계속 정진할 수 있다. 달리 말해서는 갈 길이 멀다.
Part 3 MLOps 실제 사례
특정 조직만의 사례는 아니지만 여러 사례를 조합하여 여러 가지 도움말을 엮어 주었다. 금융, 유통, 제조 분야 실제 현장에서는 대략 이러한 어려움이 있을 것이고 이런 방향으로 헤쳐 나가보라는 이야기해 준다. 이렇게 간접적으로만 접해도 커뮤니케이션 관련한 수고가 많았겠구나 싶다. 그래도 헤쳐 나가는 데에 재미와 보람이 있었기를 앞으로도 있기를 바란다.
ML 엔지니어와 관리자에게 도움이 많이 되는 책이다. 분석가라면 입문 단계에 있는 사람에게는 저게 다 뭔가 싶은 얘기가 많을 텐데 시니어나 데이터 과학자 지망자라면 직접 할 일은 없겠지만 이해하는 게 좋은 내용이 많다. 어디까지나 도입 가이드로서 출발할 수 있게 한다는 취지이기에 책은 얇은 편이라 두려워하지 않아도 된다.
최근 몇년간 인공지능에 대한 관심이 분야와 관계없이 폭발적으로 증가하며, 많은 사람들의 관심은 그 개념과 방법을 빠르게 익혀서 가지고있는 데이터에 적용하는 것이었다. 일반인들은 주로 본인이 가진 데이터가 없기 때문에 Kaggle 등과 같은 경진대회를 통해 이론으로 공부한 머신러닝 모델을 적용하기 위한 현상금 사냥꾼이 된다. 대학 및 연구소 등의 학계에서는 자체적으로 보유한 자료에 최신 딥러닝 기법을 적용하기 위한 경향이 최근 몇년간 주류가 되어왔다. 마지막으로 기업의 경우 현업에 투입할 수 있는 인공지능 프레임워크를 디자인하며, 이를 통해 어떻게 수익을 증대시키고 공정의 자동화를 할 수 있을지를 고민한다. 앞서 말한 세 가지 경우 중 일반인->학계->기업으로 갈수록 인공지능을 바라보는 시각이 다를 것이다. 일반인의 경우 주로 미션을 받기 때문에 전체적인 계획 수립 및 목적 설정에 대한 과정이 생략된다. 그래서 데이터 생성 및 정제에 대한 과정을 생략한 채 온전히 데이터 분석 및 모델 자체에만 집중하게 되며, Kaggle을 비롯한 많은 경진대회에서는 소위 ‘수단과 방법을 가리지 않고’ 성능을 높이는 것이 곧 목표이자 능력이다. 학계에서는 주로 연구 계획 수립 및 자료 수집 과정을 통해 독자적인 프로젝트를 수행하며, 논문 출판이 최종 목표이다. 연구 디자인 및 자료 수집을 직접 하게 되므로 경진대회에 비해 처음부터 끝까지 독자적인 단계가 이뤄진다. 하지만 여전히 전체 파이프라인의 효율성 및 피드백 등에 대해서는 거의 고려하지 않은 채, 현업용 프로젝트가 아니라면 대개는 논문이 출판되면 연구도 종료된다. 따라서 위 둘의 경우에는 머신러닝 모델 개발 자체에 초점이 맞춰져있는 반면, 기업의 경우는 완전히 접근이 다르다. 기업의 목적은 이윤 추구이며, 이를 위해서 모델 자체보다는 전체적인 파이프라인을 더욱 중요시하게 된다. 즉 일반인과 학계처럼 ‘모델링 자체를 위한 모델링’이 아닌, 효율적인 개발 및 유지 비용을 중시하게 된다. 자료 수집, 모델 학습, 결과 예측, 분석 및 개선으로 이루어진 머신러닝 프레임워크 전체에 대한 고민이 필요하며, 이를 나타내는 것이 바로 MLOps (operation)이다.
박사과정생이 MLOps에 관심을 가지게 된 이유
위에서 서술했듯이 MLOps는 주로 현업 서비스를 하는 기업 및 기관에서 관심을 가질 주제이다. 기관도 아니고 나처럼 대학원에서 공부하는 사람들은 전체 프레임워크에 대한 효율성 등을 고려할 필요성이 적으며, 현실적으로 그 시간에 논문 출판에 집중하는 것이 더욱 좋은 선택일 것이다. 하지만 내가 MLOps에 관심을 가지게 된 이유는, 학계에서 연구 차원에서 수행하는 프로젝트들이 매번 단발성으로 끝나는데에 아쉬움이 남기 때문이었다. 졸업 후에는 연구 차원이 아닌 실제 쓸모 있게 사용될 제품 및 서비스를 만들고 싶다는 생각이 강하게 들곤 했는데, 이를 위해서 MLOps에 대한 고민을 자연스레 하게 되었다. 대학원에서 연구를 할때마다 “내가 만약 독자적으로 활동할 수 있다면, 이 결과를 어떻게 배포하여 많은 사람들이 사용하게 할 수 있을까?”라는 생각이 들었다. 이 질문에는 사람마다 여러가지 세부 질문을 포함할 수 있으며, 나의 경우는 아래와 같은 질문을 던졌다.
1) 이 결과가 사람들에게 왜 필요한지, 기대 효과는 무엇인지 (제품 계획)
2) 개발된 모델은 적정 수준 이상의 성능을 가지는지 (머신러닝 모델 개발)
3) 사용자의 요청에 따라 원하는 정보만을 빠르게 처리하여 제공할 수 있는지 (데이터 쿼리)
4) 시간이 지남에 따라 자동 또는 수동으로 최신 자료를 반영할 수 있는지 (자료 수집)
5) 자동화된 서비스에 장애가 될만한 요소가 있는지 (장애 처리)
6) 자체적인 피드백을 통해 성능 개선을 할 수 있는지 (모델 개선)
7) 사용자의 피드백을 어떻게 효과적으로 수집할 것인지 (사용자 경험 개선) 8) 서비스를 지속함에 따라 전체적인 유지 비용, 컴퓨팅 파워, 처리 시간 등은 어떤 형태로 증가할 것인지 (효율화)
9) 추후 다른 모델을 개발한다면 이 모델과 연계하여 시너지를 낼 수 있는지 (확장성)
10) 마지막으로 이를 통해 어떻게 수익을 낼 수 있으며 그것은 선형적인지 비선형적인지 (수익성)
졸업 후에 학계에 남을 수도 있지만 다른 분야에서 일하는 것도 흥미로워 보이기 때문에 위와 같이 학계에서 필요한 범위를 벗어난 고민을 하는 것을 즐겨왔다. 그리고 최근 들어서 이에 대한 분야가 MLOps라는 것을 알게 되었고, 마침 한빛미디어를 통해 감사하게도 이 책을 접하게 되었다.
책에 대한 후기
이 책은 제목 그대로 MLOps에 대한 전체적인 소개를 다루고있다. 대학 과목으로 치면 MLOps 개론정도라 하는 것이 적당해보인다. 나는 머신러닝 모델 개발에는 어느정도 경험이 있지만, MLOps에 대한 사전 지식은 전혀 없었다. 책의 1부는 MLOps의 개념과 필요성, 2부는 적용 방법, 3부에서는 실제 사례를 간단히 소개한다. MLOps의 필요성, 이해관계자, 보안, 거버넌스, 책임, 배포, 모니터링 등 MLOps에 관련된 내용들을 포괄적으로 다룬다. 개인적으로 특별히 흥미롭게 읽었던 챕터들은 다음과 같다.
챕터 2) MLOps 이해관계자들 - 이는 MLOps를 위해 투입되는 여러 분야의 인력들이 각자의 관점에서 어떻게 전체적인 틀을 바라보는지를 서술한다. 조직원들 모두가 다른 사람들의 입장을 이해한다면 보다 완성도 있는 프레임워크를 구축하는데 큰 도움이 될 것이다.
챕터 5-6) 상용화 준비, 상용 배포: 여기서는 연구 단계에서 수행한 모델을 어떻게 상용화할지에 대한 고민을 다룬다. 연구 차원에서는 고려하지 않았던 보안, 오작동에 대한 리스크 고려, 배포 전략 등에 대한 고민을 독자 스스로가 하게 돕는다.
챕터 8) 모델 거버넌스
이미 여러 기업에서는 MLOps에 대한 지식이나 경험이 있는 사람들을 매우 공격적으로 채용하고 있다. 아직은 MLOps라는 개념이 점차 자리를 잡아가는 시기로 보이며, 따라서 이에 대한 지식을 습득하고 많은 고찰을 해본 사람은 단순히 모델 개발 경험만 한 사람에 비해 큰 우위를 가질 것으로 보인다. 따라서 구직자들에게는 현재 머신러닝의 트렌드를 따라가기 위한 필수 항목으로 보인다. 전체적인 설계를 하는 책임급 사람들은 말할 것도 없이 이에 대한 심도있는 개념 탑재 및 경험이 훨씬 중요하다고 생각한다. 따라서 머신러닝 관련 기업에서 일하고자 하는, 그리고 지금 일하고 있는 모든 이들에게 이 책을 추천한다.
인공지능 구인 관련 글을 볼 때, MLOps 포지션이 있는 것을 자주 보아왔다. MLOps는 2019년 부터 부각되어온 용어로, 기업의 성공적인 데이터 사이언스 프로젝트에서 필수 요소이며, 조직과 비즈니스 리더들이 장기적 가치를 창출하고 데이터 사이언스, 머신러닝 및 AI를 주도할 때 리스크를 제거하는데 도움이 되는 프로세스이다.
책에서 제시하는 머신러닝 모델 생애주기로는 첫 번째, 비즈니스 목표 정의. 두 번째, 데이터에 대한 접근, 이해, 정리. 세 번째 머신러닝 모델 생성. 네 번째 머신러닝 모델 배포 그리고 반복으로 구성되어있다.
어떻게 보면 쉬워 보이는 프로세스 관리에 왜 애를 먹을까? 어느 정도 규모가 있는 머신러닝 모델 생애주기를 관리하기 어렵게 만드는 세 가지 요소로 다음과 같다.
1. 많은 의존성
비즈니스 요구사항과 데이터는 꾸준히 변화하고 있으며, 모델의 결과를 비즈니스의 목적과 부합하여 일정이상의 성능과 목표를 꾸준히 달성하도록 해야함.
2. 동일한 언어를 사용하지 않는 이해관계자들
머신러닝 모델 생애주기에는 PM, 데이터 사이언티스트, IT 개발 및 운영 팀 등 전반적인 팀들이 관련되어 있지만, 대부분의 경우 상호 소통의 어려움과 기반 기술 공유가 이루어지지 않음.
3. 소프트웨어 개발을 모르는 데이터 과학자
책에서 제시하는 데이터 과학자는 모델 구축 혹은 평가에 특화된 전문적 지식과 경력을 가지고 있으며, 애플리케이션 개발에 능숙하지 않음. 과연 위와 같은 문제점을 해소하기 위해서는 책에서 어떤 방법들을 제시했을까? 간단하게 추려보면 다음과 같다.
1. MLOps의 이해관계자들
2. MLOps의 핵심기능
3. ML 모델 개발
4. 상용화 준비
5. 상용 배포
6. 모니터링과 피드백 루프
7. 실제 사례
본 서에서는 구현에 관한 내용은 크게 없으나, MLOps 관련 전체적인 흐름을 파악하기에 탁월한 책이라고 생각이 든다. MLOps의 전체적인 맥락 파악과 동시에, 그 맥락에서 관심있는 파트를 선정하여 좀 더 디테일하게 공부해 낙나다면 충분히 실무에서 활용이 가능할 것으로 판단된다. 본 서를 읽으면서 추천해주고 싶은 대상은 다음과 같다.
- MLOps 관련 개발자
=> 현재 맡고 있는 포지션을 제하고, 전체적인 MLOps의 배경과 맥락을 파악하여 업무 지식 확장 및 소통에 도움이 될 것으로 보임.
- ML 관련 서비스 및 SI PM
=> ML 모델 개발과 배포 그리고 유지관리까지의 프로세스를 파악하기에 맞춤인 책이라고 판단함. 요구사항 분석 및 관리 시, ML 업무 프로세스 상 현재 진행 중인 과업의 위치를 파악 할 수 있게 도움을 줄 것으로 보임.
- ML 연구자 및 데이터 사이언티스트
=> 데이터 분석과 ML모델 개발 및 튜닝에 앞서, 어떠한 과정을 통해 현재 업무를 진행하게 되었는지에 대한 히스토리 파악과 더불어 배포와 유지관리를 고려하며 연구를 수행 할 수 있는 능력을 얻을 수 있을 것으로 보임.
- ML 분야 기획자 및 창업을 고민하는 자
=> ML 실사례와 함께 본 서에서 같이 제공되는 기법을 활용하여 다양한 바리에이션이 가능할 것으로 판단됨. 개인적으로 현재 뿐만 아니라 먼 미래에도 MLOps 산업의 먹거리가 풍부할 것으로 판단됨.
2. MLOps 도입 가이드
본 서 MLOps 도입 가이드는 'MLOps 개념과 필요성', 'MLOps 적용 방법', 'MLOps 실제 사례' 총 3개의 파트로 구성되어있다. MLOps 적용 방법 파트를 집중하여 읽었으며, 그 중 본인에게 제일 중요하다고 생각하는 '모델 개발' 부분을 정리함으로써 글을 마무리 짓겠다.
- 머신러닝 모델 구축의 필수 구성 요소
기초적인 내용으로 머신러닝 모델 구축과 검증에 관한 요소들을 정리하였다. 구체적인 설명이 군더더기 없이 깔끔해서 심플하지만 강력한 책이구나 라는 생각이 들었다. 개인적인 경험과 덧 붙여 정리한 것은 다음과 같다.
- 데이터 탐색
아무리 적합한 알고리즘을 사용하더라도 모델의 Output(성능)은 Input인 Data에 달려 있다. 따라서, 모델을 학습시키기 위해선 사전적으로 데이터 형태를 확인해야 한다. 아울러, 데이터의 불완전성, 부정확성, 불일치 등으로 인하여 데이터의 일부만을 사용 할 수도 있다. 다음은 데이터 탐색 과정의 예시이다.
- 수집된 데이터의 현황(누락, Outlier 등) 파악
- 데이터 분포(정규 분포, 의도를 담아 학습시키기 위한 분포 등) 파악
- 데이터 전처리(정리, 채움, 변경, 필터링, 자르기, 표본 추출 등)
- 서로 다른 열 간 상관관계 확인 및 분포 곡선 보간
- 타 연구결과의 데이터 및 모델 비교
개인적으로 ML 모델을 생성하기에 사전적으로 확실히 해야하는 부분이라고 생각한다. 데이터 탐색 과정에서 결정된 의사결정은 되도록이면 바뀌지 않고, 확실히 정의해야한다.
- 특성 엔지니어링 및 특성 선택
특성(Feautre)은 데이터가 모델에 표현되는 방식으로, 모델 자체로는 추론할 수 없는 것들에 대한 정보를 전달한다. 특성 엔지니어링 방법의 예시는 다음과 같다.
대게는 ML 프로젝트를 수행할 때 Feautre가 정의되어있는 경우가 잦다. 하지만, 그 값을 그대로 사용하기 애매하거나 보조지표가 필요한 경우 특성 엔지니어링을 수행하여 데이터 셋을 보강하게 된다.
3. 결론
본 서 'MLOps 도입 가이드'를 읽으면서 ML 프로젝트를 수행하기 위한 전반적인 프로세스에 대해 공부하는 시간을 가졌다. 측량, 의료, 공개 데이터 등 다양한 데이터를 접하면서 언제나 느낀 것은 훈련 대상 데이터의 정의이다. 다행히도 다양한 분야의 전문가들과 소통을 통해 Feature를 정의하고 모델을 구현하였으나, 언제나 이 부분에는 갈증이 있다. 본 서를 통해 MLOps의 전반적인 지식과 함께 실제 사례를 통해 어떤 식으로 접근하는 것이 효율적인지에 대해 생각하는 시간을 가졌다.
MLOps는 요즘 핫한 Machine Learning에서의 ML과 DevOps라는 단어를 합친 말이다. 여기서 DevOps는 조금 학교보다는 기업에서 주로 사용하는 단어라 모르는 사람이 꽤 많을 것 같다. 사실 나도 워낙 기업과 멀다 보니 어렴풋이 알고 있었는데, 이 책을 보면서 제대로 알게 되었다. 데브옵스는 이제 기업에서 효율적으로 소프트웨어를 개발(DEVelopment) 하고 운영 (OPerationS) 하는 방법에 대한 전략이다. 소프트웨어 기업은 특성상 아주 완벽한 소프트웨어를 만들고 나서 출시하기보다는 어느 정도 완성된 후에는 출시하고 기능을 개선한다. 여기서 기능을 개선하는 것이 아주 쉬운 것은 아닌 것이 기존에 쓰던 사람들이 불편함을 겪지 않으면서 정말 기능이 개선되어야 하기 때문이다. 어떤 것까지 개발하고 배포할지, 어느 주기로 배포할지, 기존 케이스들에 대해서는 여전히 잘 작동하는지, 사람들이 바뀐 기능을 만족하고 있는지 등 여러 가지를 고민해야 한다. 이러한 것을 개발자가 개발만 하고 운영하는 사람이 배포만 하는, 이런 분할된 방식이 비효율적이라고 느껴 이 둘을 함께 고민하는 데브옵스라는 개념이 나왔다.
MLOps는 이제 특히나 어떻게 머신 러닝 모델을 개발하고 (+ 어떻게 학습할지) 이를 배포할지에 대한 내용이다. 그런데 머신 러닝 자체가 현업에 사용된지 사실 그렇게 오래된 것은 아니라서 고민할 것이 다양하게 많다. 최근에는 크고 작은 기업들에서 머신 러닝을 활용한 상품?을 많이 만들고 있고 이를 위한 환경이 많이 구축되고 있는 것 같다. 당장 생각나는 것만 하더라도
데이터가 새로 들어오는 상황에서 새로 학습하는 것이 아니라 기존 모델을 개선시킬 수 있는지
어떤 모델을 활용할지; 아키텍처, 파라미터의 수, 등등
다양한 파라미터로 모델을 학습할텐데, 어떻게 효율적으로 컴퓨팅 자원을 사용할 수 있을지
학습된 모델이 편향되어있지는 않은지
등등 학습, 배포, 모니터링 등 다양한 분야를 모두 고려해야 한다.
Introducing MLOps (MLOps 도입 가이드) 책은 다음과 같이 생겼다.
목차를 보면 다음과 같다. 크게 3개의 챕터로 나누어져 있다.
MLOps 개념과 필요성
MLOps 적용 방법
MLOps 실제 사례
흐름이 따라가기 어렵지 않았다. MLOps라는 개념은 나름 핫하고 이 분야에 취업을 하려고 하면 충분히 물어볼 수 있는 개념인 것 같아서 한 번 읽어보는 것이 좋을 것 같다. 특히, MLOps를 가장 잘 활용하고 이 분야를 키우고 있는 곳은 구글이고 이외에도 아마존, 페이스북 등 다양한 대기업들이 있는데 이곳에 들어가려면 MLOps를 모르면 안 될 것 같다. 나도 지금은 급하지 않지만 나중에 머신 러닝 쪽으로 해서 회사에 들어가 보고 싶은 생각은 있는데, 이런 실무적인 부분도 공부해야 될 것 같다.
내용을 보면 머신 러닝을 활용하지 않는 기존의 방법론도 다루면서 최근 딥러닝에 대한 내용도 다룬다. 또한, 최근 이슈인 딥러닝에서의 윤리도 다룬다. 이전에 마이크로소프트에서 만든 채팅 봇이 비윤리적인 얘기들을 하다가 논란이 된 적도 있고 우리나라에서 이루다와 같은 것도 AI를 잘 사용하지 못해서 크게 논란이 되었다. 이런 사례들을 보면 기업에서 AI를 활용할 때 어느 정도 잘 확인하고 배포해야 할 것인데, 당연히 문제가 없는지 확인하기가 어렵기 때문에 유수의 기업들에서 문제가 생겼을 것이다. 최근 많은 과학자들이 이에 대해 분석을 하고 있고 이 책에서는 어느 정도 그 부분을 다루고 있는 것 같다.
"MLOps 활용 가이드"라는 책은 최근 현업에서 꽤 핫한 주제인 MLOps라는 것을 자세하게 설명한다. 아마 이 분야로 현업에서 일하고자 한다면 꼭 읽어봐야 할 것 같다.
한줄평: 머신러닝 모델을 배포하는 것은, 잘 돌아가는 걸 확인하는 하나의 단계일 뿐, 그 외 해야할 일은 많다.
더 이상 선택요소가 아니게 된 MLOps
머신러닝이라는 기술에 대한 고도화가 이루어져 다양한 분야에서 활용되고 있는 현 시점에서, MLOps 라는 방법론 한번 슬쩍 접하는 것이 아닌 필수 사항이 되어가고 있다. MLOps는 현재 명확하게 정립되지 않아 논문이 아닌 수많은 블로그 포스트들로 다루어지고 있고, 또 수많은 도구들이 나타나 서로가 편리하다고 주장을 하고 있는 상황이다. 요즘 들어 나오고 있는 MLOps 관련 강의들 또한 이러한 도구들의 사용법에 대해 다루는 경우를 많이 볼 수가 있다.
하지만 누구나 현재 가지고 있는 자원과 또는 지원 받을 수 있는 자원이 다르고, 다룰 수 있는 능력의 정도가 다르기에, 더더욱 개념부터 더 확실하게 숙지하고 현재 나의 일에 어떻게 적용시킬 수 있을지 고민해보는 과정이 필요하다고 느끼고 있다.
한빛미디어의 “나는 리뷰어다” 활동을 통해 제공받은 “MLOps 도입가이드”의 원제는 “Introducing MLOps”으로, 제목 그대로 MLOps에 대한 전반적인 내용을 다루고 있다. 이 책에서는 MLOps에 대한 전반적인 내용을 폭 넓게 다루며, 실제 구현보다는 각 개념과 필요성에 대한 설명에 초점을 맞추고 있다.
MLOps 의 수많은 이해관계자들의 역할
MLOps의 개념 및 이해관계자들
MLOps의 핵심 기능과 필요성
MLOps 적용 방법
모델 개발
상용화 준비
상용 배포
모니터링
반복
거버넌스
적용 사례
한가지 눈에 띄는 점이라면, 책의 저자가 미국과 프랑스에 오피스를 두고 있는 AI/ML 전문 기업인 데이터이쿠(Dataiku) 라는 점이다. 데이터이쿠에서 일하고 있는 9명의 임원과 스태프들이 이 책의 각 부분을 맡아 집필했는데, 1~3명의 소수가 책을 쓰는 것과는 확연히 차이점을 보이고 있다. 그만큼 이 책은 한 기업에 속한 여러 전문가가 각자의 전문성을 발휘할 수 있는 주제를 맡았다는 점에서, 인상적이다.
MLOps는 리스크 관리
이 포스트에서 이 책이 다루는 MLOps에 대한 내용을 전부 다 다룰 수는 없고, 또한 시중의 다른 자료들과 겹치는 부분도 많다. 하지만 가장 인상적인 부분을 하나 꼽아보자면, 리스크를 줄이고자 하는 차원에서의 MLOps의 필요성에 대해서 서술한 부분이다.
머신러닝 모델의 리스크를 측정하기 위한 리스크 매트릭스
“결국, 모델을 상용 환경에 배포하는 작업은 머신러닝 모델 생애주기의 최종 단게는 아니다. 단지 성능과 정상 작동 여부를 확인하는 시작점이 될 뿐이다. (중략) 더 많은 머신러닝 모델을 상용 환경에 배포할수록, MLOps는 비즈니스에 치명적일 수 있는 잠재적 리스크를 줄이는데 더 필수적인 요소가 된다."
머신러닝 모델은 운용하는 과정에서 다양한 리스크를 맞이할 수 있다. 앞서 언급했듯이, 어느 조직이나 활용 가능한 리소스가, 리소스를 갖추기 위한 지원의 정도가 다르다. 따라서 이 책에서 제시한 리스크 매트릭스를 활용하여, 머신러닝 모델의 리스크를 정량적으로 판단하고, 이에 따라 MLOps의 적용 범위와 정도를 정할 수 있을 것이라 기대된다. 만일 리스크가 크지 않다면 MLOps 시스템을 구축하는 과정에서 우선순위가 높지 않을 수 있고, 만일 리스크가 크지만, 이에 대비할 수 있는 리소스가 갖춰지지 않았다면 이에 대비하는 작업을 우선적으로 시행할 수 있을 것이다.
마무리하며
아무 것도 갖춰지지 않은 상태에서 MLOps 도입 가이드 는 꽤 괜찮은 길잡이가 될 수 있다. 책의 두께도 두껍지 않아 빠르게 읽고, 필요한 부분을 참고할 수도 있을 것으로 보인다. 다만, 앞서 말한 바와 같이 MLOps에는 많은 이해관계자가 필요하고, 각자 가지고 있는 환경과 리소스가 다르다. 따라서 한번에 모든 것을 갖추기보다, 핵심적으로 필요한 부분과 급한 부분을 취사 선택하는 것은 독자의 몫(= 나의 몫)이다.
최근 머신러닝 Machine Learning, 인공지능 Artificial Intelligence 같은 기술들이
인터넷/소프트웨어 업계의 화두가 되면서
새롭게 등장한 단어가 바로 MLOps 입니다.
ML은 예상하셨다시피 Machine Learning의 ML입니다.
기계학습을 하고 인공지능을 하는데 왜 MLOps라는게 필요한걸까요?
결국 ML도 DevOps 과정의 일부분일것 같은데
괜히 또 마케팅 용어로 만든 것은 아닐까요?
개인적으로 이 말은 반은 맞고 반은 맞지 않다고 생각합니다.
DevOps는 워낙 많은 것을 포괄할 수 있는 단어이고
소프트웨어 생애주기 자체에 대입할 수 있는 개념이기 때문에
ML의 산출물과 과정이 개발 산출물의 일종이라 보면
MLOps는 DevOps의 부분 집합이긴 합니다.
하지만, 책을 읽으면서 MLOps는 따로 둘 필요가 있겠구나라는 생각이 들었습니다.
ML은 데이터에 대한 이야기이고 그 데이터를 어떻게 다루고 모델링하여
필요한 결과물을 추론하는데 활용할 수 있도록 할 것인가는
분명 MLOps라는 단어로 묶어야 할 만큼 크고 복잡하면서도
고민할 것이 많은 주제라는 생각이 들었기 때문입니다.
MLOps가 왜 필요한가?
MLOps의 중심에는 데이터가 있습니다.
지난 몇 년동안 가장 화두가 된 것이 데이터인 만큼
데이터와 관련된 많은 논란이 있어왔고
논란의 중심에는 정보보호와 프라이버시 Privacy가 위치해 있습니다.
이로 인해 많은 기업들은 데이터 거버넌스 Governance를 신경써야 하는 상황이고
머신러닝 역시 이러한 환경에서 예외가 될 수 없습니다.
많은 분들이 기억하실 머신러닝 관련 사건들이 여럿 있습니다.
잘못된 머신러닝으로 인해 편향된 사고를 보여줬던 챗봇 사건이라던가
적절한 데이터 활용에 대한 동의, 허가, 보호조치 없이
기계학습의 학습 원천 데이터로 개인 정보가 담긴 데이터가 활용되었던 사건들은
데이터에 대한 보호, 프라이버시에 대한 많은 우려를 낳았었습니다.
MLOps가 단순히 기술적인 주제가 될 수 없는 이유가 여기 있습니다.
데이터를 다루는 모든 과정에 있어서 지켜야 할 많은 규정들
그리고 그 규정을 지키지 못함으로 인해 발생할 수 있는 피해와 문제들.
이러한 거버넌스를 일련의 반복적인 데이터 수집, 훈련, 모델 개발, 적용 단계에서
통제되고 적용될 수 있도록 하는 것이 MLOps의 기저에 깔려있습니다.
MLOps의 실전 사례
책의 마지막 장에서는 세가지 사례를 통해
실제 MLOps가 어떤 식으로 구성 및 동작되어야 하고
활용 시나리오에 따라 어떤 부분들을 신경써야 하는지를 설명해 주고 있습니다.
소비자의 신용에 대한 MLOps 사례와
추천 엔진을 만들기 위한 마케팅 엔진,
그리고 기업의 영리 활동을 돕기 위한 소비 예측 사례까지
현실에서 담당하고 있을 수 있는 업무들을 예시로 들고 있어
MLOps의 실전 사례에 대한 감을 잡아볼 수 있습니다.
어느 순간 뒤돌아보니 ML이 온 사방에 깔렸습니다.
간단한 로그 분석에서부터 영업용 인사이트의 추출까지
ML이 활약하고 있는 영역은 계속 넓어지고 있습니다.
널리 사용되는 ML에 대한 개발, 운영 전략을 고민하고 있다면
MLOps에 대해 살펴볼 필요가 있습니다.
MLOps를 도입하고 싶어지는 책!
한빛미디어에서 출간된 “MLOps 도입 가이드”라는 책은 기업이 MLOps를 도입하기 위한 머신러닝 모델 배포 프로세스, 시스템 구축, 확장, 효율화 및 관리에 대한 방법들을 소개한다. 참고로 MLOps는 Mahchine Learning Operations(머신러닝 운영)을 뜻한다. 이러한 내용들은 데이터 사이언티스트, 머신러닝 엔지니어 등 AI 엔지니어링 업무를 다루는 여러 사람들에 의해 작성되었기 때문에 MLOps를 도입하는데 있어서 발생하는 “조직적 이슈”와 “기술적 이슈”를 모두 다룰 수 있다. 책은 크게 3부로 구성되며, MLOps 개념과 필요성 / MLOps 적용 방법 / MLOps 실제 사례로 구성되어있다.
이 책은 MLOps를 도입하기 위한 기술적 내용과, 조직적 이슈 내용들을 모두 담고 있으며, 머신러닝 모델을 개발하고자 하는 엔지니어들도 전체적인 프로세스에 대한 감을 잡기 위해 완독하면 좋을 책이다. 아마 이 책을 읽고나면 머신러닝 모델을 개발하는 사람들은 분명 MLOps를 도입하고 싶어질 것이며, MLOps를 도입하려는 기업 및 관리자에게 길잡이가 될 수 있는 책이다.