[MLOps] [번역] Continuous delivery and automation pipelines in machine learning (2) DevOps vs. MLOps

Hayley·2022년 4월 27일

MLOps

목록 보기
2/6

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

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

글이 길어서 여러 파트로 나누어 작성하려고 하는데요. 오늘이 두번째 파트 입니다!

먼저 작성한 글은 다음 링크를 참고해주세요!
[MLOps] [번역] Continuous delivery and automation pipelines in machine learning (1) 도입

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


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

DevOps vs. MLOps

DevOps는 큰 규모의 소프트웨어 시스템을 개발하고 운영할 때 최근 많이 사용하는 프랙티스 입니다. 이 프랙티스는 개발 사이클 단축, 배포 속도 증대, 릴리즈 신뢰도 증가와 같은 이점들을 가지고 있습니다. 이런 이점을 얻기 위해, DevOps는 2가지 개념을 소프트웨어 시스템에 도입합니다.

  • CI (Continuous Integration, 지속적 통합)
  • CD (Continuous Delivery, 지속적 배포)

ML 시스템도 결국 소프트웨어 시스템이기 때문에, 큰 규모의 ML 시스템을 안정되게 개발하고 운영하기 위해서 비슷한 프랙티스를 사용할 수 있습니다.

그러나, ML 시스템은 다른 소프트웨어 시스템들과 아래와 같은 측면에서 차이가 있습니다:

팀이 가진 스킬셋 측면

ML 프로젝트에서는 팀에 보통 데이터 사이언티스트나 ML 연구자들이 있고 이들은 탐색적 데이터 분석, 모델 개발, 실험에 집중합니다. 이런 멤버들은 운영용 서비스를 개발할 수 있는 숙련된 개발자는 아닐 수 있습니다.

개발 측면

ML은 본래 실험 기반입니다. 따라서, 주어진 문제에 가장 잘 작동하는 변수, 알고리즘, 모델링 기술, 파라미터 설정을 최대한 빨리 찾기 위해 다양한 조합을 테스트 해봐야 합니다. 어려운 부분은 어떤 것이 잘 작동했고 어떤 것이 잘 작동하지 않았는지를 트래킹하고 코드의 재사용성을 최대화 하면서 재현 가능성을 유지하는 것입니다.

테스트 측면

ML 시스템을 테스트 하는 것은 다른 소프트웨어 시스템을 테스트하는 것보다 보다 많은 수고를 필요로 합니다. 통상 수행하는 단위와 통합 테스트 이외에도, 데이터 검증, 학습된 모델 품질 평가, 모델 검증이 필요합니다.

배포 측면

ML 시스템에서 배포란, 단순이 오프라인에서 학습된 모델을 예측 서비스를 배포하는 것이 아닙니다. ML 시스템에 따라서는 자동적으로 모델을 재학습하고 배포하는 여러 단계로 구성된 파이프라인을 배포해야 할 수도 있습니다. 이런 파이프라인은 시스템의 복잡도를 높이며, 데이터 사이언티스트가 수작업으로 했던 작업들 (배포 단계 이전에 새로운 모델을 학습하고 검증하는 작업)을 자동화시켜야 한다는 것을 의미합니다.

운영 측면

ML 모델은 코딩이 최적화되어 있지 않아서 뿐 아니라, 데이터가 계속해서 변하기 때문에도 성능이 악화될 수 있습니다. 달리 말하면 모델은 기존의 소프트웨어 시스템이 낙후되는 방식 (코딩의 문제)보다 다양한 방식 때문에 낙후될 수 있으며, 개발, 운영 시 이러한 성능의 악화를 고려해야 한다는 것을 의미합니다.

**

ML 시스템은 소스코드 CI (지속 통합), 단위 테스트, 통합 테스트, 소프트웨어 모듈이나 패키지의 CD(지속 배포)에 있어서는 다른 소프트웨어 시스템과 비슷합니다. 하지만, 이런 요소에 있어서도 ML 시스템에는 몇가지 차이가 있음을 알아야 합니다.

  • CI는 코드와 컴포넌트에 대한 테스트 및 검증 뿐 아니라, 데이터와 데이터 스키마, 모델에 대한 테스트 및 검증도 다룹니다.
  • CD의 대상이 단일 소프트웨어 패키지나 단일 서비스가 아니라, 또다른 서비스(=모델 추론 서비스)를 자동 배포하는 어떤 시스템(ML 학습 파이프라인)입니다.
  • CT라는 특성이 추가되었습니다. 이는 모델을 자동으로 재학습하고 서빙하는 것에 관한 것입니다.

다음 섹션에서는 예측 서비스로 사용되는 ML 모델을 학습하고 평가하기 위한 일반적인 단계들에 대해서 이야기해보겠습니다.


요약

MLOps는 DevOps와 다른데, 그 이유는 MLOps의 CI는 코드 뿐 아니라 데이터와 모델에 대한 테스트와 검증이어야 하고, CD는 시스템 1개가 아니라 학습과 추론 2가지에 대한 것이어야 하며, 추가적으로 모델 재학습/배포라는 CT를 해야 하기 때문입니다.

덧붙이는 소감

MLOps와 DevOps의 차이에 대해서 명확히 짚어봐서 좋았습니다! 아직 제가 DevOps 맥락에서 CI, CD에 대하여 정확하게 알고 있지 않아 아직도 살짝 헷갈리긴 하네요. 기회가 된다면, DevOps 의 CI, CD에 대해서 간략하게 정리해보겠습니다.

그러면 다음 섹션 번역으로 다시 뵙겠습니다~!🖐

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

0개의 댓글