본문 바로가기
CS/MachineLearning

MLOps 도입 가이드

by Diligejy 2022. 6. 17.

p.23

머신러닝 모델 생애주기를 규모있게 관리하기 어려운 세 가지 주요 이유는 다음과 같다.

 

- 많은 의존성 : 데이터는 지속적으로 변화하고, 비즈니스 요구사항도 변경된다. 모델의 결과를 지속적으로 비즈니스에 반영하여, 상용 배포한 모델과 실제 데이터가 요구사항에 부합하도록 하면서 동시에 원래의 문제를 해결하거나 원래의 목표를 달성하도록 해야 한다.

 

- 동일한 언어를 사용하지 않는 이해관계자들 : 머신러닝 모델 생애주기에는 사업 담당자, 데이터 과학자, IT 개발/운영 팀이 모두 관련되어 있지만, 대부분의 경우 상호 소통의 기준이 될 수 있는 동일한 도구 사용이나 기반 기술 공유가 이루어지지 않는다.

 

- 소프트웨어 개발을 모르는 데이터 과학자 : 대부분의 데이터 과학자는 모델 구축 혹은 평가에 특화된 전문적 지식과 경력을 가지고 있으며, 애플리케이션 작성에는 능숙하지 않다. 시간이 흐름에 따라 일부 데이터 과학자는 모델 배포나 운영에 능숙해지기도 하지만, 상당수 데이터 과학자들은 여러 가지 역할을 맡게 되면 그 어떤 것도 완전하게 수행하지 못한다. 이렇게 제한된 업무만 수행하는 데이터 과학자들은 운영해야 하는 모델이 늘어날수록 더 심각한 문제에 봉착한다. 그렇다고 데이터 팀의 구성원을 순환 배치하면 문제는 더 복잡해져서, 어느 순간 데이터 과학자들은 자신이 만들지 않은 모델을 관리해야 하는 상황에 직면하게 된다.

 

p.24~25

MLOps라는 이름과 개념이 익숙하다고 느낄 수 있는데, 그 이유는 MLOps의 많은 부분을 DevOps의 개념에서 차용했기 때문이다. DevOps는 소프트웨어 변경 및 갱신 작업을 간소화하는 과정이기도 하다. MLOps와 DevOps에는 상당한 공통점이 있는데, 예를 들면 다음과 같다.

 

- 팀들을 이어주는 견고한 자동화와 신뢰

- 팀 간 협업과 의사소통 강화에 대한 아이디어

- 서비스 생애주기의 처음부터 끝까지 개발(build), 테스트(test), 출시(release)

- 지속적 전달(Continuous Delivery, CD)과 품질 검증 간의 우선순위 조정

 

하지만 MLOps와 DevOps 사이에는 결정적인 차이점이 하나 있어서 DevOps 담당자를 데이터 사이언스 팀으로 즉시 전환 배치할 수 없다. 소프트웨어 코드를 상용 배포하는 것과 머신러닝 모델을 상용 배포하는 것은 근본적인 부분에서 차이가 있다. 소프트웨어 코드는 비교적 정적이지만(최근 SaaS회사에서는 DevOps팀에서 하루에도 몇 번씩 빠르고 반복적으로 배포하기 때문에 '비교적'이라는 표현을 썼다). 데이터는 항상 변화한다. 즉, 머신러닝 모델은 지속적으로(물론 일시적인 경우도 있기는 하다) 학습하고 새로운 입력에 적응한다.  

 

p.28~29

머신러닝 책임 있는(Responsible) 사용(일반적으로 책임 있는 AI로 불린다)이라는 주제에는 두 가지 영역이 있다.

 

의도(Intentionality)

