MLOps

· MLOps
이 글은 https://cloud.google.com/bigquery/docs/create-machine-learning-model?hl=ko 의 내용을 수행한 기록입니다. 다수의 기업에서 GCP의 BigQuery를 데이터 웨어하우스 혹은 데이터 레이크로 채택하여 사용하고 있다. ML 프로젝트에선 이 데이터를 이용해서 모델을 학습하고 배포한다. 여기서 어디서 학습을 진행하느냐에 따라 데이터 전송 비용이 발생한다. 데이터 전송을 어떻게 하느냐에 따라 크고 작은 비용이 발생한다. 학습 시 추가로 필요한 증분 데이터만을 전달하는 게 좋겠지만 매 학습 때 마다 필요한 데이터를 전부 전송하기도 한다. 빅쿼리 ML은 사용자가 직접 SQL 쿼리를 통해 머신러닝 모델을 생성, 학습, 평가할 수 있는 서비스이다. 이제 ..
· MLOps
참고한 블로그 - https://medium.com/dkatalis/kubeflow-with-mlflow-702cf2ebf3bf 앞선 포스팅에서 Kubeflow를 설치했다. 그리고 MLflow도 설치했다. 이번 포스팅의 목적은 Kubeflow 대시보드에 MLFlow가 하나의 탭으로 추가하는 것이다. Kubeflow의 Central Dashboard에서 하나의 탭을 클릭할 때 다양한 엔드포인트로 라우팅 하기 위해 VirtualService를 사용한다. (주피터, Katib, pipeline 등) 우리의 목적은 mlflow 버튼을 클릭하면 mlflow tracker UI로 라우팅 해야 하므로 추가로 virtual service를 생성해야 한다. 아래 yaml을 배포하자. kubectl apply -f mlf..
· MLOps
먼저 Kubeflow는 이름에서도 유추할 수 있듯이 쿠버네티스 환경에서 동작하는 ML Platform이다. 쿠버네티스 환경이 필요하다. 로컬에 구축한 뒤 Kubeflow와 MLFlow를 설치해 보자. 1. 로컬 환경에 Kubernetes 설치 이를 위한 단계가 정말 간단한데, Docker Desktop을 설치하고 Kubernetes를 활성화해주면 된다. Mac 환경에 설치 Windows 환경에 설치 실행한 뒤 아래와 같은 단계만 수행하면 된다. 설정 -> Kubernetes -> Enable Kubernetes -> Apply & restart 왼쪽 아래에 쿠버네티스 이모지와 함께 초록색으로 표시되면 성공적으로 설치된 것이다. 2. Kubeflow 설치 먼저, Kubeflow를 설치하기 위해선 다음과 같..
· MLOps
kubeflow는 ML 프로젝트를 위한 End-to-End 플랫폼이다. 그러니까 A to Z까지 다 할 수 있다는 의미이다. 그럼에도 ML 프로젝트에서 중요한 머신러닝 모델 라이프사이클 관리 측면에선 MLFlow를 통해 쉽고 잘할 수 있다. 내가 생각하는 MLOps를 위한 최소한의 컴포넌트들은 아래와 같다. Model Registry를 위해 MLflow 를 사용할 것이고 그 외 모든 컴포넌트를 위해 Kubeflow를 사용할 것이다. 이를 위해 다음과 같은 포스팅을 이어 나갈까한다. 1. 로컬환경의 K8s에 Kubeflow와 MLflow 설치 2. Data Engineering 3. ML Engineering 4. ML Serving
· MLOps
1. Why mlflow 이 그림을 엄청 많이 봤다. 이 그림을 통해 보통 하고자 하는 말은 ML 시스템을 운영하기 위해 ML Code 이외에도 다양한 컴포넌트가 많다는 것이다. 하지만, 머신러닝 애플리케이션에서 가장 핵심적인 컴포넌트는 모델이라고 생각한다. 이 핵심적인 "모델"이 어떻게 학습되었고 어떻게 저장되었으며 어떻게 배포되어 있는지 이를 제일 잘할 수 있도록 설계된 툴이 MLflow가 아닐까. 2. What we need mlflow의 설명을 보자, "An open source platform for the machine learning lifecycle". 모델의 모든 생애주기 관리하기 위한 플랫폼으로서 mlflow는 발전하고 있다. 그렇게 된다면 유지관리가 엄청 편해지겠지만 그렇기엔 아직 성..
· MLOps
쿠버네티스 클러스터를 구축하는 방법은 여러 가지가 있다. 사용하고 있는 노트북 혹은 데스크톱의 CPU와 Memory가 충분하다면 로컬에 Docker Desktop을 이용하면 손쉽게 쿠버네티스 클러스터를 구축할 수 있다. 나는 로컬에 구축할 수 있다면 로컬에 올라간 클러스터를 사용하는 게 제일 간편하다고 생각한다. 하지만 나는 리소스가 충분하지 않았었다. 취업을 준비할 때 많은 기업에서 쿠버네티스를 사용한다고 하여 경쟁력을 높이기 위해 쿠버네티스를 공부하고자 했었지만 구축이 제일 큰 산이였었다. 집에 놀고 있던 데스크탑에 메모리를 추가로 구매해 서버로서 쿠버네티스를 구축하기도 하고 사용하던 노트북에 쿠버네티스를 구축하려고도 했지만 쉽지 않았다. 그러던 중 GCP에서 제공하는 GKE라는 서비스를 알게 되었고..
· MLOps
Github Actions는 Github에서 제공하는 CI / CD를 위한 툴이다. CI : Continous Integration(지속적 통합) CD: Continous Delivery or Continous Deploy(지속적 배포) 사용자의 피드백을 빠르게 적용하기 위해서 많은 수의 배포가 빠르게 진행되어야 한다. 이는 곧 서비스의 경쟁력이 되기 때문이다. 한 번의 코드 변화로부터 사용자에게 전달되기까지 모든 과정이 수동으로 이루어진다면 많은 시간이 걸릴 것이다. CI / CD는 그 과정을 자동화하는 것이라고 생각한다. 쉽게 예를 들어 CI / CD를 구분해보자. CI : 소스코드의 변경에 따른 도커 이미지의 빌드 및 푸시 CD : 변경된 도커 이미지를 바탕으로 쿠버네티스의 리소스 업데이트 위 그림..
· MLOps
안녕하세요~~ 오늘 작성해볼 내용은 머신러닝 모델을 위한 CI / CD 파이프라인입니다. CI는 Continous Integration CD는 Continous Deploy 혹은 Continuous Delivery 이는 사람마다 해석이 조금씩 다른 거 같습니다. 뭐 굳이 나누나 싶긴 한데 저는 CI는 배포 전까지의 모든 단계를 이야기하고 CD는 배포하는 단계로 정의하고 글을 작성하겠습니다.. 그리고 CI / CD가 뭐야?라고 누군가 저에게 물어보면 저는 "자동화하는 거요..."라고 대답할 거 같습니다. 머신러닝 관점에서 CI / CD를 한다는 것은 모델러가 코드를 Github에 업로드했을 때 모든 과정이 자동화되어 사용자에게 전달되게 끔 하는 것이라고 생각합니다. 이는 비즈니스의 성격과 모델의 성격에 따..
ssuwani
'MLOps' 카테고리의 글 목록