VISION HONG
article thumbnail
[ML Design Pattern] 추론 시스템 / 8. 추론 캐시 패턴
MLOps 2022. 12. 28. 18:25

추론 캐시 패턴 만약 반복적으로 추론기에 들어가는 데이터가 있다고 가정해보자 매번 같은 결과를 내는데 굳이 Cost를 낭비할 필요가 있을까? 이처럼 같은 데이터를 같은 추론기로 여러 번 추론하는 경우가 있을 수 있다. 이럴 때는 추론 캐시 패턴을 활용해 식별이 가능한 데이터라면 추론했던 결과를 그대로 사용할수 있도록 문제를 해결할 수 있다. Use-Case 동일 데이터에 대해 추론 요청이 발생함과 동시에 그 데이터를 식별할 수 있는 경우 동일 데이터에 대해 동일한 추론 결과를 응답할 수 있는 경우 입력 데이터를 검색할 수 있는 경우 추론의 지연을 단축하고 싶은 경우 해결하려는 과제 모든 시스템은 갖춰야 할 기능을 요구되는 속도와 비용으로 가동시킬 필요가 있다. 그리고 대부분의 경우 기능, 속도, 비용이 ..

article thumbnail
[ML Design Pattern] 추론 시스템 / 7. 시간차 추론 패턴
MLOps 2022. 12. 22. 21:39

시간차 추론 패턴 마이크로서비스 패턴에서 언급한 대로 여러 모델을 조합하게 되면 추론기 사이에 지연시간의 차이가 발생한다. 같은 데이터에 대한 추론이라도 전체 추론 결과를 반드시 같은 타이밍에 응답할 필요는 없다. 지연에 차이가 있는 추론이라도 시스템 차원에서 유효하게 활용할 수 있는 패턴인 시간차 추론 패턴에 대해 알아보자. Use Case Interactive한 애플리케이션에 추론기를 삽입할 경우 응답이 빠른 추론기와 느린 추론기를 조합한 workflow를 만들고 싶은 경우 해결하려는 과제 이전 포스팅 주제인 병렬 MSA 패턴에서는 동일한 데이터에 대해 여러 개의 추론기를 조합하였다. 여러 추론기를 조합할 때 해결해야 할 과제 중 하나는 추론기 간의 지연시간에 차이이다. 동기적으로 처리하는 경우라면 ..

article thumbnail
[ML Design Pattern] 추론 시스템 / 6. 직렬, 병렬 마이크로서비스 패턴
MLOps 2022. 12. 13. 14:38

마이크로서비스 패턴 클라우드의 등장 이후 서비스를 구성하는 기능을 작은 독립된 서비스로 분할하는 MSA(Micro Service Architecture)가 확산되고 있다. MSA는 서비스 간 결합도를 낮춰 독립성을 높임과 동시에, 각 서비스를 최적의 라이브러리나 프로그래밍 언어로 개발할 수 있게 한다. 이번 포스팅에서는 MSA 방법론을 머신러닝의 추론기에 적용한 마이크로서비스 패턴에 대해 알아보자. (직렬 마이크로서비스 패턴은 이전 포스팅인 전처리 추론 패턴과 구현방식이 매우 비슷하기 때문에 짧게 넘어가고 병렬 마이크로서비스 패턴으로 넘어간다.) 직렬 마이크로서비스 패턴 1. Use Case 여러 개의 추론기로 구성되는 시스템에서 추론기 사이의 의존성이 명확한 경우. 여러 개의 추론기로 구성되는 시스템에..

article thumbnail
[ML Design Pattern] 추론 시스템 / 5. 전처리 · 추론 패턴
MLOps 2022. 12. 5. 22:26

전처리-추론 패턴 ML모델 개발에서 데이터의 전처리와 학습은 동시에 이루어지지만, 서로 다른 라이브러리를 사용하는 경우가 많다. 결과적으로 모델은 모델 추론용 파일로 저장되지만, 전처리는 여전히 코드의 형태로 남게 된다. 이번 포스팅에는 추론기에서 전처리와 추론을 서로 다른 서버에서 실행하여 각 서버의 유지보수를 용이하게 할 수 있는 전처리-추론 패턴에 대해 알아보자. Use Case 머신러닝의 전처리와 추론에서 필요로 하는 라이브러리나 코드베이스, 미들웨어, 리소스가 크게 다를 경우. 전처리와 추론을 컨테이너 레벨로 분리해서 장애의 격리 및 가용성, 유지보수성이 향상될 경우 해결하려는 과제 머신러닝의 전처리와 추론은 서로 다른 라이브러리로 구현될 수 있다. 특히 딥러닝이라면 전처리에 scikit-lea..

article thumbnail
[ML Design Pattern] 추론 시스템 / 4. 배치 추론 패턴
MLOps 2022. 11. 10. 10:38

배치추론 패턴 대량의 데이터를 하나로 정리하여 추론하고 싶은 경우, 배치 추론 패턴을 사용할 수 있다. 배치 추론 패턴에서는 작업(job)으로서 전처리와 추론을 실행하고 추론 결과를 저장한다. Use Case 실시간 또는 실시간에 준하는 추론을 할 필요가 없는 경우 과거의 데이터를 정리해 추론하고 싶은 경우 야간, 시간 단위 또는 월 단위 등 정기적으로 쌓인 데이터를 추론하고 싶은 경우 해결하려는 과제 머신러닝의 역할은 실시간으로 흐르는 데이터를 추론하는 것에 그치지 않는다. 지금까지 축적된 데이터에 대해 의미를 부여하기 위해 배치 처리로 데이터는 추론하는 경우가 있다. 예를 들어 클라이언트용 웹 서비스에 새로운 위반행위를 발견했을 경우, 해당 위반행위를 실시간으로 검지하는 머신러닝 모델을 준비하고 과거..

article thumbnail
[ML Design Pattern] 추론 시스템 / 3. 비동기 추론 패턴
MLOps 2022. 11. 3. 16:29

비동기 추론 패턴 시스템에 따라 클라이언트는 추론 요청만을 보내놓고, 추론 결과는 클라이언트에서 사용하지 않는 경우도 존재한다. 추론 요청에 대해서 추론 결과를 바로 응답하지 않고 요청과는 다른 과정으로 가져오는 것을 비동기 추론 패턴이라고 한다. 머신러닝으로 실현 가능한 시스템의 폭을 넓힐 수 있는 비동기 추론 패턴에 대해 알아보자. Use Case 클라이언트 애플리케이션에서 추론 요청 직후의 처리가 추론 결과에 의존하지 않는 workflow일 경우 클라이언트와 추론 결과의 output destination을 분리하고 싶은 경우 추론에 시간이 걸려 클라이언트를 기다리게 하고 싶지 않은 경우 해결하려는 과제 최근 DALL-E와 같이 텍스트를 통해 새로운 이미지를 창조하거나 이미지 편집, 변형 등 복잡한 ..