Learning

TorchServe 활용기 1- 소개

먼저 TorchServe 알아보기

2023
.
03
.
15
TorchServe 활용기 1- 소개

Introduction

모델을 배포하는것은 항상 골칫거리입니다. 단순 모델을 개발하는것도 힘든데 여기에 배포까지 하려니 도통 어려운일이 아닙니다. 참 다행스럽게도(?) 이런 어려움을 AI개발자라면 대게 겪고 있는지 이미 개발된 친절한 배포관련 툴이 많이 있습니다. 그 중 정답은 없지만 그래도 활용도가 높다고 판단되는 TorchServe에 대해 조사하고 실제 배포까지 해보겠습니다. 그럼 실제 배포과정에 들어가기 이전에 먼저 TorchServe의 개요에 대해 알아보겠습니다.

TorchServe란?

TorchServe는 facebook과 aws에서 개발하였으며 모델 서비스를 위해 태어났습니다. SageMaker가 TorchServe를 기반으로 작동 하므로 이를 직접 사용함으로써 좀 더 자율적이고 안정적인 모델 제공이 가능해 질 것입니다. TorchServe는 pytorch로 개발 된 모델을 좀 더 쉽게 제공하기 위해 만들어 졌으며 파이썬 버전 의존도가 있습니다. (python >= 3.8) 도커와 아나콘다 양 환경 모두에서 동작합니다. TorchServe는 SagaMaker외에도 Kubeflow, MLflow, Kserve, Vertex AI에서 사용됩니다.
상세 내용은 TorchServe 깃허브를 통해 알 수 있습니다.

TorchServe Architecture
TorchServe Architecture

TorchServe에서 제공하는 각종 API들

TorchServe는 배포를 도와주는 유용한 녀석이므로 당연히 여러가지 API를 제공하고 있습니다. 어떤 모델을 TorchServe에서 요구하는 방식으로 변환하고, 이를 기반으로 서버를 실행하면 모델과 그 사용자간의 소통이 TorchServe에서 미리 정해놓은 API들로 이루어지는 것입니다. 해당 API는 추론 뿐만아니라 매니지먼트, 로드밸런서의 기능까지 포함하고 있으니 체득해놓고 자유자제로 쓴다면 배포의 고충이 크게 줄어들 것입니다. 하기 목록의 링크에 접속하면 실제 API사용 예시를 볼 수 있습니다.

1. Model Management API

runtime에서 모델을 manage하기 위한 다양한 기능의 API를 제공합니다. 즉 torchserve를 실행시켜놓으면 모델 파라미터 외에 배포 관련 기본적인 설정은 실시간 api call을 통해 가능한 것입니다.


2. Inference API

inference API는 8080포트를 통해서 이루어지며 기본적으로 localhost에서만 접근이 가능합니다. TorchServe Configuration을 통해 이런 기본 셋팅은 변경이 가능합니다. Inference API는 말 그대로 추론을 위한 api모음이며 하기와 같은 api를 제공합니다.

Table of Contents
Talk to Expert