Notice

Note: Oreilly Practical MLOps 를 참고하였습니다

Introduction to MLOps

Introduction to MLOps 포스트를 보고 난 뒤 다음과 같은 질문에 대답할 수 있습니다.

Note

Notes

  1. Continuous Integration system 이 해결할 수 있는 문제
  2. CI system 이 SaaS software, ML system 에서 중요한 역할
  3. Deep Learning 이 Cloud 에서 얻을 수 있는 이점
  4. DevOps 가 어떻게 ML Engineering proeject 를 enhance 할 수 있는지

What is MLOps?

현재 ML system 이 가지고 있는 문제점

  1. Focus on Code and technical details
  2. 대부분의 ML 모델들은 non-scalable 하며 not cloud-native 하다 ( Most of them are for academic use )

Q. 문제를 풀 수 있는 해결책은 존재한다. 하지만 실제 세상에서는 사용할 수 없는 이유가 무엇일까??

A. Model 이 production 단으로 이동하기 위해 MLOps 가 필요하다


DevOps and MLOps

자동화되지 않는 시스템은 무너진다

위의 인용구처럼 MLOps 시스템에서는 사람이 lever 가 되어 machine 을 움직이는 일이 없어야 한다. MLOps 는 DevOps 생태계 위에 Machine learning 시스템이 세워지는 것이다. 이를 위해 먼저 DevOps component 를 알아보자.

Devops 란 빠른 속도로 high-quality software 를 배포하는 기술적인 관리 툴이다.

Continuous Integration (CI)

  • Process of continuously testing a software and improving the quality based on these tests’ results
  • For example, Github Actions - Automated testing using a build server

Continuous Delivery (CD)

  • 코드를 사람의 개입 없이 new environment 로 전달하는 방법 (보통 IaC 를 많이 사용)

Microservices

  • Microservice 는 dependency 가 없거나 적은 독단적 기능을 하는 software.
  • Python 에서는 Flask 가 유명한데 ML prediction 이 microservice 에 알맞은 형태이다.

Infrastructure as Code (IaC)

Monitoring and Instrumentation

Effective Technical Communication

Effective Technical Project Management

CI/CD 는 DevOps 에서 가장 중요한 두 가지 요소이다. 요약하면

Notes

  1. Continuous Integration : Code 의 품질을 test 하여 확인한 뒤 source control repository 로 합치는 것
  2. Continuous Deploy : Code 의 변화를 자동적으로 감지하여 Staging environment 나 production 단으로 배포하는 것

ML Ops 는 이러한 DevOps system 에서 Machine learning 모델을 합친 것이다. 이 때 Data Versioning 이나 AutoML 같은 요소가 결합되어 DevOps 의 장점을 가져갈 수 있다.