호돌찌의 AI 연구소
728x90
article thumbnail
[패스트캠퍼스 챌린지 21일차] Model Monitoring 개념
AI/MLOps 2022. 2. 13. 17:05

서빙 이후에 Inference가 잘 진행이 되고 있는지, Test data가 가정한 분포에 맞게 잘 들어오고 있는지 등등을 점검하는 부분인 모델 모니터링에 대해 알아보겠습니다. 1. Motivation model을 품은 서버를 잘 배포했다고 가정을 했을 때 또 다른 벽을 마주하게 됩니다. 모델이 떠있는 inference 서버, 그 서버가 떠있는 Kubernetes 클러스터가 24시간 동안 100% 잘 돌아간다고 생각을 할 수 있을까요? 굉장히 ideal한 예시로 비트코인 예측 모델을 구축을 했다고 가정하겠습니다. 이 모델을 flask로 감싸서, minikube cluster에 배포를 했다고 가정하겠습니다. 그리고 가진 재산을 넣고 수행한다고 가정하겠습니다. 다음과 같은 이슈를 한번 생긴다고 가정해보겠습니..

article thumbnail
[패스트캠퍼스 챌린지 20일차] Seldon Core
AI/MLOps 2022. 2. 12. 17:44

우선적으로 appendix, prerequisite 개념으로 쿠버네티스 관련 사전 지식이 필요합니다. 아래 레퍼런스들을 익히고 보는 것이 좋습니다. 익숙하지 않다면 사용 방식에 대해 익히고 넘어가고, 이전 글에서 flask와의 차이 정도만 느끼면 좋을 것 같습니다. 0. Appendix - Custom Resource(CR) : 쿠버네티스에서 default로 관리하지는 않지만, 배포된 Custom Controller에 의해 쿠버네티스에서 관리되고 있는 리소스들이라고 할 수 있습니다. https://kubernetes.io/ko/docs/concepts/extend-kubernetes/api-extension/custom-resources/ 커스텀 리소스 커스텀 리소스 는 쿠버네티스 API의 익스텐션이다...

article thumbnail
[패스트캠퍼스 챌린지 19일차] Flask
AI/MLOps 2022. 2. 11. 20:33

1. Flask 정의 The python micro framework for building web applications - https://github.com/pallets/flask Micro Service Architecture(MSA)를 위한 Web App Framework입니다. 웹 앱 프레임워크는 말 그대로 웹 서비스 개발을 위한 프레임워크라고 생각하면 됩니다. Django 등 다른 framework에 비해 가볍고 확장성, 유연성이 뛰어난 프레임워크가 Flask입니다. 여기서는 간단한 기능을 가볍게 구현하기에 적합하기 때문에 대부분의 ML Model의 첫 배포 Step으로 Flask를 애용합니다. 2. Flask Install python 3.6이상, pip3가 갖춰진 가상환경에서 수행하였습니..

article thumbnail
[패스트캠퍼스 챌린지 18일차] Model Serving 개념
AI/MLOps 2022. 2. 10. 19:05

AI를 도입하는 회사는 문제 정의부터 모델 학습까지는 무탈하게 진행할 수 있지만, 돈을 벌기 위한 서비스화하는 부분에서 큰 장벽에 부딪히게 됩니다. 여기에 대해서 논의를 해보겠습니다. 1. ML Model 서비스화 = Model Serving "서비스화"는 serving, deployment 등과 같은 의미로 생각하면 됩니다. 사용자가 코드를 직접 보거나 돌려보는 것이 아닌, 사용자가 특정 방식으로 인풋 데이터를 전달해주면 서버에서 Inference를 수행해 Input data의 결과를 "어떠한 방식"으로 전달해주는 것 입니다. 2. 서비스 제공 방식 "어떠한 방식"으로 전달하느냐에 대한 것은 무궁무진한 형태를 뜻합니다. 예시를 적어보면 아래와 같습니다. - 챗봇과의 대화 - HTTP API Reques..

article thumbnail
[패스트캠퍼스 챌린지 17일차] MLflow 튜토리얼 (2)
AI/MLOps 2022. 2. 9. 18:59

이전 글에서는 모델과 실험 트래킹 기능에 집중을 해보았습니다. mlflow Tutorial 두 번째 글은 mlflow에 조금 더 친숙해지기 위해 logging 관련된 내용, 그리고 다른 예시 내용입니다. 1. 샘플 코드 살펴보기 - Automatic Logging utils.py, pipeline.py를 wget으로 다운을 받습니다. https://github.com/mlflow/mlflow/tree/master/examples/sklearn_autolog GitHub - mlflow/mlflow: Open source platform for the machine learning lifecycle Open source platform for the machine learning lifecycle - Gi..

article thumbnail
[패스트캠퍼스 챌린지 16일차] MLflow 튜토리얼 (1)
AI/MLOps 2022. 2. 8. 19:14

