23 July 2023

  • MLOps 에 대한 내용은 주로 DevOps와 관련된 내용을 참고해 오고 있었는데 이렇게 딱 MLOps 만을 한정한 책이 나와 인상깊게 읽게 되었다.
  • 머신러닝 모델을 만들었다면 이를 꾸준히 개선하고 운영해야 좀 더 나은 모델로 현실세계 문제를 해결하는데 도움이 되기 때문에 모델을 서빙하고 운영하는 것에 대한 중요성을 실감하고 있던터라 더 인상깊게 읽어볼 수 있었다.
  • 또, 기존에는 종이책으로 주로 읽었지만 이번 책은 e-book으로 신청해서 읽었는데 지하철이나 이동중에 핸드폰만 있어도 잠깐씩 볼 수 있다는 점이 좋았다.

클라우드 제품군별 챕터

실용적인 접근 방식을 통해 “Practical MLOps”는 MLOps를 실제로 구현하고 적용하는 방법에 초점을 맞추고 있는 점이 좋았으며, 데이터 관리, 모델 훈련, 모델 배포, 모델 모니터링 등의 주제를 다루며, 이를 위한 도구와 기술에 대해 자세히 설명하고 AutoML뿐만 아니라 주로 사용되는 클라우드 제품군 별(AWS, Azure, GCP)로 설명을 제공한다는 점도 인상적이었다.

참고로 이 책에서 챕터별로 소개하는 클라우드 서비스는 아래 3가지다.

  1. Amazon Web Services (AWS): AWS는 대규모 클라우드 컴퓨팅 서비스를 제공하며 EC2, S3, Lambda, SageMaker 등 다양한 서비스를 제공하고 있다.
  2. Microsoft Azure: Azure는 마이크로소프트가 제공하는 클라우드 컴퓨팅 서비스로 Virtual Machines, Blob Storage, Azure Kubernetes Service, Azure Machine Learning 등 다양한 서비스를 제공하고 있다.
  3. Google Cloud Platform (GCP): GCP는 구글이 제공하는 클라우드 컴퓨팅 서비스로 Compute Engine, Cloud Storage, Kubernetes Engine, AI Platform 등 다양한 서비스를 제공하고 있다.

생각해 보기

이 책은 MLOps의 다양한 측면을 다루고 있으며, 데이터 관리, 모델 개발과 배포, 모니터링 및 유지보수 등에 대한 상세한 가이드를 제공한다. 또, 가이드 뿐만 아니라 중간중간 연습해 보기와 생각해 보기를 제공하고 있는데 해당 챕터를 통해 아래와 같은 고민해볼만한 질문을 던져주는 점이 좋다.

2025년이나 2035년에는 머신러닝의 어떤 요소가 완전히 자동화되어 있고, 어떤 요소가 여전히 사람의 도움을 필요로 하고 있을까?

하드웨어부터 운영체제 프레임워크까지 모든 기술 스택에 대하여 수직계열화 전략을 펼치는 거대 IT 기업들이 어떤 기업들과 긍정적인 시너지를 낼 수 있을까?

머신러닝의 데이터 전처리 및 피쳐 추출, 하이퍼파라미터 튜닝, 모델 선택 등의 요소를 어떻게 자동화 할지? 머신러닝 모델의 설계 및 개발, 데이터의 품질 관리, 모델의 성능 평가 및 해석 등을 잘하기 위해서는 어떤 고민을 해야할지? 머신러닝 알고리즘 자체의 한계나 예외 상황에 대처하기 위해 어떤 개선을 해야할지 등을 고민하게 해준다.

MLOps에서의 중요한 과제

MLOps에서 발생하는 어려움에 대한 중요한 과제를 언급하고 있으며 대표적인 도전 과제로 윤리적 문제와 의도치 않은 결과, 운영 능력의 부족, 예측 정확도와 성능 목표 사이의 균형에 대해 제시한다. 머신러닝 시스템의 실제 운영에서 유지보수 비용이 막대하게 발생하는 것이 일반적이며, “Hidden Technical Debt in Machine Learning Systems” 논문을 추가자료로 추천하여 더 고민해 볼 것을 제시한다.

MLOps 최종 프로젝트 체크리스트

최종 프로젝트 체크리스트를 참고하여 MLOps를 운영하고 준비하는데 활용해 볼 수 있도록 예시를 제시해준 점도 좋다.

  • 최종 프로젝트 체크리스트의 예시
    • 머신러닝 예측/추론이 수행되는가?
    • 별도의 환경이 있는가?
    • 포괄적인 모니터링과 경고가 있는가?
    • 올바른 데이터스토어가 사용되었는가? (관계형, 그래프, 키/값 등)
    • 최소 권한 원칙이 적용되었는가?
    • 데이터가 이동 및 저장 중에 암호화되었는가?
    • 성능 검증을 위해 응용 프로그램을 테스트했는가?

소프트스킬에 대한 조언

IT 기술 분야는 하드스킬뿐만 아니라 배우는 소프트스킬도 중요한데 마지막 부분에 있는 조언 또한 인상적이었다.

  • 소프트웨어 관련 직업은 끊임없이 학습하고 숙련되어야 한다.
  • 학습하는 과정은 고통을 받고, 실수를 허용하는 과정이다.
  • 회사에서는 모든 사항을 제공하기 어렵기 때문에 개인적으로 학습 방법과 시간을 확보해야 한다.
  • 업무 시간 중 20% 정도를 학습에 할애하는 것이 권장된다.

또 운영과정에서는 실패를 자주 마주할 수 밖에 없는데 학습하는 과정이 고통을 받고 실수를 허용하는 과정이라는 점에서 마음의 위로가 되기도 했다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 도서를 제공받아 작성했습니다.