출처 : https://ml-ops.org/content/phase-zero

ML의 work flow에서는 input에서 output으로 나오기까지 다양한 sub task들이 나오게 된다.

이때 AI/ML에서는 다음과 같은 step으로 진행이 되게 된다.

  1. Process에 대한 정의와 AI/ML이 필요한지.
  2. Process를 Decmopose해서 sub task를 만듦.
  3. task에 대한 human level에 대해서 정의
  4. AI/ML이 걸리는 시간 측정
  5. task에 대한 우선순위 정의
  6. AI canverse와 ML canverse에 따라서 학습이나 work flow 만들기 시작

이때 AI canverse와 ML canverse가 무엇일까?

AI Canverse

일반적으로 우리가 아는 AI model에서 학습이 되는 흐름이라고 이해하면 될 것 같다.

input을 주고 training을 하고 그때 backporb을 하는 과정 최종적으로 prediction까지 하는 과정이라고 보면 된다.

2018에 이러한 용어가 정의가 되었다 보니 많은 자료가 쌓여있지 않다.

ML Canverse

AI는 좀 더 high level인 반면에 ML canverse는 오래되었던 system이다. task를 선정해서 data를 모으고 학습하고 그리고 featutres를 뽑는 등 DL을 하기 위해서 많은 과정들이 다 포함이 되어있다.

큰 카테고리로 분류를 한다면 Value Proposition, Data Sources, Prediction Task, Features (Engineering), Offline Evaluation, Decisions, Making Predictions, Collecting Data, Building Models, and Live Evaluation and Monitoring로 구성이 되어있다

  • value proportion
    • 해당 Task가 얼마나 가치가 있는지 확인하는 문제로 어떤 문제가 중요한지. 그리고 최종적으로 end-user가 누구인지 정하는 과정이다.
    • 영상처리로 예로 든다면 의사가 사용할 건지.. 고객이 사용할껀지 산업에서 사용이 될 건지를 의미한다.
  • Data Sources
    • 데이터를 모으는 방법인데 이는 Internal/externa 하게 모을 수도 있고 Hadoop, Web scraping, ML system이나 kaggle,Grand challenge나 다양한 경로에서 모을수 있다.
    • 또한 데이터를 모으는 비용이나 구매하는 값, 라이선스는 있는지 등 여러 hidden cost도 따져보아야 한다.
  • Prediction task
    • 이러한 데이터가 모으면 어떤 방식들로 문제를 해결하는지 전략을 만들어야 된다.
    • Un or Supervised, anomaly detection, recommentation, regression, classification, clustering, ranking, multiclass classification, etc,, 해당 task에 알맞은 방식을 찾아야 된다.
  • Feature(Engineering)
    • 방법을 찾았으면 DL모델을 학습을 하거나 고전 ML을 사용해서 feature를 뽑아낸다.
    • 현업에서 자주 사용되는 구간이지 싶다.
  • Offline Evalutaion
    • 해당 featuer이 나오면 어떤 방식이 최적인지 찾아야 된다.
    • Domain specific 한 부분이면 그 특정한 matric을 사용해서 찾아야 되고 Precsion, recall, F1, Accuracy 등 다양한 방식으로 확인을 해야 된다.
    • 해당 task에 대한 FP, FN은 어떻게 정의가 되는지 확인을 하고 test data에 적용을 해서 optimal 한 ML 모델을 찾기도 해야 된다.
  • Decisions
    • 이러한 ML task가 끝나면 end user가 원하는 model이나 prediction을 보고 선택을 하고 hidden cost까지 고려해서 최종 model을 결정한다.

앞의 방식까지는 일반적으로 사용되고 흔히 DL을 사용해보았으면 아는 내용이다.

이 이후에 대해서는 앞으로 새롭게 product단위 헤서 해당되는 문제로 판단이 된다.

  • Making predictions
    • 새로운 input이 들어왔을 때 모델이 어떻게 output이 나올 건지에 대한 부분이다.
    • 매일 새로운 recommendataion을 줄 건지 batch로 Input을 넣으면 어떻게 되는지
    • 모델 inference시 얼마나 계산이 complex 한 지 등등 다양한 문제들에 대응을 어떻게 되는지 결정해야 된다.
  • Collecting Data
    • 앞의 문제를 대응하기 위해서 새로운 data를 계속적으로 모으게 되는데 이때 새로운 데이터에 대해서는 어떻게 label을 하며 어떻게 모으고 가격은 그리고 maual 하게 data cleaning 등 다양한 의문점이 생긴다.
  • Builing models
    • 이렇게 모은 새로운 데이터들로 다시 재학습을 시킨다.
    • 이러한 학습을 얼마나 주기적으로 하는지 새롭게 학습을 하게 되면 드는 비용과 그리고 hardware의 조건 cloud를 사용하면 비용.. 등 다양한 문제가 요구된다.
  • Live Evalutaions and Monitoring
    • 그렇다면 매번 학습 때마다 다시 offline을 evalutation을 하는 건 문제가 됨으로 live로 평가를 진행을 해야 되고 일반적으로 S.M.A.R.T(Specific, Measurable, Achievable, Relevant,
      and Time-bound)의 metric을 따라서 지속적인 평가가 필요하다.

지속 가능하게 AI/ML을 유지해야 되며 real world에서 나오는 문제들에 대응을 해야 되는 ML-software을 만들어야 된다.

반응형

'공부 > MLops' 카테고리의 다른 글

[MLops Study] Motivation for MLops  (0) 2022.04.12
[MLOps Study] 개인적인 공부 노트  (0) 2022.04.11

+ Recent posts