VISION HONG
article thumbnail
[ML Design Pattern] 모델 생성 / 2. 파이프라인,배치 학습 패턴
MLOps 2022. 9. 19. 21:29

1. 파이프라인 학습 패턴 머신러닝에서 학습은 여러 프로세스로 분할할 수 있다. 일반적으로는 데이터 수집, 전처리, 학습, 평가, 빌드를 거치게 된다. 각 프로세스를 순차적인 작업(Job) 단위로 실행함으로써 학습의 도중 경과를 기록하고 재사용이나 부분적인 수정을 용이하게 해준다. 또한 각 프로세스는 상황에 따라 한번만 수행되는 것이 아니라 여러번 수행될 수 있는데 이를 자동화 하는 방법 또한 고려할 수 있을 것이다. 이번 포스팅에서는 머신러닝의 기본적인 컴포넌트(데이터 수집, 전처리, 학습, 평가, 빌드)를 MLflow 파이프라인으로 구성하여 모델 학습 및 평가를 진행해보고 리눅스의 cron을 활용하여 배치작업으로 학습 프로세스를 자동 실행하는 방법에 대해 알아보자 Use Case 학습 파이프라인의 자..

article thumbnail
[ML Design Pattern] 모델 생성 / 1. 프로젝트, 모델, 버저닝 관리
MLOps 2022. 9. 7. 00:38

머신러닝 모델 개발에서는 데이터, 프로그램, 모델이라고 하는 세 가지 리소스를 모두 관리해야 한다. 이 세가지 리소스는 반드시 동기화되어 함께 변경된다고 장담할 수 없기에 학습할 때마다 각 리소스를 기록하고 실험관리를 해야한다. 이번 포스팅에서는 올바른 실험관리 방법과 모델관리 시스템에 대해 알아보려고 한다. 머신러닝 프로젝트를 시작하기 앞서 프로젝트를 지칭하는 이름이 필요하다. 프로젝트 이름은 현재 프로그램을 나타낼 수 있는 이름으로 누군가 보았을때 프로젝트를 단적으로 파악할 수 있는 명칭을 붙이는 것이 좋다. 예를들어 한국어를 영어로 번역하는 프로젝트라면 translate kr2en, 핸드폰 스크린에서 스크래치를 검출하는 프로젝트라면 Clean the screen 과 같은 이름을 지을 수 있을 것이다..

article thumbnail
[ML Design Pattern] 0. Back to the basic
MLOps 2022. 9. 6. 00:39

최근들어 MLOps에 관심을 가지게되면서 현업에서 사용되는 여러가지 툴을 익혀보았다. 좋은 툴을 잘 활용하는것도 물론 중요하지만 머신러닝 시스템이 어떤 상황에서 활용되어야 진정한 AI로써의 가치를 만들어내는지, 실제 서비스를 운영하면서 발생하는 문제를 어떻게 풀어나가야 하는지, 현재 상황속에서 사용자 경험을 더 끌어올리는 방법이 무엇일지에 대한 고민을 하게되었다. 머신러닝 엔지니어 입장에서만 MLOps를 바라보기 보다 머신러닝을 사용하는 사용자의 시각에서 MLOps를 구현해보면서 문제해결 능력을 키우는 것이 중요하다고 생각되어 앞으로 수차례에 걸쳐 머신러닝 디자인 패턴과 안티 패턴에 대해 정리하고 스스로 문제를 정의하여 다양한 프로젝트를 진행해 보려고 한다. 자신들의 분야에 AI를 적용하고 싶어하는 기업..

article thumbnail
Deploy with BentoML Yatai
MLOps 2022. 7. 19. 16:16

이번글에서는 BentoML의 Yatai라는 component를 쿠버네티스 클러스터에 설치하여 Yatai Web UI를 통해 간편하게 모델을 배포 및 관하는 방법에 대해 소개하려고 한다. 얼마전에 BentoML v1.0.0이 preview release 되었는데 눈 여겨볼 변경점은 다음과 같다. bentoml 커맨드에 yatai login 이라는 하위 명령어와 옵션을 통해 외부 컨테이너에서 쿠버네티스 환경의 yatai에 접근하여 모델을 push할 수 있다. (API 토큰, Yatai endpoint 활용) model과 bentos(bento service)를 구분지어 관리하고 runner라는 원격 python worker에서 inference를 실행할 수 있도록 한다. 위와 같은 변경점을 새로 적용하면서 ..

article thumbnail
Jenkins 로 도커 이미지 Build & Push 자동화하기
MLOps 2022. 7. 9. 12:41

Kubeflow에는 kfp라는 Python SDK가 존재하며 이를 통해 도커 이미지 없이 ML pipeline을 구축할 수 있다. 하지만 딥러닝을 수행할 경우 코드 길이가 길어져 kfp로 코드 작성 및 수정이 어려워지고 큰 데이터셋에 대한 component간의 데이터 전달이 제한적이다. 이러한 경우 전처리, 하이퍼파라미터 튜닝, 학습, 검증을 각각 수행하는 코드를 작성하여 도커 이미지를 build&push 한 뒤 각 component에 맞는 image를 manifest에 명시해준다. component별로 Docker Image를 생성하고 개발 단계에서 마주하는 수많은 디버깅 작업으로 인해 수십번의 build&push가 필요한데 매번 CLI에서 명령어를 날리는 일이 여간 불편한게 아니다. 이번 포스팅에서는..

article thumbnail
Understanding the Feature Store with Feast
MLOps 2022. 6. 22. 14:13

이번 포스팅에서는 MLOps의 구성요소(infrastructure) 중 아직은 많이 알려지지 않은 Feature Store에 대해 알아보고 Feature Store Open Source인 Feast의 사용법을 알아보고 Kubeflow에 적용 해보려고 한다. 우선 Feature Store가 무엇인지 알아보자. Feature Store Feature Store란 이름 그대로 머신러닝 프로젝트에서 다루는 Feature(Column)와 value를 저장하는 저장소를 의미한다. 그런데 굳이 Feature Store를 사용하는 이유는 무엇일까? 큰 조직에 여러 데이터 사이언티스트 팀과 머신러닝 엔지니어 팀이 있다고 가정해보자. 각각의 데이터 사이언티스트 팀은 Feature Engineering을 거쳐 데이터를 잘 ..