반응형

지금까지 머신러닝 모델을 학습하고 릴리스하는 방법에 대해 살펴봤다. 이번 포스팅 부터는 머신러닝을 통해 시스템을 만드는 여러가지 패턴을 정리하려고 한다.

시스템이 필요한 이유

하나의 머신러닝 모델을 만들어 내기 위해서는 다양한 데이터와 알고리즘, 파라미터를 조합해야 한다. 이 조합에 따라 만들어지는 모델의 성능은 달라지는데, 도대체 어떤 데이터나 파라미터를 통해 학습되었는지를 이미 학습된 모델 자체를 통해서 알아내기는 어렵다. 따라서 머신러닝을 활용하기 위해서는 어떤 설정을 바탕으로 모델을 학습했는지 철저히 관리하고 버저닝해야 한다.

 

머신러닝을 효과적인 프로덕트나 서비스의 형태로 활용하기 위해서는 시스템이 모델을 포함해야 한다. 머신러닝 모델을 로컬 PC에서만 추론할 수 있게 구성하는 것은 도움이 되지 않으며, 다른 소프트웨어들과 조합해 모델이 호출되는 구조를 갖춰야 한다.

 

학습한 모델을 추론기에 포함하는 방법은 여러가지가 있다. 어떤 방법으로 모델을 추론기에 포함해서 구현할지는 시스템의 목적이나 모델의 성능에 따라 달라진다.

 

예를 들어 모든 요청에 대해 즉시 추론 결과를 응답하기 위한 추론기는 동기적으로 만드는 것이 좋다. 여러 개의 모델을 포함한 추론기를 구성해야 하는 경우라면 각각의 모델을 MSA(Micro Service Architecture)로 배치하는 방법을 고려해야 하고, 데이터를 모아두었다가 야간이나 일정한 기간에 일괄적으로 추론하고 싶은 경우는 배치 시스템으로 개발하는 것이 바람직하다.

 

앞으로 정리할 추론 시스템 패턴을 요약하면 다음과 같다.

 

  • 웹 싱글 패턴: 하나의 작은 모델을 하나의 추론기로 동기적으로 추론
  • 동기 추론 패턴: 요청에 대해 동기적으로 추론
  • 비동기 추론 패턴: 요청에 대해 비동기적으로 추론
  • 배치 추론 패턴: 배치 작업으로 추론 실행
  • 전처리 추론 패턴: 전처리와 추론으로 서버를 분리
  • 직렬 MSA 패턴: 의존관계에 있는 추론을 차례로 실행
  • 병렬 MSA 패턴: 하나의 요청을 여러개의 추론기로 추론

 

각 패턴들의 구현 방법을 장단점과 함께 알아보자.

 

2024.09.09 - [Data Science/machine learning] - 웹 싱글 패턴

2024.09.11 - [Data Science/machine learning] - 동기 추론 패턴

2024.09.11 - [Data Science/machine learning] - 비동기 추론 패턴

반응형

+ Recent posts