로컬 컴퓨터나 서버 인스턴스 등에서 실행
고정된 데이터를 사용해 학습
웹, 앱 서비스에 활용할 수 있게 만드는 과정
모델의 결과값이 이상한 경우 원인 파악이 필요
모델 성능이 계속해서 변경
새로운 모델 or Production 환경에서 성능이 떨어짐
ML(Machine Learning) + Ops(Operations)
머신러닝 모델을 운영하면서 반복적인 업무를 자동화시키는 과정
모델링에 집중할 수 있도록 인프라를 구축하는 것
머신러닝 엔지니어링 + 데이터 엔지니어링 + 클라우드 + 인프라
핵심 목표 : 머신 러닝 모델 개발(ML Dev)과 운영(Ops)에서 발생하는 반복 작업이나 문제점을 최소화하여 비즈니스 가치를 창출하는 것
빠른 시간 내에 가장 적은 위험을 부담하며 아이디어 단계부터 Production 단계까지 ML 프로젝트를 진행할 수 있도록 기술적 마찰을 줄이는 것
회사 비즈니스 상황 및 모델 운영 상황에 따라 Component에 대한 우선 순위가 달라짐
처음부터 활용하기 보다는 작은 단위의 MVP(Minimal Value Product)로 시작하다가 운영 리소스가 많이 소요될 때 부터 하나씩 구축하는 방식 추천
예상하는 트래픽
서버의 CPU, Memory 등 물리적, 시스템 적 성능
Scale Up 및 Scale Out이 가능한가?
어떻게 모델을 배포할 것인가
Research에서는 로컬 GPU나 Colab 등을 활용하지만, 모델 배포를 위한 GPU는 매우 용량이 크며 많이 필요함
주로 클라우드 GPU를 활용하여 임대를 통해 Proudction을 수행
모델을 User가 활용할 수 있도록 제공
Batch Serving : 특정 기간을 주기로 Product Serving 수행
Online Serving : 실시간으로 Product Serving 수행
예시
Parameter, 모델 구조 등을 기록해 놓는 것
ML Modeling에서는 많은 실험을 하는데, 모든 실험이 "어떻게" 수행되었는지 알아야 함
모델 Artifact, 이미지 등을 제공
이외에도 모델 생성일, 모델 성능, Meta Data 등을 기록해 놓을 수 있음
누락될 수 있는 데이터가 발생할 수 있는데, 이런 누락 데이터를 없애기 위해 매우 중요한 Component
Modeling에서 반복되는 특징이나 절차를 미리 저장하여 활용할 때마다 저장한 데이터 or Algorithm 등을 불러와 활용하는 것
머신러닝 Feature를 집계한 Feature Store에서데이터를 불러옴
데이터 전처리 등에 소요되는 시간을 매우 줄일 수 있음
Feature Store를 "어디에" 배치될지를 지정해 놓아야함
ML(DL) 보다는 정형 데이터(Tableau)에 많이 활용되는 추세
FEAST : Feature Store에 관한 라이브러리
Research와 Production에서 Feature의 분포를 확인해야할 필요가 있음
Data Drift, Model Drift, Concept Drift
학습을 (Product 이후에도) 계속해서 수행하는 것
재학습 기간 선택 Option
모델의 지표(Metric), 인프라의 성능 지표 등을 잘 기록해야 함
트래픽이 많은 시간이나 구간, 활용 빈도수 등을 확인하여 Production 성능 향상에 도움을 줄 수 있음