Kubeflow Pipelines로 모델 훈련과 검증 파이프라인 구성하기
·
MLOps
들어가며앞서 MIDV-500 신분증 사진을 훈련, 검증, 테스트 세트로 나눠 데이터를 준비해 두었다. 이제 그 데이터로 사진 속 신분증 위치를 박스로 찾는 모델을 훈련할 차례다. 이 글에서는 모델을 훈련하고, 훈련한 모델이 쓸 만한지 점수로 확인하는 파이프라인을 Kubeflow Pipelines(KFP)로 만든다. 훈련은 스크립트 하나로도 돌지만, 파이프라인 단계로 만들면 의존성을 어디서 깔지, 점수를 얼마나 믿을지, 큰 데이터를 단계마다 다시 받아야 하는지를 정해야 한다. 모델을 이어서 훈련하는 법부터 채점하고 거르는 법, 데이터를 PVC로 나눠 쓰는 법까지 짚어 나가 보자.1. 사전 훈련 모델과 하이퍼파라미터핵심 키워드: 사전 훈련 모델, 파인튜닝, 손실, 에포크와 과적합, 하이퍼파라미터1.1 사전 ..
Kubeflow Pipelines로 데이터셋 준비 파이프라인 구성하기
·
MLOps
들어가며이 글에서는 데이터를 받아 훈련에 쓸 수 있게 나누는 데이터 준비 단계를 Kubeflow Pipelines(KFP)로 만들어 보자. 받아서 나누는 것만 보면 스크립트 하나로도 충분하다. 그런데 파이프라인에서는 단계마다 따로 실행되니, 앞 단계가 만든 데이터를 다음 단계로 어떻게 넘기는지 먼저 알아야 한다. 그래서 파이프라인을 만들기 전에 KFP가 단계끼리 데이터를 넘기는 방법부터 짚어 나가 보자.다루는 프로젝트이 글에서는 두 프로젝트의 데이터를 준비한다. 사진을 다루는 신분증 탐지와 표를 다루는 영화 추천이다. 설명은 대부분 신분증 탐지로 하고, 영화 추천은 마지막에 신분증과 다른 점만 본다. 신분증 탐지. 사진을 넣으면 신분증이 어디 있는지 박스로 표시해 주는 객체 탐지 모델을 만든다. 모델을 ..
Evidently로 데이터 드리프트 탐지하기
·
MLOps
들어가며앞 글에서는 소득 분류 모델을 BentoML로 묶어 Kubernetes에 배포했다. 배포한 모델은 에러 없이 조용히 틀릴 수 있다. 들어오는 데이터가 모델이 배운 것과 달라지면 그렇다. 이 글에서는 그 변화를 Evidently로 잡는 방법을 다뤄 보자. 배치 파이프라인과 API 두 곳에 감시를 붙여 보고 경보가 떴을 때 진짜 변화인지 어떻게 가려야 하는지 실험해 본다.1. 데이터 드리프트란핵심 키워드: 데이터 드리프트, 참조 데이터, 현재 데이터, 컬럼 판정과 데이터셋 판정데이터 드리프트(data drift)는 모델에 들어오는 데이터가 모델을 만들 때의 데이터와 달라지는 것이다. 이 글의 예시는 미국 성인 소득 데이터로 연 소득 5만 달러 초과 여부를 예측하는 모델이다. 이 모델은 학력(Educa..
BentoML과 Yatai로 모델 패키징하고 배포하기
·
MLOps
들어가며모델을 훈련해 MLflow에 등록했다고 끝이 아니다. 누군가 요청을 보내면 답을 돌려주는 서비스가 되어야 쓸 수 있다. 이 글에서는 앞선 MLflow 글에서 훈련해 MLflow에 등록한 모델, 그러니까 미국 성인 소득 데이터로 연 소득 5만 달러 초과 여부를 예측하는 모델을 BentoML로 패키징하고 Yatai로 Kubernetes에 배포하는 과정을 다뤄 보자.1. BentoML이란핵심 키워드: BentoML, 벤토, bentofile.yamlBentoML은 모델과 서비스 코드를 묶어 API 서버로 띄우는 도구다. 여기서 서비스 코드는 요청을 받아 모델에 넣고 예측 결과를 돌려주는 파이썬 코드를 말한다. 이번 실습에서는 service.py와 그 파일이 불러 쓰는 src/ 아래 도우미 코드다. 처음..
Kubeflow Pipelines로 배치 추론 파이프라인 구성하기
·
MLOps
들어가며앞 글에서는 미국 성인 소득 데이터로 연 소득 5만 달러 초과 여부를 예측하는 모델을 학습해 MLflow에 등록했고, 그다음 글에서는 이 모델에 넣을 입력값을 Feast에 피처로 등록했다. 이 글에서는 등록한 모델과 피처를 Kubeflow Pipelines(KFP)로 이어서, 30,162명을 한 번에 예측하는 배치 추론(batch inference, 여러 건을 한 번에 예측) 파이프라인을 구성해 보자.1. Kubeflow Pipelines란핵심 키워드: KFP, 배치 추론KFP는 ML 작업 단계를 이어 자동으로 돌리는 도구이고, Kubeflow의 구성 요소 중 하나다. 쿠버네티스에서 작업을 순서대로 Pod로 실행하는 Argo Workflows를 안에서 쓰고, 그 위에 파이프라인, 실험, 실행 기록..
Feast 피처 스토어 기본 사용 및 오프라인·온라인 조회
·
MLOps
들어가며모델은 학습할 때도, 예측할 때도 입력값이 있어야 돌아간다. 이 글에서는 이 입력값을 Feast로 관리하는 방법을 다뤄 보자. 미국 성인 소득 데이터로 연 소득 5만 달러 초과 여부를 예측하는 모델에 넣을 값을 등록하고, 오프라인과 온라인에서 각각 조회한다.1. 피처 스토어와 Feast란핵심 키워드: 피처, 피처 스토어, 오프라인 스토어, 온라인 스토어피처(feature)는 모델에 넣는 입력값이다. 모델에 던질 질문이라고 생각하면 쉽다. 소득을 예측하는 모델이라면 "학력이 뭐예요?", "직업이 뭐예요?" 같은 질문이다. 모델은 데이터를 들고 있지 않고 학습에서 배운 판단 요령만 갖고 있어서, 예측할 때마다 이 질문의 답을 넣어 줘야 한다. 예를 들어 사용자 9f2ac416의 입력값 중 네 개는 다..
MLflow 기본 사용 및 모델 레지스트리 등록
·
MLOps
들어가며처음에는 MLflow와 Kubeflow Pipelines(KFP)가 Jenkins와 GitHub Actions처럼 둘 중 하나를 고르는 도구인 줄 알았다. 그런데 실습을 해 보니 둘 다 쓰는 거였다. MLflow는 실험 기록과 모델을 관리하고, KFP는 ML 작업 단계를 순서대로 실행한다. KFP는 뒤의 글에서 따로 다룬다. 이 글에서는 그중 MLflow를 다뤄 보자. 미국 성인 소득 데이터로 모델 세 개를 학습해 실험 추적(experiment tracking)으로 비교하고, 그중 하나를 모델 레지스트리(model registry)에 등록한다.1. MLflow란핵심 키워드: 실험 추적, 모델 레지스트리노트북에서 모델을 학습하면 결과는 셀 출력에 남는다. 모델이 하나면 괜찮지만, 이번 실습처럼 세 ..
MLOps 라이프사이클과 단계별 핵심 개념
·
MLOps
이번 글에서 다룰 MLOps 라이프사이클은 앞으로 할 실습 내내 계속 나오는 흐름이다. 그래서 이 흐름에 나오는 개념들은 제대로 이해하고 넘어가야 한다. 단계마다 하나씩 꼼꼼히 짚어 나가 보자.1. MLOps 라이프사이클ML 프로젝트는 문제를 정하고, 데이터를 모아 분석하고, 모델을 학습시켜 평가한 뒤, 배포해서 지켜보는 순서로 돈다. 이 흐름을 MLOps 라이프사이클(수명주기)이라고 부른다. 크게 모델을 만드는 실험 단계(문제 정의부터 모델 평가까지)와, 만든 모델을 서비스에 올려 지켜보는 운영 단계(배포와 모니터링)로 나뉜다.예시: 신분증 종류를 알아보는 모델 이 글에서는 신분증 사진을 보고 주민등록증, 운전면허증, 여권 중 무엇인지 알아보는 모델을 예로 든다. 스터디 실습에서도 신분증을 다룬다. M..