[MLOps] [번역] Continuous delivery and automation pipelines in machine learning (1) 도입

Hayley·2022년 4월 27일
0

MLOps

목록 보기
1/6

안녕하세요, 저는 선한 데이터 사이언티스트를 꿈꾸는 Hayley 입니다.

오늘은 그동안 계속 찬찬히 읽어봐야지 했었던, Google Cloud Architecture Center*에서 소개한 MLOps 관련 글인 Continuous delivery and automation pipelines in machine learning을 번역해보는 시간을 가지겠습니다. 스스로 공부하기 위한 목적이 강한 것을 참고 부탁드립니다!

원본은 다음 주소에 있으니 참고해주세요.

* Cloud Architecture Center는 Google에서 운영하는 Google Cloud 에 기반한 Reference Architecture나 Best Practices를 소개하는 웹사이트입니다.

* 문장을 읽기 편하게 하긴 위한 의역이 포함되어 있습니다.
* 해당 글의 공식적인 번역문은 해당 사이트에서 언어 설정을 영어 -> 한국어로 바꾸면 보실 수 있습니다.
* 혹 오역을 확인하시면 댓글 남겨주시기 바라겠습니다!


MLOps: 머신러닝에서의 CD(Continuous Delivery)와 자동화 파이프라인

이 문서는 머신러닝 시스템을 위하여 CI(Continuous Integration, 지속적 통합), CD(Continuous Delivery, 지속적 배포), CT(Continuous Training, 지속적 학습)를 구현하고 자동화하는 기법들을 다룹니다.

데이터 사이언스와 ML은 복잡한 현실 세계의 문제를 해결하고, 산업을 변화시키고, 모든 도메인 영역에서 가치를 창출하는데 핵심 역량이 되고 있습니다. 요즘은 효과적인 머신러닝을 적용하는데 필요한 재료들이 존재합니다.

  • 대량의 데이터
  • 저렴한 온디맨드 연산 자원
  • 다양한 클라우드 플랫폼 상에서 제공되는 ML에 특화된 가속장치
  • 컴퓨터 비전, 자연어 이해, 추천 AI 시스템과 같은 다양한 ML 연구분야에서의 빠른 발전

그래서 많은 기업들은 그들의 유저에게 비즈니스 가치를 줄 수 있는 예측 모델을 만들기 위해 데이터 사이언스 팀과 ML 역량을 갖추는 데 투자하고 있습니다.

이 글은 머신러닝 시스템에 DevOps 원칙을 적용(또는 MLOps를) 하고 싶은 데이터 사이언티스트와 ML 엔지니어들을 위해 작성되었습니다. MLOps는 ML 시스템 개발(Dev)와 ML 시스템 운영(Ops)를 통합하는 것을 목표로 하는 ML 엔지니어링 문화이자 프랙티스(행동 습관, 관습)입니다. "MLOps 한다"라는 것은 통합, 테스트, 릴리즈, 배포, 및 인프라 관리 등 ML 시스템 구축 전 과정에 자동화 및 모니터링을 해야 한다고 하는 것입니다. (Italic체 번역자 추가)

데이터 사이언티스트는 유스 케이스에 맞는 적절한 학습 데이터가 주어지면 ML 모델을 구현 및 학습하고 떼놓은 오프라인 데이터셋에 예측 성능을 측정할 수 있습니다. 그러나 진짜 챌린지는 ML 모델을 만드는 것이 아니라, 통합된 ML 시스템을 만들고 실제 환경에서 지속적으로 그 시스템을 운영하는 것입니다. 구글에서의 오랜 ML 시스템 운영 경험을 통해, 우리는 ML 기반 시스템을 실제 환경에서 운영하는데 많은 예상치 못한 어려움들이 있다는 것을 배웠습니다. 이런 어려움들 중 일부는 Machine Learning: The high-interest credit card of technical debt 문서에 요약되어 있습니다.

아래 다이어그램에서처럼 현실 세계의 ML 시스템을 보면 작은 부분만이 ML 코드로 구성되어 있습니다. 그리고 ML 코드를 감싸는 요소들은 방대하고 복잡합니다.

Fig.1 - 그림1. ML 시스템의 요소들. Hidden Technical Debt in Machine Learning Systems에서 발췌 및 수정.

이 다이어그램에서 ML코드를 제외한 나머지 부분은 Configuration(배열), Automation(자동화), Data collection(데이터 수집), Data verification(데이터 확인), Testing and debugging(테스트 및 디버깅), Resource management(자원 관리), Feature engineering(파생변수 생성), Model analysis(모델 분석), Process and metadata management(프로세스 및 메타데이터 관리), Serving infrastructure(서빙 인프라), Monitoring(모니터링) 입니다.

이렇게 복잡한 시스템을 개발하고 운영하기 위해서 DevOps 원칙들을 ML 시스템에 적용(MLOps) 할 수 있습니다. 이 문서는 ML에서의 CI, CD, CT와 같이 당신이 데이터 사이언스 작업을 위한 MLOps 환경을 세팅할 때 고려 해야할 개념들을 다룹니다.

구체적으로는 아래 주제들을 다룹니다:

  • DevOps와 MLOps의 비교
  • ML 모델을 개발하기 위한 단계들
  • MLOps 성숙 수준들

(다음 섹션에서 계속...)


요약

이 문서는 ML 시스템을 위한 CI, CD, CT가 무엇인지(정의), 또 그것을 구현하고 자동화하는 방법을 다루는 문서이다. 이 주제를 다루는 이유는 CI, CD, CT가 MLOps 환경을 세팅할 때 고려해야 할 개념들이기 때문이다. MLOps란 DevOps의 원칙을 ML 시스템에 적용하는 것으로, 구체적으로는 ML 시스템 구축 전 과정(통합, 테스트, 릴리즈, 배포, 인프라 관리)에 자동화와 모니터링 도입을 지향하는 것을 말한다. MLOps가 필요한 이유는 ML을 실제 환경에 배포하여 운영하기 위해서는 많은 주변 요소가 필요하고 이런 복잡한 시스템을 개발,운영하기에는 DevOps의 원칙들이 유용하기 때문이다.

덧붙이는 소감

처음에는 MLOps가 뭐지? 많이 들리긴 하는데 잘 모르겠다 싶고, 그 다음에는 DevOps for ML 이라는 정의를 어디선가 들었지만 DevOps가 뭔지 몰라 감이 안왔어요. 그런데 오늘 보니 결국 DevOps는 시스템 구축 과정에 자동화와 모니터링을 도입해서 코드 수정+배포의 속도를 빠르게 하고자 하는 것이고, MLOps는 ML 시스템 구축 과정에 자동화와 모니터링을 도입해서 데이터나 코드 변화에 따른 모델 재학습+배포의 속도를 빠르게 하고자 하는 것임을 알게 되었습니다.

물론 ML 시스템 만의 특성이 있기 때문에 MLOps = DevOps는 아니겠죠? 마침 DevOps vs. MLOps가 다음 섹션 주제입니다. 😉 그럼 다음 섹션에서 만나요~~!! 😀

profile
선한 데이터 사이언티스트를 꿈꾸다.

0개의 댓글