출처 : https://ml-ops.org/content/phase-zero
ML의 work flow에서는 input에서 output으로 나오기까지 다양한 sub task들이 나오게 된다.
이때 AI/ML에서는 다음과 같은 step으로 진행이 되게 된다.
- Process에 대한 정의와 AI/ML이 필요한지.
- Process를 Decmopose해서 sub task를 만듦.
- task에 대한 human level에 대해서 정의
- AI/ML이 걸리는 시간 측정
- task에 대한 우선순위 정의
- 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을 따라서 지속적인 평가가 필요하다.
- 그렇다면 매번 학습 때마다 다시 offline을 evalutation을 하는 건 문제가 됨으로 live로 평가를 진행을 해야 되고 일반적으로 S.M.A.R.T(Specific, Measurable, Achievable, Relevant,
지속 가능하게 AI/ML을 유지해야 되며 real world에서 나오는 문제들에 대응을 해야 되는 ML-software을 만들어야 된다.
'공부 > MLops' 카테고리의 다른 글
[MLops Study] Motivation for MLops (0) | 2022.04.12 |
---|---|
[MLOps Study] 개인적인 공부 노트 (0) | 2022.04.11 |