2020.08.25

머신러닝 운영과 관리, 'ML옵스'가 뜬다

Isaac Sacolick | InfoWorld
데이터 과학자가 데이터를 태깅하고 정확한 머신러닝 모델을 만들기가 어렵다고 하지만, 프로덕션에서 머신러닝 모델을 관리하는 일은 이보다 더 까다로울 수 있다. 모델 드리프트(Model Drift) 인식, 업데이트된 데이터 집합을 사용한 모델 재학습, 성능 개선, 기반 기술 플랫폼 유지보수, 모두 중요한 데이터 과학의 작업들이다. 이와 같은 작업이 없으면 모델이 잘못된 결과를 생산하고 결과적으로 비즈니스에 큰 피해가 발생할 수 있다.
 
ⓒ Getty Images Bank

프로덕션급 모델 개발은 쉬운 일이 아니다. 한 머신러닝 연구에 따르면, 기업의 55%는 모델을 프로덕션에 구축한 적이 없고, 약 40%는 모델 하나를 배포하는 데 30일 이상이 소요되는 것으로 나타났다. 성공에는 새로운 과제가 따른다. 응답 기업의 41%는 머신러닝 모델의 버전 관리와 재현 가능성에 어려움을 느낀다고 답했다.

여기서 얻을 수 있는 교훈은 머신러닝 모델이 프로덕션에 구축되어 비즈니스 프로세스에 사용하기 시작하면 새로운 장애물이 나타난다는 것이다.

모델 관리와 운영은 한때 숙련된 데이터 과학 팀을 위한 과제라는 인식이 있었다. 현재 모델 관리와 운영 작업에는 프로덕션 머신러닝 모델의 드리프트 모니터링, 모델 재학습 자동화, 드리프트가 심할 경우 알림, 모델에 업그레이드가 필요할 때 인식하기 등이 포함된다. 머신러닝에 투자하는 기업이 늘어나면서 모델 관리와 운영에 대한 인식을 구축해야 할 필요성도 커지고 있다.

좋은 소식은 오픈소스 ML플로우(MLFlow), DVC와 같은 플랫폼과 라이브러리, 그리고 알터릭스(Alteryx), 데이터브릭스(Databricks), 다타이쿠(Dataiku), SAS, 데이터로봇(DataRobot), 모델옵(ModelOp)의 상용 툴 등으로 데이터 과학 팀의 모델 관리와 운영이 한결 쉬워졌다는 점이다. 퍼블릭 클라우드 제공업체도 애저 머신러닝에서 ML옵스 구현하기와 같은 수행 방법을 공유하고 있다.

머신러닝 모델 관리와 데브옵스 간에는 여러 유사점이 있다. 많은 사람은 모델 관리와 운영을 ‘ML옵스(MLops)’로 지칭하고, 머신러닝 모델을 개발, 유지하는 데 필요한 문화, 관행, 기술로 정의한다.


모델 관리와 운영의 이해

모델 관리와 운영을 더 정확히 이해하려면 소프트웨어 개발 이행 방법과 과학적 방법의 조합을 생각하면 된다.

소프트웨어 개발자라면 애플리케이션의 한 버전을 완성해 프로덕션에 배포하는 일이 간단치 않음을 안다. 그러나 애플리케이션이 프로덕션에 이르게 되면 더욱 큰 과제가 시작된다. 최종 사용자는 주기적인 향상을 기대하고, 기반 인프라와 플랫폼, 라이브러리에는 패치와 유지보수가 필요하다.

이제 과학 쪽으로 눈을 돌리면 질문은 여러 가설과 반복적 실험으로 이어진다. 학창시절 과학 시간에 이런 실험 일지를 작성하고 각 실험마다 다양한 변수의 조정 내역을 추적하라고 배웠을 것이다. 실험은 개선된 결과로 이어지며, 이 과정을 문서화하면 동료들에게 모든 변수를 탐색했음을 보여주고 결과의 재현 가능성을 설득하는 데 유용하다.

