Introduction to Machine Learning in Production - Week 1

realBro·2023년 12월 3일

Week 1: Overview of the ML Lifecycle and Deployment

The Machine Learning Project Lifecycle

Steps of an ML Project

Scoping

  • 프로젝트 정의 및 결정. 기계 학습을 어떤 문제에 적용할지, X(입력)와 Y(출력)가 무엇인지를 정합니다.

Data

  • 알고리즘에 필요한 데이터 수집 및 데이터 정의
  • 라벨링에 필요한 기준을 정하고 Label & Organize

Model Training

  • 모델 선택 및 훈련, 오류 분석 수행
  • ML은 오류 분석 과정에서 모델을 수정하거나 추가 데이터 수집이 필요할 수 있음
  • 시스템의 성능이 충분히 좋고 신뢰할 수 있는지 최종 점검을 수행

Deploy

  • Deploy는 전체 작업의 절반까지 왔다고 생각
  • 시스템을 배포하고, 필요한 소프트웨어 작성, 시스템 모니터링, 데이터 추적 및 유지 관리
  • 데이터 분포가 변경되면 모델을 업데이트를 할 수도 있음
  • 초기 배포 후, 더 많은 오류 분석을 수행하고 모델을 재훈련
  • 실시간 데이터를 사용하여 데이터셋을 업데이트하고 모델을 개선

Case study: speech recognition

  • 음성인식을 ML로 해결하려고 했을때, 어떤 시스템이 필요할지에 대한 내용

Scoping

  • 음성 인식에 대한 프로젝트를 정의
  • 주요 지표를 추정, 정확도, 지연 시간, 처리량 등을 고려
  • 리소스와 개발 시간을 예상

Data

  • 데이터 정의, 기준선 설정, 라벨링 및 구성.
  • 데이터의 일관된 라벨링이 중요하며, 오디오 클립을 어떻게 변환할지 결정
  • 데이터 라벨링에 대한 가이드 라인, 기준이 상당히 중요하다.
  • 추후 데이터를 어떻게 처리할것인지도 여기서 논의.

Modeling

  • Code(algorithm / Model), Hyperparameters, 데이터가 중요
  • 오류 분석을 통해 모델의 부족한 부분을 파악하고 데이터를 개선해야함.
  • 연구나 학교에서는 데이터를 고정하고 다른것들을 수정
  • product 환경에서는 코드를 고정하고 나머지를 수정하는게 효과적일 수 있음

Deployment

  • Edge Device에 소프트웨어를 배포
  • 배포된 시스템의 성능 모니터링 및 유지 관리
  • 데이터 분포에 적절한 대응을 하는것이 중요함(Concept / Data Draft 에 대응)

Deployment

Key Challenges

Concept Drift & Data Drift(ML/통계적 문제)

  • Concept Draft : x,y의 관계가 시간이 지남에 따라 달라짐
  • Data Draft : x의 분포가 시간이 지남에 따라 달라
  • 데이터의 변화는 점진적일 수도 있고 갑작스럽게 발생할 수도 있음.
  • 변화하는 데이터에 대해 어떻게 대응하는지가 중요

SW Engineering 문제

  • Realtime vs Batch에 대한 결정
  • Cloud vs Edge/Browser에 대한 결정
  • Compute resources(CPU/GPU/momory)
  • Latency, Throughput(QPS)
  • Logging
  • Security and Privacy

Deployment patterns

Common deployment cases

  • New Product/capability
  • Automate/assist with manual task
  • Replace previous ML system
    • A/B 테스트가 중요 with monitoring(Gradual ramp up)
    • 또한 Rollback에 대한 대응이 있어야함
  • Shadow Mode : 사람과 ML이 같이 진행
  • Canary : 점차 트랙픽을 늘림
  • Blue-green : Old -> New로 바로 혹은 점진적으로 전환, 그러나 동시에 운영함으로서 롤백에 빠르게 대응

Degrees of automation

  • 현재 시스템에 맞는 자동화 정도를 정하는것이 중요하다.

Monitoring

Dashboard

  • 가장 일반적인 방법
  • 서버의 부하나 비정상 출력이나 입력에 대한 그래프 등등

Examples of Metric to track

  • Software metric
    • Memory, compute, latency, throughput, server load
  • Input metric
    • Avg Input length
    • Avg input volume
    • Num missing values
    • Avg image brghtness
  • Output metrics
    • times return null
    • times user redoes search
    • times user switches to typing
    • CTR(Click-Though Rate)

Iterative deployment

  • 모델링도 반복하듯이, 배포도 반복되어야 한다.
  • 모니터링하며 실제 사용자의 데이터나 트래픽을 기반으로 선능을 분석하고 모델을 반복적으로 업데이트 해야함
  • 새로운 metric을 추가하거나 기존의 metric이 쓸모 없어 질수도 있으니 metric에 대한 고찰도 계속 해야함

Alert

  • Monitoring 시스템에서 특정 구간을 정하고 특정 구간을 벗어나는 데이터가 발생 할 시 알람을 주는 방식을 취해야함

Pipeline monitoring

  • AI 시스템은 모델 뿐만 아니라 여러 단계의 pipeline으로 이루어짐
    (ML과 무관한 단계 포함)
  • 각 구성 요소의 입출력 Metric을 모니터링 하면 데이터의 변화를 좀더 효과적으로 감지 할 수 있음

참고

0개의 댓글