본문 바로가기

MLOps

(9)
Feast - Quick Review 일반적인 정형 데이터 머신러닝 코드에는 데이터를 불러오고 필요한 feature를 뽑아 가공하는 부분이 있다. 보통 데이터 웨어하우스나 아니면 원천 데이터 소스에서 데이터를 불러올텐데, 이렇게 직접 데이터 소스에 붙지 않고 머신러닝에 필요한 데이터 스토어를 별도로 만들어 둘 수 있다. 그리고 여기에 필요한 feature들을 미리 가공하여 저장할 수 있고, 데이터 버전 관리도 도입해볼 수 있다. 이러한 개념으로 등장한 것이 feature store다. feature store는 머신러닝을 위한 feature 데이터를 모아둔 곳이라고 보면 된다. 이번 글에서는 feature store 오픈소스 툴인 Feast를 간단히 사용해보고 빠르게 리뷰해본다. 사전 준비 파이썬 3.8 (나는 3.8.7 을 사용했다.) 사..
MLflow - MLflow Projects 이번에는 MLflow Project 에 대해서 자세히 알아본다. 사전 준비 이전 글을 확인하자. 개요 MLflow Project는 말 그대로 MLflow에서 유용하게 관리, 사용하기 위해 정의하는 양식이다. 말로 설명하는 것보다 그냥 보고 이해하는게 더 빠를거 같다. 다음은 examples/sklearn_logistic_regression 에 있는 예시다. 하나의 MLflow Project는 다음과 같은 구조를 가진다고 보면 된다. sklearn_logistic_regression ├── MLproject ├── conda.yaml └── train.py MLproject 라는 파일이 존재하는데, 이 파일을 통해 이 프로젝트가 MLflow Project 임을 알 수 있다. MLflow Projet 는 m..
MLflow - Models 이번에는 MLflow의 Model에 대해서 좀 더 자세히 알아본다. 사전 준비 이전 글을 참고하자. 모델 저장하기 mlflow로 코드에서 모델을 저장하는 방법은 다음처럼 크게 2가지가 있다. mlflow.sklearn.save_model() mlflow.sklearn.log_model() 일단 sklearn 등 머신러닝 모델 프레임워크 단위로 함수를 제공한다. 그리고 log_model() 은 save_model() 를 똑같이 실행하는 것인데, 저장되는 위치가 run 내부라는 것이 다르다. 일단은 간단한 동작을 보기 위해 save_model() 을 사용해보자. 예를 들면 다음과 같다. import mlflow model = ... mlflow.sklearn.save_model(model, "my_model..
MLflow - Model Registry 이번에는 MLflow의 Model Registry에 대해서 알아본다. 사전 준비 음 이제 매번 쓰기 귀찮다. 어차피 직전 글이랑 이어지므로, 이전 글을 통해 확인하자. Model Registry 개념 Model Registry는 MLflow 프로젝트 실행을 통해 나온 결과물인 모델을 저장하는 중앙 집중식 모델 저장소다. MLflow로 모델을 기록했다면, 기록한 모델을 Model Registry에 등록할 수 있고, 등록된 모델은 어디서든 불러올 수 있다. 모델 등록하기 웹 UI로 등록하기 간단하게 모델을 등록해보자. 직전 글에서 사용한 실습을 그대로 이어간다. 웹 서버 (Tracking Server) 에 들어간 뒤, 실행했던 실행(Run)을 클릭하여 들어간다. 실행 상세페이지 하단에 Artifacts 블록..
MLflow - Tracking Server 이번에는 MLflow 의 Tracking Server에 대해 알아본다. 사전 준비 다음이 사전에 준비 되어 있어야 한다. # 파이썬 버전 확인 $ python --version Python 3.8.7 # mlflow 설치 & 버전 확인 $ pip install mlflow $ mlflow --version mlflow, version 1.16.0 # 예제 파일을 위한 mlflow repo clone $ git clone https://github.com/mlflow/mlflow.git $ cd mlflow/examples Tracking Server Tracking 이란? 이전의 글들을 통해 우리는 MLflow가 머신러닝 프로젝트에서 일종의 "기록" 역할을 하는 것임을 알았다. 여기서 머신러닝의 과정과 ..
MLflow - Experiments & Runs 이번에는 MLflow의 실험(experiments)과 실행(runs)에 대해 알아본다. 사전 준비 다음이 사전에 준비 되어 있어야 한다. # 파이썬 버전 확인 $ python --version Python 3.8.7 # mlflow 설치 & 버전 확인 $ pip install mlflow $ mlflow --version mlflow, version 1.16.0 # 예제 파일을 위한 mlflow repo clone $ git clone https://github.com/mlflow/mlflow.git $ cd mlflow/examples Experiments & Runs 개념 MLflow에는 크게 실험(Experiment)와 실행(Run)이라는 개념이 있다. 실험은 하나의 주제를 가지는 일종의 '프로젝트..
MLflow - Automatic logging 저번 Quick 리뷰 글에 이어 계속해서 작성한다. 이번 글은 MLflow 에서 제공하는 Automatic Logging 기능 예제들을 살펴본다. 사전 준비 다음이 사전에 준비 되어 있어야 한다. # 파이썬 버전 확인 $ python --version Python 3.8.7 # mlflow 설치 & 버전 확인 $ pip install mlflow $ mlflow --version mlflow, version 1.16.0 # 예제 파일을 위한 mlflow repo clone $ git clone https://github.com/mlflow/mlflow.git $ cd mlflow/examples 예제 살펴보기 linear_regression.py examples 내에 있는 많은 예제 중, skelarn_..
MLflow - Quick Review 사전 준비 파이썬 3.8.7과 가상환경 $ python --version Python 3.8.7 Quick Start 설치 $ pip install mlflow $ mlflow --version mlflow, version 1.15.0 기본 동작 이해하기 예제 코드를 받기 위해 mlflow 공식 github 코드도 다운받자. 이후 examples/quickstart 경로로 들어가자 $ git clone https://github.com/mlflow/mlflow $ cd mlflow/examples/quickstart $ ls -al total 8 drwxr-xr-x 5 heumsi staff 160 4 24 14:20 . drwxr-xr-x 31 heumsi staff 992 4 24 14:18 .. -..