머신러닝 모델로 실험하는 데이터 과학자는 소프트웨어 개발과 과학 연구, 두 가지 분야를 모두 수용해야 한다. 머신러닝 모델은 파이썬, R과 같은 언어로 개발되고 텐서플로우나 파이토치 또는 기타 머신러닝 라이브러리로 구조화되고 아파치 스파크와 같은 플랫폼에서 실행되고 클라우드 인프라에 배포되는 소프트웨어 코드다. 머신러닝 모델의 개발과 지원에는 상당한 실험과 최적화가 필요하며 데이터 과학자는 자신이 사용한 모델의 정확성을 증명해야 한다.

소프트웨어 개발과 마찬가지로 머신러닝 모델에는 지속적인 유지보수와 향상이 필요하다. 이는 코드와 라이브러리, 플랫폼, 인프라를 유지보수하는 과정에서 실현되기도 하지만 데이터 과학자는 모델 드리프트에 대해서도 유의해야 한다. 모델 드리프트는 새 데이터를 사용할 수 있게 되면서 머신러닝 모델이 제공하는 예측과 클러스터, 세그먼테이션, 추천이 예상된 결과에서 이탈하게 되는 현상이다.


성공적인 모델 관리의 시작은 최적의 모델 개발

알터릭스의 최고 데이터 및 분석 책임자인 앨런 제이콥슨은 머신러닝 모델을 성공적으로 개발하고 확장하는 방법에 대해 “모델 개발을 간소화하는 데 있어 대부분의 데이터 과학자가 직면하는 첫 번째 과제는 견고한 문제 공식화다. 많은 복잡한 비즈니스 문제는 매우 간단한 분석으로 해결할 수 있지만, 이를 위해서는 먼저 데이터와 분석이 문제에 답하는 데 도움이 될 수 있는 방식으로 문제를 구조화해야 한다. 복잡한 모델을 활용할 때라도 가장 어려운 부분은 일반적으로 데이터를 구조화하고 적절한 입력이 사용되고 그 입력의 품질이 적절한 수준임을 보장하는 부분이다”라고 말했다.

문제 설정부터 잘못되고 충분한 데이터 품질을 보장하기 위한 시간과 도구, 주제 전문 지식이 부족한 채로 시작하는 데이터 및 기술 구현이 너무 많다. 기업은 먼저 빅데이터에 대한 적절한 질문을 던지고 데이터옵스(dataops)에 투자한 다음 데이터 과학에 애자일 방법론을 사용해 솔루션을 향해 반복 실행해야 한다.


머신러닝 모델에서 모델 드리프트 모니터링

정확한 문제 정의는 프로덕션에서의 지속적인 모델 관리와 모니터링을 위해 중요하다. 제이콥슨은 “모델 모니터링은 중요한 프로세스지만 제대로 하기 위해서는 목표와 살펴야 할 잠재적 악영향에 대한 확고한 이해가 필요하다. 모델 성능과 시간 경과에 따른 변화 모니터링에 대한 이야기가 많지만, 이보다 더 중요하면서 어려운 일은 의도하지 않은 결과를 분석하는 것이다”라고 설명했다.

모델 드리프트 및 의도치 않은 결과를 쉽게 이해하려면 코로나19가 코로나19 팬데믹 이전의 학습 데이터를 사용해 개발된 머신러닝 모델에 미치는 영향을 생각해보면 된다. 인간 행동, 자연어 처리, 소비자 수요 모델 또는 사기 패턴을 기반으로 하는 머신러닝은 모두 AI 모델에 혼란을 일으킨 팬데믹 중의 행동 변화에 따른 영향을 받았다.

