안녕하세요! 선한 데이터 사이언티스트를 꿈꾸는 Hayley 입니다~! 😊
오늘은 어제에 이어서, Google Cloud Architecture Center에서 작성한 Continuous delivery and automation pipelines in machine learning을 번역해보려 하는데요! 스스로 공부하기 위한 목적이 강한 것을 참고 부탁드립니다. :)
저는 글을 좀 나눠서 번역하고 있는데요. 오늘은 세번째 파트 입니다!
먼저 작성한 글은 다음 링크를 참고해주세요!
* 문장을 읽기 편하게 하긴 위한 의역이 포함되어 있습니다.
* 해당 글의 공식적인 번역문은 해당 사이트에서 언어 설정을 영어 -> 한국어로 바꾸면 보실 수 있습니다.
* 혹 오역을 확인하시면 댓글 남겨주시기 바라겠습니다!
어떤 ML 프로젝트라 할 것 없이 모든 ML 프로젝트들은 비즈니스 유스 케이스와 성공 기준을 정의하고 나서 ML 모델을 운영에 전달하기까지 아래 단계들을 밟게 됩니다. 이 단계들은 수동으로 수행할 수도 있고 자동 파이프라인으로 수행할 수도 있습니다.
ML 태스크(임무, 과제)를 위해 여러가지 데이터 원천에서 유의미한 데이터를 선정하고 통합합니다.
ML 모델 학습에 사용할 수 있는 데이터를 이해하기 위해서 탐색적 데이터 분석 을 수행합니다. 그 결과로 당신은 다음의 것들을 얻을 수 있습니다.
ML 태스크에 맞게 데이터를 가공합니다. 데이터 가공 작업 중 하나는 데이터 정제(cleaning)인데, 학습/검증/평가 세트 분리도 데이터 정제 과정에 포함됩니다. 그리고 나서 모델 학습을 위해 필요한 데이터 트랜스포메이션(로그 변환 등) 작업과 변수 가공 작업을 수행합니다. 데이터 준비 단계의 결과물은 가공이 완료되고 학습/검증/평가 목적으로 분리된 데이터 세트입니다.
데이터 사이언티스트는 여러 알고리즘을 코드로 구현하고 이를 준비된 데이터로 학습해서 다양한 ML 모델을 만듭니다. 또한, 코드로 구현한 알고리즘을 그냥 쓰지 않고, hyperparameter tuning 을 통해서 가장 성능이 좋은 ML 모델을 찾습니다. 모델 학습 단계의 결과물은 학습된 모델입니다.
모델의 품질을 평가하기 위해서 전 단계에서 학습된 모델로 따로 떼어놓고 건드리지 않은 (holdout한) 평가 세트를 추론하여 성능을 측정합니다. 모델 검증 단계의 결과물은 모델의 품질을 가늠할 수 있는 지표 값들 입니다.
모델이 배포(deployment)를 하기에 적절한지, 즉 이 모델의 예측 성능이 특정 기준값보다 좋은지, 확인합니다.
이렇게 확인된 모델은 타깃 환경에 배포되어 예측 서비스를 제공합니다. 이 배포(deployment)는 아래의 형태 중 하나일 수 있습니다.
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에 대해서도 보다 정확하게 읽어보고 정리하여 글을 작성하도록 하겠습니다! 기대해주세요~!
그럼 우선은 다음 섹션 번역에서 만나요~!! :)