[MLOps] 머신러닝 프로젝트 라이프 사이클

hyunsooo·2022년 11월 9일
0

머신러닝 프로젝트 Flow

문제정의의 중요성

우리 삶의 대부분의 현상과 상황은 어떠한 문제로 정의할 수 있다.
문제를 정의하는 것은 어떤 특정 현상을 파악하고 이 현상속에서 발견한 특징을 정의하는 과정을 의미한다. 따라서 어떤 문제를 잘 해결하기 위해서는 문제를 정의하는 과정이 매우 중요하다. 문제 정의가 명확하지 않는 경우 무엇을 해야할지 결정하기 어려워질 수 있다. 예를들어 "사람들을 행복하게 만들고 싶다"라는 하나의 문제는 다소 난해할 수 있다. 구체적 대상이나 행복의 구체적 정의 등과 같이 여러가지 요소를 조금 더 구체적으로 정의할 수록 문제해결이 수월해지게 된다.

프로젝트 Flow

  • 현상 파악

    • 어떤 일이 발생하고 있는가?
    • 해당 일에서 어려움은 무엇인가?
    • 해당 일을 해결하면 얻는 이점은 무엇인가?
  • 목적, 문제 정의 및 구체화

    • 무엇을 해결하고 싶은가?
    • 무엇을 알고 싶은가?
    • 문제를 쪼개서 분석하고 어떤 어려움을 겪고 있는지 파악
    • 데이터로 할 수 있는 일을 만들어서 진행하되 무조건 알고리즘 접근이 최상은 아니라는 방법을 제시할 수 있어야 함(간단한 방법부터 점진적 접근필요)
  • 프로젝트 설계

    • 문제 정의
    • 최적화할 Metric 선택
    • 데이터 수집, 레이블 확인
    • 모델 개발
    • 모델 예측 결과를 토대로 Error Analysis
    • Error를 토대로 다시 모델 학습 또는 최신 데이터를 토대로 재학습
    • 이런 과정의 반복으로 이루어져 있기 때문에 문제 정의 후 프로젝트 설계를 최대한 구체적으로 해야한다.
    • 머신러닝 문제 타당성 확인(머신러닝이 사용되면 좋을지 안좋을지 확인)
    • 큰 목표(Goal)와 세부 목표(Objectives) 및 지표 결정
    • 제약 조건(개인정보, 레거시 환경 등) 확인
    • 베이스라인 및 프로토타입 설계(voila, streamlit, gradio)
    • Metric Evaluation, 모델의 성능 지표와 별개로 비즈니스 목표에 영향도 파악(모델의 성능 지표: RMSE, 비즈니스 지표: 매출 등)
  • Action

    • 모델 개발 후 배포 및 모니터링
    • 정의한 지표가 어떻게 변하는지 파악하기
    • 잘못 예측이 되는게 있는지, 있다면 어떤 Feature와 연관이 있는지 파악
  • 추가 원인 분석
    • 새롭게 발견한 상황을 파악해 어떤 방식으로 문제를 해결할지 모색하고 위의 과정을 반복한다.

비즈니스 모델

현장에서 업무할 때 중요한 것이 무엇인지 알아야 한다. 회사에서 가장 중요한 것은 비즈니스라고 볼 수 있다. 회사는 비즈니스 모델을 만들고 이를 통해 매출이 발생하기 때문에 비즈니스의 이해도가 높을 수록 문제 정의를 잘 할 가능성이 높다.

  • 회사의 비즈니스 파악하기
    • Use case를 활용하여 접목하거나 활용할 수 있는지 파악하기
  • 데이터를 활용할 수 있는 부분은 어디인가(Input)?
    • 데이터로 무엇을 할 수 있을까?
    • 데이터의 신뢰성, 정합성, 레이블 등 확인하기
    • 무엇 보다 왜 해야하는가도 중요한 요소이다.
  • 모델을 활용한다고 하면 예측의 결과가 어떻게 활용되는가(Output)?
    • 수동으로 진행해야 하는 업무를 자동화
    • 고객에게 바로 노출하여 더 좋은 가치를 제공하거나 매출증대
    • 위와 같은 이점을 활용하여 비즈니스 모델을 활용할 수 있다.
profile
CS | ML | DL

0개의 댓글