데이터 과학 프로그램에서 가치를 얻고 프로그램의 성숙도를 높이는 기업이 늘면서 IT 제공업체들도 새로운 ML옵스 기능을 내놓고 있다. 예를 들어 SAS는 데이터 과학자가 목표 변수 없이 모델을 평가하는 데 도움이 되는 특성 기여도 지수를 도입했다. 클라우데라(Cloudera)는 기술 성능 지표를 포착하고 모델 예측을 추적하는 ML 모니터링 서비스를 최근 발표했다.


ML옵스, 자동화 및 협업과도 관련

머신러닝 모델 개발과 프로덕션의 머신러닝 모델 모니터링 사이에는 데이터 과학의 확장을 가능하게 해주는 부가적인 도구와 프로세스, 협업, 기능이 위치한다. 이들 자동화 및 인프라 방식 중 일부는 데브옵스와 유사하며, 머신러닝 모델을 위한 코드형 인프라, CI/CD(지속적 통합/지속적 배포)를 포함한다. 다른 방식에는 기반 학습 데이터를 사용한 모델 버전 관리 및 모델 리포지토리 검색과 같은 개발자 기능이 포함된다.

ML옵스의 흥미로운 점은 과학적 방법론과 협업을 데이터 과학 팀으로 가져온다는 것이다. 예를 들어 데이터로봇의 챔피언-도전자 모델은 여러 실험 모델을 병렬로 실행해 프로덕션 버전의 정확성에 도전한다. SAS는 데이터 과학자가 시장 출시 속도와 데이터 품질을 높이도록 돕는 것을 목표로 한다. 알터릭스는 최근 데이터 과학 팀 간의 협업과 공유를 촉진하는 애널리틱스 허브(Analytics Hub)를 발표했다.

이런 움직임들은 머신러닝의 관리와 확장을 위해서는 단순히 데이터 과학자에게 파이썬으로 랜덤 포리스트(random forest), k-평균(k-means) 또는 CNN(Convolutional Neural Network)을 코딩하고 테스트할 것을 요청하는 이상의, 훨씬 더 많은 분야와 수행 방법이 필요하다는 사실을 보여준다. editor@itworld.co.kr


2020.08.25

머신러닝 운영과 관리, 'ML옵스'가 뜬다

Isaac Sacolick | InfoWorld
데이터 과학자가 데이터를 태깅하고 정확한 머신러닝 모델을 만들기가 어렵다고 하지만, 프로덕션에서 머신러닝 모델을 관리하는 일은 이보다 더 까다로울 수 있다. 모델 드리프트(Model Drift) 인식, 업데이트된 데이터 집합을 사용한 모델 재학습, 성능 개선, 기반 기술 플랫폼 유지보수, 모두 중요한 데이터 과학의 작업들이다. 이와 같은 작업이 없으면 모델이 잘못된 결과를 생산하고 결과적으로 비즈니스에 큰 피해가 발생할 수 있다.
 
ⓒ Getty Images Bank

프로덕션급 모델 개발은 쉬운 일이 아니다. 한 머신러닝 연구에 따르면, 기업의 55%는 모델을 프로덕션에 구축한 적이 없고, 약 40%는 모델 하나를 배포하는 데 30일 이상이 소요되는 것으로 나타났다. 성공에는 새로운 과제가 따른다. 응답 기업의 41%는 머신러닝 모델의 버전 관리와 재현 가능성에 어려움을 느낀다고 답했다.

여기서 얻을 수 있는 교훈은 머신러닝 모델이 프로덕션에 구축되어 비즈니스 프로세스에 사용하기 시작하면 새로운 장애물이 나타난다는 것이다.

모델 관리와 운영은 한때 숙련된 데이터 과학 팀을 위한 과제라는 인식이 있었다. 현재 모델 관리와 운영 작업에는 프로덕션 머신러닝 모델의 드리프트 모니터링, 모델 재학습 자동화, 드리프트가 심할 경우 알림, 모델에 업그레이드가 필요할 때 인식하기 등이 포함된다. 머신러닝에 투자하는 기업이 늘어나면서 모델 관리와 운영에 대한 인식을 구축해야 할 필요성도 커지고 있다.

