VISION HONG
article thumbnail
[ML Design Pattern] 추론 시스템 / 2. 동기 추론 패턴
MLOps 2022. 10. 13. 20:35

동기 추론 패턴 외부 클라리언트에서 웹 API로 추론 요청이 있을 때의 처리 방법에는 크게 동기처리와 비동기처리 두 가지가 있다. 이번 포스팅에서는 동기적인 처리 방법을 TensorFlow Serving을 활용해서 정리한다. Use Case workflow가 추론 결과에 의존할 경우 시스템의 workflow에서 추론 결과가 나올 때까지 다음 단계로 진행이 되지 않는 경우 해결하려는 과제 클라이언트의 애플리케이션은 추론 결과에 따라 이어지는 처리를 달리하는 경우가 있다. 예를 들어, 핸드폰 액정필름 생산라인에서 제조되는 액정필름 표면의 이상을 검지하는 시스템을 생각해 보자. 이때, 시스템은 액정필름을 카메라로 촬영하여 정상이면 출품 라인으로, 이상이 발견되면 사람이 재차 확인하는 라인으로 내보내는 work..

article thumbnail
[ML Design Pattern] 추론 시스템 / 1. 웹 싱글 패턴
MLOps 2022. 10. 6. 18:30

지금까지 머신러닝 모델을 학습하고 릴리스하는 방법에 대해 살펴봤다. 이번 포스팅 부터는 머신러닝을 통해 시스템을 만드는 여러가지 패턴을 정리하려고 한다. 시스템이 필요한 이유 하나의 머신러닝 모델을 만들어 내기 위해서는 다양한 데이터와 알고리즘, 파라미터를 조합해야 한다. 이 조합에 따라 만들어지는 모델의 성능은 달라지는데, 도대체 어떤 데이터나 파라미터를 통해 학습되었는지를 이미 학습된 모델 자체를 통해서 알아내기는 어렵다. 따라서 머신러닝을 활용하기 위해서는 어떤 설정을 바탕으로 모델을 학습했는지 철저히 관리하고 버저닝해야 한다. 머신러닝을 효과적인 프로덕트나 서비스의 형태로 활용하기 위해서는 시스템이 모델을 포함해야 한다. 머신러닝 모델을 로컬 PC에서만 추론할 수 있게 구성하는 것은 도움이 되지 ..

article thumbnail
[ML Design Pattern] 모델 릴리스 / 2.모델 로드 패턴
MLOps 2022. 10. 1. 11:42

모델 로드 패턴 지난 포스팅에서는 릴리스 과정에 있어서 모델을 서버 이미지에 포함하는 방법인 모델 인 이미지 패턴에 대해 알아보았다. 이번에는 모델을 서버 이미지에 built-in 하지 않고 추론기를 가동할 때 다운로드 받아 적용하는 모델 로드 패턴에 대해 알아보자 Use Case 서버 이미지 버전보다 추론 모델의 버전을 더 빈번하게 갱신하는 경우 동일한 서버 이미지로 여로 종류의 추론 모델 가동이 가능한 경우 해결하려는 과제 모델 인 이미지 패턴은 서버 이미지의 빌드가 빈번하게 발생하고 서버 이미지의 사이즈가 증가한다는 단점이 있었다. 예를 들어 동일한 전처리 기법과 동일한 알고리즘을 다른 데이터셋으로 여러 번 학습하는 경우, 학습할 때마다 서버 이미지를 빌드하는 것은 운용면에서 합리적이라고 볼 수 없..

article thumbnail
[ML Design Pattern] 모델 릴리스 / 1. 모델 인 이미지 패턴
MLOps 2022. 9. 27. 18:59

머신러닝 모델을 만드는 확습환경과 모델을 사용해 추론을 수행하는 추론환경은 다르다. 학습환경에서는 풍부한 컴퓨팅 자원과 학습용 라이브러리를 함께 활용해 모델을 개발하고, 추론환경에서는 한정된 자원과 추론용 라이브러리를 통해 추론을 수행한다. 머신러닝 모델을 릴리스하기 위해서는 반드시 추론환경을 기준으로 모델을 제공해야 할 뿐만 아니라, 추론환경에 적합한 프로그램이나 라이브러리도 같이 작성해야 한다. 학습 방법이나 학습 결과를 연구논문으로 집필하고 학회에서 발표하는 경우는 보통 학습 자체에서 학술적인 가치를 찾을 수 있다. 그러나 비즈니스의 목적으로 모델을 개발한다면 모델이 과제 해결에 직접적인 역할을 해야한다. 즉 학습한 모델을 실제 시스템으로 릴리스해서 가치를 창출해내는 것이 중요하다. 모델을 릴리스하..

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 과 같은 이름을 지을 수 있을 것이다..