모델이 목적에 맞게 설계되고 작동되도록 보장하는 것을 의미한다. 여기에는 AI 프로젝트에서 사용하는 데이터를 적법하고 편파적이지 않은 출처에서 제공함을 보장하는 것과 모델의 잠재적 편향성을 다양하게 검토하고 보정하기 위해 AI 프로젝트를 협력적으로 수행하는 것을 포함한다. 또한 설명 가능성(Explainability)이란 속성을 포함함으로써 AI 시스템의 결과물을 인간이 설명할 수 있도록 해야 한다. 이상적으로는 시스템을 제작한 사람뿐 아니라 그 외의 사람들도 설명할 수 있어야 한다.

 

책무(Accountability)

기업 내 모든 AI 업무에 대한 중앙 통제 및 관리, 감사를 의미한다. 즉, 비승인 정보기술(Shadow IT)는 금지다! 책무란 어느 팀이 어떤 데이터를 어떻게 어느 모델에서 사용하는지를 전반적으로 파악하는 것이다. 또한 데이터에 대해 신뢰할 수 있고 규정에 따라 수집된다고 보장하는 것이다. 그리고 어느 모델이 어떤 비즈니스 프로세스에서 사용되는가를 중앙 집중식으로 이해하는 것이다. 이는 추적성(Traceability)과 밀접한 연관이 있다. 즉, 무언가 잘못되었을 때, 파이프라인의 어느 지점에서 발생하는지 쉽게 찾을 수 있어야 한다.

 

이 두 가지 원칙이 명확해 보일 수 있지만, 머신러닝 모델은 전통적인 명령형 코드에 비해서는 투명성이 부족하는 점을 감안해야 한다. 풀어서 얘기하자면, 예측 결과를 결정하는 데 사용하는 특성들(features)이 무엇인지 파악하기가 대단히 어렵다. 따라서 모델이 준수해야 하는 규제나 내부 규정에 적합하다고 입증하기도 대단히 어렵다.

 

이런한 이유로 머신러닝 모델에 대한 자동화를 실제로 도입할 때 책무(Accountability)를 지는 역할은 조직의 하위에서 상위로 이동한다. 즉, 과거에는 각각의 업무 담당자가 내리던 결정(예를 들면, 상품 가격을 결정한다든가 누군가에게 대출을 진행해도 될지 결정하는 것)을 모델이 내리고, 이 결정에 대한 책임은 데이터 팀의 관리자 혹은 임원이 져야 한다. 이 때문에 책임 있는 AI의 개념은 더욱 전면으로 부각된다.

 

이러한 도전 과제 및 원칙과 이전에 논의했던 리스크를 고려하면, MLOps와 책임 있는 AI 간의 상호작용은 당연한 일이다. MLOps 원칙을 준수해야 책임 있는 AI를 실행할 수 있고, 책임 있는 AI에는 MLOps전략이 필요하다. 

 

p.30

조직의 상위에서 볼 때 MLOps는 머신러닝에 대한 투명한 전략에 있어 핵심적이다. 데이터 과학자뿐만 아니라 상위 관리자와 C레벨 임원도 어떤 머신러닝 모델이 상용 환경에 배포되어 있고 비즈니스에 어떤 영향을 미치는지 이해해야 한다. 또한 머신러닝 모델 이면의 전체 데이터 파이프라인을 이해할 수 있는 능력도 반드시 갖추어야 한다. (즉, 미가공/원시 데이터부터 최종 결과까지 전 단계를 모두 파악하고 있어야 함을 뜻한다). MLOps를 활용하면 이러한 수준의 투명성과 책무를 확보할 수 있다.

 

p.33

직무 전문가는 달성해야 하거나 해결해야 하는 명확한 목표, 비즈니스 질의, KPI를 제시할 수 있어야 한다. 어떤 경우에는 매우 상세하게 정의해야 한다(예를 들어, "이번 분기의 수치를 달성하기 위해서 고객 이탈률을 10% 줄여야 한다." 혹은 "예상 밖의 운영 시간으로 인해 분기 단위로 N달러의 손해가 발생 중이다. 더 정확히 예측하려면 어떻게 해야 하는가?"). 때로는 대략적인 수준에서 정의하기도 한다(예를 들어, "더 많은 상품을 팔기 위해 우리 서비스 스태프는 고객을 더 잘 이해해야 한다." 혹은 "어떻게 사람들이 더 많은 위젯을 구매하도록 할 것인가?").

 