좋은 소식은 오픈소스 ML플로우(MLFlow), DVC와 같은 플랫폼과 라이브러리, 그리고 알터릭스(Alteryx), 데이터브릭스(Databricks), 다타이쿠(Dataiku), SAS, 데이터로봇(DataRobot), 모델옵(ModelOp)의 상용 툴 등으로 데이터 과학 팀의 모델 관리와 운영이 한결 쉬워졌다는 점이다. 퍼블릭 클라우드 제공업체도 애저 머신러닝에서 ML옵스 구현하기와 같은 수행 방법을 공유하고 있다.

머신러닝 모델 관리와 데브옵스 간에는 여러 유사점이 있다. 많은 사람은 모델 관리와 운영을 ‘ML옵스(MLops)’로 지칭하고, 머신러닝 모델을 개발, 유지하는 데 필요한 문화, 관행, 기술로 정의한다.


모델 관리와 운영의 이해

모델 관리와 운영을 더 정확히 이해하려면 소프트웨어 개발 이행 방법과 과학적 방법의 조합을 생각하면 된다.

소프트웨어 개발자라면 애플리케이션의 한 버전을 완성해 프로덕션에 배포하는 일이 간단치 않음을 안다. 그러나 애플리케이션이 프로덕션에 이르게 되면 더욱 큰 과제가 시작된다. 최종 사용자는 주기적인 향상을 기대하고, 기반 인프라와 플랫폼, 라이브러리에는 패치와 유지보수가 필요하다.

이제 과학 쪽으로 눈을 돌리면 질문은 여러 가설과 반복적 실험으로 이어진다. 학창시절 과학 시간에 이런 실험 일지를 작성하고 각 실험마다 다양한 변수의 조정 내역을 추적하라고 배웠을 것이다. 실험은 개선된 결과로 이어지며, 이 과정을 문서화하면 동료들에게 모든 변수를 탐색했음을 보여주고 결과의 재현 가능성을 설득하는 데 유용하다.

머신러닝 모델로 실험하는 데이터 과학자는 소프트웨어 개발과 과학 연구, 두 가지 분야를 모두 수용해야 한다. 머신러닝 모델은 파이썬, R과 같은 언어로 개발되고 텐서플로우나 파이토치 또는 기타 머신러닝 라이브러리로 구조화되고 아파치 스파크와 같은 플랫폼에서 실행되고 클라우드 인프라에 배포되는 소프트웨어 코드다. 머신러닝 모델의 개발과 지원에는 상당한 실험과 최적화가 필요하며 데이터 과학자는 자신이 사용한 모델의 정확성을 증명해야 한다.

소프트웨어 개발과 마찬가지로 머신러닝 모델에는 지속적인 유지보수와 향상이 필요하다. 이는 코드와 라이브러리, 플랫폼, 인프라를 유지보수하는 과정에서 실현되기도 하지만 데이터 과학자는 모델 드리프트에 대해서도 유의해야 한다. 모델 드리프트는 새 데이터를 사용할 수 있게 되면서 머신러닝 모델이 제공하는 예측과 클러스터, 세그먼테이션, 추천이 예상된 결과에서 이탈하게 되는 현상이다.


성공적인 모델 관리의 시작은 최적의 모델 개발

알터릭스의 최고 데이터 및 분석 책임자인 앨런 제이콥슨은 머신러닝 모델을 성공적으로 개발하고 확장하는 방법에 대해 “모델 개발을 간소화하는 데 있어 대부분의 데이터 과학자가 직면하는 첫 번째 과제는 견고한 문제 공식화다. 많은 복잡한 비즈니스 문제는 매우 간단한 분석으로 해결할 수 있지만, 이를 위해서는 먼저 데이터와 분석이 문제에 답하는 데 도움이 될 수 있는 방식으로 문제를 구조화해야 한다. 복잡한 모델을 활용할 때라도 가장 어려운 부분은 일반적으로 데이터를 구조화하고 적절한 입력이 사용되고 그 입력의 품질이 적절한 수준임을 보장하는 부분이다”라고 말했다.

