serving: 버전 관리되는 머신러닝 모델 추론을 관리하고 서빙하기 위한 고성능 프로덕션 시스템
serving: 버전 관리되는 머신러닝 모델 추론을 관리하고 서빙하기 위한 고성능 프로덕션 시스템
해결하는 문제
머신러닝 모델을 프로덕션 환경에 배포하는 문제를 해결합니다. 구체적으로, 학습된 모델을 가져와서 모델이 업데이트될 때 클라이언트 코드를 변경할 필요 없이 클라이언트가 신뢰할 수 있고 효율적으로 사용할 수 있도록 하는 추론 단계를 처리합니다.
작동 방식
TensorFlow Serving은 고성능 참조 카운팅(reference-counted) 조회 테이블을 사용하여 모델의 수명 주기를 관리합니다. 모델에 대한 버전 관리된 액세스를 제공하며 gRPC 및 HTTP를 통해 추론 엔드포인트를 노출합니다. 성능을 최적화하기 위해 개별 요청을 배치(batch)로 묶어 GPU에서 공동 실행할 수 있는 스케줄러를 포함하며, TensorFlow 모델, 임베딩(embeddings), 어휘집(vocabularies)을 포함한 다양한 "servables"를 지원합니다.
대상 사용자
고성능, 낮은 지연 시간, 그리고 여러 모델 버전 관리(A/B 테스트 및 카나리 배포 포함)가 필요한 프로덕션 환경에 머신러닝 모델을 배포해야 하는 개발자와 ML 엔지니어들을 위해 설계되었습니다.
주요 특징
- 여러 모델 또는 동일한 모델의 여러 버전을 동시에 서빙하는 것을 지원합니다.
- gRPC 및 HTTP 추론 엔드포인트를 모두 제공합니다.
- 클라이언트 코드를 업데이트하지 않고도 새로운 모델 버전을 배포할 수 있습니다.
- 실험적 모델을 위한 카나리 배포 및 A/B 테스트를 지원합니다.
- 구성 가능한 지연 시간 제어를 갖춘 GPU 배칭을 위한 요청 스케줄러를 포함합니다.
- TensorFlow 기반이 아닌 모델과 데이터를 서빙할 수 있는 확장 가능한 아키텍처를 제공합니다.
Sources
- undefinedtensorflow/serving