[MLOps] [번역] Continuous delivery and automation pipelines in machine learning (3) Data Science Steps for ML

Hayley·2022년 4월 27일
0

MLOps

목록 보기
3/6

안녕하세요! 선한 데이터 사이언티스트를 꿈꾸는 Hayley 입니다~! 😊

오늘은 어제에 이어서, Google Cloud Architecture Center에서 작성한 Continuous delivery and automation pipelines in machine learning을 번역해보려 하는데요! 스스로 공부하기 위한 목적이 강한 것을 참고 부탁드립니다. :)

저는 글을 좀 나눠서 번역하고 있는데요. 오늘은 세번째 파트 입니다!

먼저 작성한 글은 다음 링크를 참고해주세요!

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


ML을 위한 데이터 사이언스 단계들

어떤 ML 프로젝트라 할 것 없이 모든 ML 프로젝트들은 비즈니스 유스 케이스와 성공 기준을 정의하고 나서 ML 모델을 운영에 전달하기까지 아래 단계들을 밟게 됩니다. 이 단계들은 수동으로 수행할 수도 있고 자동 파이프라인으로 수행할 수도 있습니다.

1. 데이터 추출

ML 태스크(임무, 과제)를 위해 여러가지 데이터 원천에서 유의미한 데이터를 선정하고 통합합니다.

2. 데이터 (탐색적) 분석

ML 모델 학습에 사용할 수 있는 데이터를 이해하기 위해서 탐색적 데이터 분석 을 수행합니다. 그 결과로 당신은 다음의 것들을 얻을 수 있습니다.

  • 모델 학습 시 고려해야 할 데이터 스키마와 특징을 이해한다.
  • 모델 학습을 위해 필요한 데이터 가공과 변수 생성 작업을 식별한다.

3. 데이터 준비

ML 태스크에 맞게 데이터를 가공합니다. 데이터 가공 작업 중 하나는 데이터 정제(cleaning)인데, 학습/검증/평가 세트 분리도 데이터 정제 과정에 포함됩니다. 그리고 나서 모델 학습을 위해 필요한 데이터 트랜스포메이션(로그 변환 등) 작업과 변수 가공 작업을 수행합니다. 데이터 준비 단계의 결과물은 가공이 완료되고 학습/검증/평가 목적으로 분리된 데이터 세트입니다.

4. 모델 학습

데이터 사이언티스트는 여러 알고리즘을 코드로 구현하고 이를 준비된 데이터로 학습해서 다양한 ML 모델을 만듭니다. 또한, 코드로 구현한 알고리즘을 그냥 쓰지 않고, hyperparameter tuning 을 통해서 가장 성능이 좋은 ML 모델을 찾습니다. 모델 학습 단계의 결과물은 학습된 모델입니다.

5. 모델 평가

모델의 품질을 평가하기 위해서 전 단계에서 학습된 모델로 따로 떼어놓고 건드리지 않은 (holdout한) 평가 세트를 추론하여 성능을 측정합니다. 모델 검증 단계의 결과물은 모델의 품질을 가늠할 수 있는 지표 값들 입니다.

6. 모델 배포 전 확인

모델이 배포(deployment)를 하기에 적절한지, 즉 이 모델의 예측 성능이 특정 기준값보다 좋은지, 확인합니다.

7. 모델 서빙

이렇게 확인된 모델은 타깃 환경에 배포되어 예측 서비스를 제공합니다. 이 배포(deployment)는 아래의 형태 중 하나일 수 있습니다.

  • 실시간 예측을 서빙하기 위한 REST API 를 갖춘 마이크로 서비스
  • 엣지나 모바일 장치에 임베딩(심긴) 모델
  • 배치 예측 시스템의 일부

8. 모델 모니터링

ML 과정을 새롭게 반복해야 할 (재학습이 이뤄져야 할) 상황을 탐지하기 위하여 모델의 예측 성능을 모니터링합니다.

이들 단계들의 자동화 정도가 ML 프로세스의 성숙도를 결정하며, ML 프로세스의 성숙도란 새로운 데이터나 학습 코드가 생겼을 때 새로운 모델을 학습하기 까지 걸리는 속도를 반영합니다. 다음 섹션에서는 가장 흔한, 자동화가 하나도 이뤄지지 않은 수준부터, ML과 CI/CD 파이프라인을 모두 자동화한 수준까지 3가지 수준의 MLOps 를 설명하겠습니다.


요약

ML 프로젝트라면 공통적으로 거치는 프로세스가 있는데, 데이터 추출 -> 데이터 탐색 -> 데이터 준비 -> 모델 학습 -> 모델 평가 -> 모델 배포 전 확인 -> 모델 서빙 -> 모델 모니터링 이다. (이름들을 많이 의역했습니다.) 그리고 이 프로세스의 자동화 정도가 곧 ML 프로세스의 성숙도를 말한다. 그 이유는 자동화 될 수록, 새로운 데이터나 모델 알고리즘이나 소스코드 변화에 신속하게 대응하여 빠르게 모델을 갱신(새로 학습)할 수 있기 때문이다.

덧붙이는 소감

번역을 하면서 느꼈는데, 위에서 설명한게 다른 글에서는 "Machine Learning Life Cycle" 이라 부르는 것 같아요. Machine Learning Life Cycle 하면 굉장히 장황할 것 같고, 복잡한 개념같은데 알고보면 데이터 수집부터 배포, 모니터링까지 ML 모델이 만들어지고 서비스 되기까지의 과정을 일컫는 말이더라고요.

오늘은 Machine Learning Life Cycle에 대해서 정리했다고 보아도 무방할 것 같지만, 제가 기회가 된다면 Machine Learning Life Cycle에 대해서도 보다 정확하게 읽어보고 정리하여 글을 작성하도록 하겠습니다! 기대해주세요~!

그럼 우선은 다음 섹션 번역에서 만나요~!! :)

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

0개의 댓글