# MLflow

15개의 포스트

[Docker] MLflow with Docker

Docker란? Docker는 개발자가 컨테이너를 빌드, 배포, 실행, 업데이트, 관리할 수 있는 오픈 소스 플랫폼 작업하는 동안 컨테이너를 쉽게 공유하고 모든 참여자가 동일한 환경에서 작업 컨테이너의 수명 주기를 관리하기 위한 도구와 플랫폼을 제공하여 애플리케이션의 배포와 관리를 용이하게 함 > docker는 가상머신과 달리 커널을 공유해서 사용함 docker client : 도커 사용자가 도커와 소통하는 기본적인 방법 `docker_h

2023년 8월 2일
·
2개의 댓글
·
post-thumbnail

[Docker] 도커 데스크탑 설치 + mlflow 웹서버 환경 구축해보기

딥러닝을 바탕으로한 서비스 제작 프로젝트를 담당하게 되면서 자동화와 효율적인 ML파이프라인 구축을 위해 MLOps에 도전했다. 학교에서 py나 ipynb 파일만 실행하는 것이 아니라, 하나의 서비스를 만들어야하기 때문에, 이것저것 해보며 MLOps 서버 구축 도전을 했다. 현재는 사용하지 않지만 MLflow 웹서버 구축까지 성공했던 도커를 활용한 MLflow 서버 구축에 대해 알아본 것들을 정리하였습니다. Docker란? 도커는 컨테이너화된 프로그램을 개발, 배포 및 실행하기 위한 플랫폼이다. >컨테이터 프로그램과 그에 필요한 모든 종속성(환경설정, 라이브러리 등)을 포함하는 실행 가능한 단위로 패키징된 것. 왜 도커를 많이 사용할까? ![](https://velog.velc

2023년 5월 28일
·
0개의 댓글
·
post-thumbnail

KT 에이블스쿨 75일차(1)

오늘은 MLflow에 대해 배웠습니다. MLflow는 사기입니다. 추가로 알아둬야할 것 사이킷런에서 MinMax 스케일링을 사용할려면 reshape 전에 스케일링을 하고 reshape를 해야합니다. Mlflow 머신러닝을 진행하면 모델의 관리와 모델 배포에 대한 고민이 있습니다. 추적이란 중요한 정보를 기록하고 관리하는 것을 의미합니다. 따라서 추적에 대한 설정돠 추적에 대한 코드를 달아놔야합니다. 로컬 환경에서는 로 url을 잡아줍니다. ▶ 모델링&Tracking mlflow.logmetric는 성능을 기록하는 코드이고 mlflow.sklearn.logmodel는 모델을 기록해주는 코드입니다. with문을 사용하면 들여쓰기가 끝나는 부분에서 mlflow.end_run()을 실행해줍니다. 블록 기반으로 코드를 관리한다고 생각하면 됩니다. 코드를 터미널에서 실행해

2023년 5월 18일
·
0개의 댓글
·
post-thumbnail

[부스트캠프 AI Tech 5기] Model Serving

Model Serving 프로덕트 서빙의 핵심 Serving Basic Production 환경에서 모델을 사용할 수 있도록 배포 머신러닝 모델을 개발하고, 현실세계에서 사용할 수 있게 만드는 행위 서비스화라고 표현할 수 있음 Input이 제공되면 모델이 예측 값을 반환 용어 정리 Web Server 요청을(request) 받으면, 요청한 내용을 보내주는(response) 프로그램 시간이 소요되면 기다려달라고 응답 Client의 다양한 요청을 처리해주는 역할 ML Server도 동일함 (전처리, 예측 등) API 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 특정 서비스에서 해당 기능

2023년 4월 25일
·
0개의 댓글
·
post-thumbnail

MLFLOW 도전기

MLflow는 End to End로 데이터브릭스에서 만든 머신러닝 라이프 사이클을 관리할 수 있는 오픈소스입니다. MLOps 관련 오픈소스중에 빠르게 성장 중이라고 하여 Fashion Mnist 데이터셋을 이용해 간단하게 예측 한 번 해보았습니다. TensorFlow Keras 모델을 학습하고, MLFlow를 사용하여 실험을 기록하도록 하는 예제를 구현해볼께요! 0. 설치 및 환경 우선 주피터를 통해 mlflow를 설치해줍니다. 1. 학습을 위한 데이터 셋 확인 mlflow를 설치하였으니 실제로 한번 운영해봐야겠죠? fa

2023년 4월 22일
·
0개의 댓글
·
post-thumbnail

ML_FLOW

ml_flow 개념이해 ml_flow 4가지 컴포넌트 기능을 알기 ml_flow Tracking 어느 환경에서나 사용 가능하며 공유 가능함 ml_flow Projects git repository 비슷하다. ml_flow Models 모델을 모델 파일과 코드로 저장 다양한 플랫폼 에 배포 가능한 여러 도구 제공 ml_flow model registry 모델을 저장,관리하는 저장소 생성 모델 serving 할때 사용함 ml_flow 구성요소 ml_flow 서버와 클라이언트 실행 방법 기록해 두어야 할것 모델 소스코드 , 하이퍼 파라미터 활용한 라

2022년 12월 19일
·
0개의 댓글
·

부스트캠프 8주차

MLOps개론 모델 개발 프로세스 문제정의, EDA, feature engineering, train, result -> 이러한 프로세스는 고정된 데이터를 사용함(보통 research) 결국 사용하기 위해 우리는 모델을 production 환경에 맞춰 배포해야함 배포시 문제 모델의 성능이 계속 변경 새로운 모델이 더 안좋음 모델의 결과값이 이상한 경우 존재 MLOps란? 머신러닝 모델 개발과 머신러닝 모델 운영에서 사용되는 문제, 반복을 최소화해 비즈니스 가치를 창출해내는 것이 목표 -> 옛날에 산업혁명 생각해보면 이해가 쉬울듯(결국 프로세스 개선) MLOps의 요소 serving batch serving: 많은 데이터를 일정 주기로 한번에 예측(jupyter notebook) online serving: 실시간 예측, 동시에 많은 요청이 들어오는 경우 확장 가능하도록 준비 Experiment, Mod

2022년 11월 11일
·
0개의 댓글
·
post-thumbnail

MLFlow 실습(3): mlflow ui 기능 사용

학습 파라미터를 조금씩 바꾸어 모델을 여러번 실행해준다 서로 다른 실행의 결과를 비교하는 compare 기능을 사용해본다 현재 실행된 모델은 metrics 수치가 모두 동일하기 때문에 plot에 찍히는 결과에서 차이를 볼 수 없다(점이 하나만 찍힌다) RandomForest를 사용하여 모델을 실행한 뒤 서로 다른 모델 결과가 plot에 제대로 나타나는것을 확인 할

2022년 5월 15일
·
0개의 댓글
·
post-thumbnail

MLFlow 실습(2): mlflow ui 접속

mlflow.set_experiment() 모듈 실행 시 해당 디렉터리에 mlruns폴더가 생성된다. 터미널 창을 열어 mlruns 폴더가 존재하는 경로에서 mlflow ui 명령 접속을 실행한다 접속 주소는 기본적으로 localhost:5000 이며 -p 옵션을 통해 port 를 조정 가능하다 > MLflow ui 접속 화면 mlflow ui 접속시 마주하는 첫 화면 > Experiments 목록 실행한 실험(experiment) 목록 여기서 사용자가 실행한 model_experiment를 클릭하면 아래와 같이 생성된 실행이 보이게 된다

2022년 5월 14일
·
0개의 댓글
·
post-thumbnail

MLFlow 실습(1): 모델 생성

실습에 필요한 라이브러리들 import 해줌 opendatasets 라이브러리를 통해 웹에서 바로 데이터 끌어다 쓸 수 있음 kaggle의 creditcardfraud 데이터 사용하여 실습 진행 (신용카드 이상 탐지 데이터셋) *opendatasets로 kaggle 데이터 다운받기 위해서는 username 과 key가 필요함(즉 아이디가 필요함) 해당 실습에서는 scikit-learn 의 LogisticRegression 모델 사용 creditcardfraud dataset Time 변수는 모델에 긍정적인 영향을 끼치지 않는다고 판단했기 때문에 drop처리 정상데이터(class==0)를 normal, 이상데이터(class==1)를 anomaly로 선언 normal 데이터, anomaly 데

2022년 5월 9일
·
0개의 댓글
·
post-thumbnail

[MLOps] MLFlow with Docker

개요 MLFlow 참고 내용: https://mlflow.org/docs/latest/concepts.html MLFlow는 모델 학습을 반복하면서 사용하는 변화도와 같은 변수와 가중치 그리고 중간 학습률과 정답률 등을 기록하여 학습에 도움을 주는 도구 네가지 요소로 구성됨 추적: 기계 학습 코드를 실행할 때와 나중에 결과를 시각화할 때 매개변수, 코드 버전, 메트릭 및 아티팩트를 로깅하기 위한 API 및 UI 이를 사용하여 다른 사용자의 결과를 비교할 수도 있습니다. 같은 모델이라도 다른 값을 사용하는 경우 변화를 기록하고 추적할 수 있도록 함 프로젝트: 재사용 가능한 데이터 과학 코드를 패키징하기 위한 표준 형식 소스와 모델 그리고 추적을 프로젝트 별로 구분할 수 있도록 함 프로젝트에서 MLflow Tracking API를 사용하면 MLflow는 프로젝트 버전(예: Git 커밋)과 모든

2022년 4월 26일
·
0개의 댓글
·
post-thumbnail

MLflow란?

MLflow MLflow 는 코드 패킹, 실험 추적, 모델 공유 및 배포를 간소화하는 플랫폼이다. MLflow 에서는 Tensorflw, Pytorch, XGBoost 등 많은 기계 학습 라이브러리를 사용 할 수 있는 API 를 제공한다. MLflow의 기능은 크게 4가지가 있다. Tracking : 파라미터, 코드, 실험 결과를 대화형 UI 형태를 사용하여 비교하는 API Project : Conda 혹은 Docker 를 사용하여 재현 가능한 실험을 위한 코드 패키징 Models : Docker, Apache Spark, Azure ML 및 AWS SageMaker 와 같은 플랫폼에서 쉽게 배포 할 수 있는 모델 패키징 Model Registry : MLflow 모델의 전체 수명 주기를 공동으로 관리하기 위한 중앙 집중식 모델 저장소 설치 UI 서버 mlruns 폴더가 있는 곳에서 ![MLflow UI](https://raw.githubusercon

2022년 4월 21일
·
0개의 댓글
·
post-thumbnail

5주차 MLflow 정리

MLflow 머신러닝 실험, 배포를 쉽게 관리할 수 있는 오픈소스 MLflow의 핵심 기능 1) Experiment Management $ Tracking 머신러닝 관련 실험들을 정리하고 각 실험들의 내용들을 기록 할 수 있다.(여러 사람이 하나의 MLflow 서버 위에서 각자 자기 실험을 만들고 공유 가능) 실험을 정의하고 실행할 수 있다. 각 실행에 사용된 코드, 파라미터, Metric 등을 저장 2) Model Registry MLflow로 실행한 머신러닝 모델을 저장소에 등록할 수 있음 Model Registry에 등록된 모델은 다른 사람들과 쉽게 공유 가능하고 활용 가능 3) Model Serving Model Registry에 등록한 모델을 REST API 형태로 서버로 Serving 가능 Input은 Model의 Input이고 Output은 Model의 Output이다. Docker Image를 직접 만들지 않아도 생성이 가능하다.

2022년 2월 18일
·
0개의 댓글
·
post-thumbnail

MLflow 살펴보기

개요 ML 모델을 만들 때 좋은 성능을 내는 모델을 찾아내기 위한 실험을 여러 번 한다 이 경우 실험 조건과 결과를 기록하는 것이 필수인데, 메모장이나 스프레드시트 같은 것들을 사용하곤 한다. 하지만 실험 인원이 많아지면 각자의 실험 코드가 달라지거나 모델 버저닝을 까먹을 수 있다. 또한 퍼라마터 수가 많아지면 기록이 귀찮게 된다. ML 모델의 실험, 배포를 쉽게 관리해주는 도구 중 하나가 바로 MLflow이다. MLflow의 핵심 기능들 실험 관리와 트래킹 머신러닝 관련 실험들의 metric, loss 등 실험 내용들을 추적하여 각 실험들의 내용과 결과를 저장해준다. 하나의 MLflow 서버를 두고 여럿이서 각자 자기 실험을 한 곳에 저장할 수도 있다. 실험 내용 뿐만 아니라 실험에 사용한 코드, 하이퍼파라미터, 가중지 파일 등도 저장할 수 있다. Model registry MLflow로 실험을 진행한 모델들을 model registry라는 저장소에

2022년 1월 10일
·
0개의 댓글
·
post-thumbnail

MLflow와 Optuna 이용하여 모델 튜닝하고 관리하기

🏞 배경 ML은 기본적으로 많은 실험을 거쳐서 최적의 모델을 찾아 이를 배포하고 제품화합니다. 수많은 Feature, 알고리즘, Hyper-parameter의 구성을 다양하게 시도하여 모델을 튜닝하게 됩니다. 하지만 Feature가 많아지고 알고리즘이 복잡해질 수록 최적의 모델을 찾기란 쉽지 않습니다. 너무 많은 경우의 수가 발생하기 때문입니다. 일반적으로 많이 사용하는 Grid Search는 스키마가 간단하지만 후보군 내의 모든 구성을 다 테스트하기 때문에 많은 시간이 걸립니다. 그래서 최근에는 Bayesian Optimization에 기반을 둔 튜닝 자동화를 많이 시도합니다. 튜닝할 Hyper-parameter의 후보군만 정해주면 자동으로 최적의 구성을 찾아주기 때문입니다. 이렇게 많은 실험을 하게 되면 실험 결과를 관리하기 어렵습니다. 특히 Jupyter Notebook 과 같은 인터랙티브 환경에서 실험을 하게 되면 결과를 트래킹하기 어렵고, 만약 하나하나 로

2021년 7월 9일
·
0개의 댓글
·