올바른 프로세스를 갖춘 조직이라 해도, 아주 상세한 비즈니스 질의로 머신러닝 모델 생애주기의 관리를 시작해야만 하거나 이상적인 목표로 삼아야 하는 것은 아니다. 덜 상세한 비즈니스 목표로 시작할 때 오히려 직무 전문가들이 데이터 과학자들과 함께 데이터 탐색이나 모델 실험에 앞서 문제를 정의하고, 가능한 해결 방안을 브레인스토밍하기 좋을 수 있다.

 

직무 전문가가 머신러닝 모델 생애주기를 시작하지 않는다면, 다른 데이터 전문가들(특히 데이터 과학자)이 더 큰 비즈니스 목표와 상관없이 머신러닝 모델 생애주기를 시작하는 리스크가 생길 수 있다. 결과적으로 이러한 방향은 직무 전문가와 데이터 과학자 및 다른 데이터 전문가 간의 문제 해결을 위한 협업에 도움이 되지 않을 뿐만 아니라, 더 큰 가치를 제공하기 위해 노력하고 있을 데이터 과학자 본인들에게도 해롭다.

 

머신러닝 모델 생애주기에 직무 전문가가 관여하지 않을 때 생기는 또 다른 부정적 영향도 있다. 데이터 팀이 실질적인 비즈니스 결과를 도출해내지 못한 채, 고급 분석 프로젝트를 지속하기 위한 관심이나 추가 예산 및 지원을 얻기 위해 고군분투하게 된다는 것이다. 이는 결국 데이터 팀, 직무 전문가, 비즈니스 전체에 나쁜 영향을 끼치게 된다.

 

p.34

직무 전문가는 머신러닝 모델 생애주기 중 시작점뿐 아니라 종료 시점(배포 이후)에도 필요하다. 데이터 과학자가 머신러닝 모델의 성능이 적절한지, 기대한 대로 작동하는지 확인하기 위해 직무 전문가와 협력해야만 반복적인 피드백 단계를 수행할 수 있을 때도 있기 때문이다. 전통적인 지표(Accuracy, Precision, Recall)로는 평가하기 어려운 경우다.

 

예를 들어, 데이터 과학자가 상용 환경에서 매우 높은 정확도를 보이는 간단한 고객 이탈 예측 모델을 구축했다고 하자. 그런데 모델을 활용하여 마케팅을 수행하였으나 모델이 예측한 고객 이탈을 방지할 수 없었다. 이런 경우 비즈니스 관점에서 판단하자면 모델이 작동하지 않은 것이다. 이는 아주 중요한 정보로서, 다른 방안을 모색하고 머신러닝 모델을 재구축해야 한다는 것을 의미한다. 이 정보를 받아들이고 마케팅 메시지가 효과를 보이는 잠재적 이탈자를 타기팅하도록 모델을 재구축하여 마케팅을 수행할 수 있다.

 

머신러닝 모델 생애주기 내에서 직무 전문가의 역할을 고려하여, MLOps 프로세스를 구축할 때 상용 배포된 모델의 성능을 비즈니스 측면에서 쉽게 이해할 수 있는 기능도 포함해야 한다. 풀어서 얘기하자면, 직무 전문가는 단지 모델 정확도, 정밀도, 재현율뿐만 아니라, 비즈니스 프로세스에 모델이 전달하는 결과나 미치는 영향도 사전에 확인해야 한다. 거기에 더해, 성능에 예기치 못한 변화가 있는 경우, 직무 전문가는 비즈니스 요건에 맞지 않는 모델의 결과를 판별할 확장성 있는 수단이 필요할 수 있다.

댓글