문제 설정부터 잘못되고 충분한 데이터 품질을 보장하기 위한 시간과 도구, 주제 전문 지식이 부족한 채로 시작하는 데이터 및 기술 구현이 너무 많다. 기업은 먼저 빅데이터에 대한 적절한 질문을 던지고 데이터옵스(dataops)에 투자한 다음 데이터 과학에 애자일 방법론을 사용해 솔루션을 향해 반복 실행해야 한다.


머신러닝 모델에서 모델 드리프트 모니터링

정확한 문제 정의는 프로덕션에서의 지속적인 모델 관리와 모니터링을 위해 중요하다. 제이콥슨은 “모델 모니터링은 중요한 프로세스지만 제대로 하기 위해서는 목표와 살펴야 할 잠재적 악영향에 대한 확고한 이해가 필요하다. 모델 성능과 시간 경과에 따른 변화 모니터링에 대한 이야기가 많지만, 이보다 더 중요하면서 어려운 일은 의도하지 않은 결과를 분석하는 것이다”라고 설명했다.

모델 드리프트 및 의도치 않은 결과를 쉽게 이해하려면 코로나19가 코로나19 팬데믹 이전의 학습 데이터를 사용해 개발된 머신러닝 모델에 미치는 영향을 생각해보면 된다. 인간 행동, 자연어 처리, 소비자 수요 모델 또는 사기 패턴을 기반으로 하는 머신러닝은 모두 AI 모델에 혼란을 일으킨 팬데믹 중의 행동 변화에 따른 영향을 받았다.

데이터 과학 프로그램에서 가치를 얻고 프로그램의 성숙도를 높이는 기업이 늘면서 IT 제공업체들도 새로운 ML옵스 기능을 내놓고 있다. 예를 들어 SAS는 데이터 과학자가 목표 변수 없이 모델을 평가하는 데 도움이 되는 특성 기여도 지수를 도입했다. 클라우데라(Cloudera)는 기술 성능 지표를 포착하고 모델 예측을 추적하는 ML 모니터링 서비스를 최근 발표했다.


ML옵스, 자동화 및 협업과도 관련

머신러닝 모델 개발과 프로덕션의 머신러닝 모델 모니터링 사이에는 데이터 과학의 확장을 가능하게 해주는 부가적인 도구와 프로세스, 협업, 기능이 위치한다. 이들 자동화 및 인프라 방식 중 일부는 데브옵스와 유사하며, 머신러닝 모델을 위한 코드형 인프라, CI/CD(지속적 통합/지속적 배포)를 포함한다. 다른 방식에는 기반 학습 데이터를 사용한 모델 버전 관리 및 모델 리포지토리 검색과 같은 개발자 기능이 포함된다.

ML옵스의 흥미로운 점은 과학적 방법론과 협업을 데이터 과학 팀으로 가져온다는 것이다. 예를 들어 데이터로봇의 챔피언-도전자 모델은 여러 실험 모델을 병렬로 실행해 프로덕션 버전의 정확성에 도전한다. SAS는 데이터 과학자가 시장 출시 속도와 데이터 품질을 높이도록 돕는 것을 목표로 한다. 알터릭스는 최근 데이터 과학 팀 간의 협업과 공유를 촉진하는 애널리틱스 허브(Analytics Hub)를 발표했다.

이런 움직임들은 머신러닝의 관리와 확장을 위해서는 단순히 데이터 과학자에게 파이썬으로 랜덤 포리스트(random forest), k-평균(k-means) 또는 CNN(Convolutional Neural Network)을 코딩하고 테스트할 것을 요청하는 이상의, 훨씬 더 많은 분야와 수행 방법이 필요하다는 사실을 보여준다. editor@itworld.co.kr


X