Overroll Service Architecutre
시스템 구성 관점에서의 Architecture 로 “Master”, “AP”, “Train”, “DB”, ”Cluster” 크게 5가지 형태의 Docker Container 를 제공한다. Master 는 전체 서버를 컨트롤하는 기능 수행, Train 은 주로 GPU 서버로 모델의 훈련을 수행, AP 는 훈련된 모델을 서비스로 연결하는 역할을 수행하며, DB와 Cluster 는 각 구성요소들을 연결하기 위한 역할을 수행하게 됩니다. TensorMSA는 이러한 컴포넌트들을 종합적으로 연결하여 유기적인 서비스를 제공합니다.
Master Server
TensorMSA Master 는 전체 프레임웍의 구성요소들을 Control 하는 역할을 수행하며, 컨트롤 대상은 훈련을 담당하는 GPU서버, 서비스를 담당한는 AP 서버 그리고 각종 파라메터 관리를 위한 DB와 분산처리를 위한 Celery 구성요소 등이 있다. Master서버는 모델 훈련관리, 서버구성관리, 사용자관리, 연결 권한 관리, 연결 어플리케이션 레이어 관리 등을 수행하게 된다.
Train Server
Train Server 는 준비된 데이터와 정의된 파라메터를 기반으로 실질적인 훈련을 수행하게 된다. Train Server 는 훈련을 위한 준비, 과정, 결과를 다시 마스터 서버 및 서비스 서버와 연동하여 그 결과를 공유할 수 있도록 한다.
AP Server
Inference Server 는 실제 서비스를 제공하는 기능을 Restful API로 제공하며, 비지니스 종류별로 어떤 모델을 연결하고, 어떤 그래프 flow 를 갖는 버전을 사용할 것인지, 사용자 대상에 대한 권한 관리 및 점유 리소스 관리 등을 수행할 수 있으며, 간단한 조작으로 서비스를 수행할 수 있도록 한다.