MLflow를 한번 튜토리얼 개념으로 한번 다루어보도록 하겠습니다. 환경은 이전부터 쓰던 python 가상 환경 그대로 사용할 예정입니다. - ubuntu 20.04 - conda - python 3.8.6 - pip3 1. 설치 설치방법은 상당히 간단합니다. mlflow-tutorial이라는 폴더 생성 후 이용하겠습니다. mkdir mlflow-tutorial cd mlflow-tutorial # conda 가상환경 세팅 # python 버전 확인 python -V pip install mlflow==1.20.2 mlflow --version # mlflow, version 1.20.2 2. MLflow tracking server 띄우기 아래 명령어처럼 help를 이용하면 여러 옵션이 있습니다. UI..

article thumbnail
[패스트캠퍼스 챌린지 15일차] Model Management 개념
AI/MLOps 2022. 2. 7. 21:40

Data Management에 대한 개념과 실습을 짚어보았습니다. 이제는 모델입니다. 1. Motivation 보통 분석가들, ML Engineer, DS 분들은 특정 데이터에 대해 어떤 모델을 계속 발전시키면서 prediction 값을 얻는 과정들을 반복합니다. 시계열 데이터를 예를 들면, rawdata에 맞는 가장 좋은 모델을 만들기 위해 rawdata를 여러 전처리 방법을 적용해 바꾸어보고, 모델(선형회귀, rnn, lstm, gru 등)도 바꾸어도 보고, 각각의 모델에 대한 hidden layer 수나 window등을 바꾸어가면서 학습을 해보고, 가장 좋은 성능을 내는 모델을 최종 선택을 합니다. 이러한 cycle을 수십수백 번 반복을 하는데 그 과정에서 코드와 metric만 가지고 있을 수 없습..

article thumbnail
[패스트캠퍼스 챌린지 14일차] DVC Tutorial
AI/MLOps 2022. 2. 6. 17:58

이번 글은 DVC를 한번 해볼 생각입니다. Git이랑 상당히 유사하기 때문에 편하게 이해하실 수 있을 것 같습니다. 환경과 확인 명령어은 다음과 같습니다. - python 3.9.7 (python -V) - git version 2.25.1 (sudo apt install git 후 git --version) - dvc 2.6.4 (pip install dvc[all]==2.6.4 후 dvc --version) [all]은 dvc 의 remote storage로 s3, gs, azure, ssh 모두를 사용할 수 있도록 관련 패키지를 함께 설치하는 옵션입니다. 그럼 시작해보겠습니다. 1. dvc 저장소 세팅 - dv-tutorial이라는 폴더를 생성합니다. 그 후 이동합니다. - 해당 디렉토리를 git ..

article thumbnail
[패스트캠퍼스 챌린지 13일차] DataManagement 개념
AI/MLOps 2022. 2. 5. 20:39

쿠버네티스의 리소스 시리즈가 끝나고 이제부터 MLOps에서 데이터 관리, 모델 관리, 모델 서빙, 모델 모니터링 관련 오픈소스들을 소개하고자 합니다. 간단히 개념을 짚고 그것과 관련된 오픈소스들 소개 및 실습하는 글로 당분간 이어갈 생각입니다. 1. 데이터 관리 필요성 보통 Rawdata를 기점으로 해서 모델링을 하기 까지 많은 버전의 데이터가 생성됩니다. 만약에 시계열 데이터가 Rawdata라고 가정을 해보겠습니다. 일정 시간의 Moving average를 적용하는 경우가 상당히 많습니다. 예를 들면 15분, 30분, 1시간, 4시간, 12시간, 1일, 1주, 1개월 등등에 해당될 것 입니다. 그렇다면 이러한 이동평균 데이터들을 만들어서 실험을 하게 될 것입니다. 여기에 Feature Engineeri..

article thumbnail
[패스트캠퍼스 챌린지 12일차] Service & PVC
AI/MLOps 2022. 2. 4. 19:03

쿠버네티스 리소스 마지막으로 다룰 예정입니다. Service와 PVC인데요. 각각 다루어보겠습니다. 1. Service의 정의 Service는 쿠버네티스에 배포한 application(Pod)를 외부에서 접근하기 쉽게 추상화한 리소스입니다. Pod는 IP를 할당받고 생성되지만, 언제든지 죽었다가 살아날 수 있으며, 그 과정에서 IP는 항상 재할당을 받게 됩니다. 여기서 문제는 고정된 IP로 원하는 Pod에 접근을 할 수 없다는 점입니다. 따라서 클러스터 외부 혹은 내부에서 Pod에 접근할 때, Pod의 IP가 아닌 Service를 통해 접근하는 방식을 거칩니다. Service는 고정된 IP를 가지며, 하나 혹은 여러 개의 Pod와 매칭 하게 되며 클라이언트가 Service의 주소로 접근하면, 실제로는 S..