무료로 쿠버네티스 쉽게 계속 사용하기(GKE)
·
MLOps
쿠버네티스 클러스터를 구축하는 방법은 여러 가지가 있다. 사용하고 있는 노트북 혹은 데스크톱의 CPU와 Memory가 충분하다면 로컬에 Docker Desktop을 이용하면 손쉽게 쿠버네티스 클러스터를 구축할 수 있다. 나는 로컬에 구축할 수 있다면 로컬에 올라간 클러스터를 사용하는 게 제일 간편하다고 생각한다. 하지만 나는 리소스가 충분하지 않았었다. 취업을 준비할 때 많은 기업에서 쿠버네티스를 사용한다고 하여 경쟁력을 높이기 위해 쿠버네티스를 공부하고자 했었지만 구축이 제일 큰 산이였었다. 집에 놀고 있던 데스크탑에 메모리를 추가로 구매해 서버로서 쿠버네티스를 구축하기도 하고 사용하던 노트북에 쿠버네티스를 구축하려고도 했지만 쉽지 않았다. 그러던 중 GCP에서 제공하는 GKE라는 서비스를 알게 되었고..
Github Actions 찍먹
·
MLOps
Github Actions는 Github에서 제공하는 CI / CD를 위한 툴이다. CI : Continous Integration(지속적 통합) CD: Continous Delivery or Continous Deploy(지속적 배포) 사용자의 피드백을 빠르게 적용하기 위해서 많은 수의 배포가 빠르게 진행되어야 한다. 이는 곧 서비스의 경쟁력이 되기 때문이다. 한 번의 코드 변화로부터 사용자에게 전달되기까지 모든 과정이 수동으로 이루어진다면 많은 시간이 걸릴 것이다. CI / CD는 그 과정을 자동화하는 것이라고 생각한다. 쉽게 예를 들어 CI / CD를 구분해보자. CI : 소스코드의 변경에 따른 도커 이미지의 빌드 및 푸시 CD : 변경된 도커 이미지를 바탕으로 쿠버네티스의 리소스 업데이트 위 그림..
ArgoCD와 Github Actions를 이용한 머신러닝 모델 CI / CD 파이프라인
·
MLOps
안녕하세요~~ 오늘 작성해볼 내용은 머신러닝 모델을 위한 CI / CD 파이프라인입니다. CI는 Continous Integration CD는 Continous Deploy 혹은 Continuous Delivery 이는 사람마다 해석이 조금씩 다른 거 같습니다. 뭐 굳이 나누나 싶긴 한데 저는 CI는 배포 전까지의 모든 단계를 이야기하고 CD는 배포하는 단계로 정의하고 글을 작성하겠습니다.. 그리고 CI / CD가 뭐야?라고 누군가 저에게 물어보면 저는 "자동화하는 거요..."라고 대답할 거 같습니다. 머신러닝 관점에서 CI / CD를 한다는 것은 모델러가 코드를 Github에 업로드했을 때 모든 과정이 자동화되어 사용자에게 전달되게 끔 하는 것이라고 생각합니다. 이는 비즈니스의 성격과 모델의 성격에 따..
BentoML의 0.13.1 버전과 1.0.7 버전 성능 비교
·
MLOps
BentoML 0.13.1 1. 모델 학습 꽃 품종 데이터셋인 Iris 데이터를 분류하기 위한 SVM 모델을 학습한다. Scikit-learn을 통해 데이터셋을 불러오고 모델학습까지 손쉽게 할 수 있다. 그리고 모델을 pickle로 저장한다. # train.py from sklearn import svm from sklearn import datasets import pickle ​ # Load training data iris = datasets.load_iris() X, y = iris.data, iris.target ​ # Model Training clf = svm.SVC(gamma='scale') clf.fit(X, y) ​ with open("model.pkl", 'wb') as f: pick..
Airflow로 MNIST 학습 파이프라인 실행하기
·
MLOps
목차 들어가며 소스파일 정의 및 설명 데이터 로드: data_load.py 모델 학습: train.py 모델 평가: evaluate.py Dags 작성: main.py Workflow 실행 및 결과 확인 들어가며 Airflow는 워크플로 관리 툴이다. 데이터 엔지니어링에서 주로 사용되지만 범용성이 좋아 학습 파이프라인에서 사용되기도 한다. MNiST 학습을 위한 파이프라인을 Airflow를 통해 작성해보자. 여기서 정의할 학습 파이프라인은 간단히 3개의 Task로 구분하였다. 데이터 로드 모델 학습 모델 평가 각 Task는 아래와 같은 의존성을 가진다. 이를 구현하기 위해 4개의 파일이 필요하다. . ├── main.py ├── data_load.py ├── train.py └── evaluate.py ..
Terraform으로 GCP에서 Kubernetes 환경 구축하기
·
MLOps
GCP의 Free Tier는 90일간 300불을 사용할 수 있다. 300불은 GKE를 구성한다면 한 20일 정도면 크레딧을 모두 사용하게된다. 따라서 구글 게정을 새로 생성하고 GKE를 구성하는 것은 공부하는 입장에서 반복적인 일이 되곤한다.. 따라서 Terraform을 이용해 이 과정을 자동화하였다. 아래의 자료는 복잡하고 길지만 실제로 GKE 클러스터를 생성하고 클러스터에 ArgoCD를 설치하기 까지의 과정은 간단하다. Quick Start 1. 1단계 수행 - GCP 프로젝트 생성 2. 레포지토리 clone git clone https://github.com/Ssuwani/provision-gke-with-terraform 3. project_id 입력 in terraform-provision-gk..
Kubeflow 1.4 설치 with Minikube
·
MLOps
Ubuntu 20.04가 설치되어 있는 데스크탑에 Kubeflow 1.4 설치하는 방법을 정리하려고 해요. docker, minikube, kubectl, kustomize는 설치방법이 정말 많이 나와있으니 적절히 설치 후에 과정을 진행해주세요. 제 PC에 설치된 스펙은 다음과 같습니다. Docker: 20.10.10 minikube: 1.21.0 kubectl: 1.21.7 kustomize: 3.2.0 (4.0 이상은 kubeflow 설치에 지원안된다고 공식 문서에 나와잇습니다) 목차 Minikube로 Kubernetes Cluster 구성하기 Kubeflow 1.4 설치 1. Minikube로 Kubernetes Cluster 구성하기 Minikube가 설치되어 있다면 쿠버네티스 클러스터 만들기는 ..
[MLOps] Vertex AI에서 MNIST 학습, 배포, 서빙
·
MLOps
조대협님의 블로그를 참고했습니다! 감사합니다. https://bcho.tistory.com/1383 구글에서 제공하는 통합 머신러닝 플랫폼인 Vertex AI를 이용해서 MNIST 데이터를 학습하고 모델을 배포하고 Endpoint를 생성해 서빙하는 것까지 실습해보겠습니다! 목차 train.py 파일 만들기 도커 컨테이너로 패키징하기 Vertex AI에 Train JOB 생성하기 배포 및 서빙 Test 1. train.py 파일 만들기 moist 데이터를 불러와서 간단한 Linear 모델을 만들고 모델 학습 및 저장하는 코드이다. 여기서 주의깊게 봐야할 곳은 마지막에 있는 model.save 부분이다. GCS의 bucket으로 경로가 되어있는 것을 볼 수 있다. GCS의 버킷의 region은 us-cent..