Overview
- ML모델 서빙을 위한 오픈소스 플랫폼으로, AI모델의 대규모 배포를 간단하게 하기 위해 설계됨
- 훈련된 AI모델이 효율적으로 추론할 수 있도록 함
- 다양한 H/W(NVIDIA GPU, CPU 등)와 프레임워크(TensorFlow, PyTorch, ONNX 등) 지원
Key Features
- 다양한 프레임워크 지원
- TensorFlow, PyTorch, ONNX, TensorRT 등 다양한 ML/DL프레임워크를 지원
- 각기 다른 환경에서 훈련된 모델을 변환 없이 배포 가능
- 동적 배칭 및 모델 최적화
- 다수의 추론 요청을 자동으로 배칭하여 지연을 줄이고 처리량을 최적화
- TensorRT와 같은 모델 최적화 기술 제공 (TensorRT: NVIDIA GPU에서 추론을 가속화함)
- 확장성
- 다수의 GPU나 서버에 걸쳐 확장을 제공하여, 높은 처리량의 워크로드를 처리함
- 데이터센터등 큰 규모의 배포에 적합
- 배포 용이성
- 모델은 모델 저장소에 저장되며, 최소한의 구성(configuration)으로 모델을 서빙할 수 있음
- 새로운 모델을 업데이트하거나 배포하기 쉬움
- 평가지표 및 모니터링
- 성능, 처리량, 메모리 사용에 대한 상세한 평가지표 제공
- Prometheus 또는 Grafana를 통해 접근 가능
- 커스텀 백엔드 지원
- Triton의 기능을 확장하기 위한 커스텀 백엔드를 만들 수 있음
- 특별한 요구사항 충족 가능
Architecture

- Model Repository는 Triton에서 추론 가능한 모델들의 저장소 (파일시스템 기반)
- 서버에 도착한 추론 요청은 HTTP/REST, gRPC 또는 C API를 통해 적절한 Per-Model Scheduler로 라우팅 됨
- 모델별로 설정 가능한 Multiple Scheduling과 Batching Algorithm이 제공됨
- 각 모델의 스케줄러는 선택적으로 추론 요청의 배칭을 실행하고, 모델 타입에 맞는 백엔드에 요청을 전달함
- 백엔드는 배칭된 요청에서 제공된 입력을 사용하여 추론을 실행하여 요청된 결과를 생성함
- Triton은 백엔드 C API를 제공하여 커스텀 전/후처리, 새로운 딥러닝 프레임워크 등 새로운 기능으로 확장 가능함
- HTTP/REST, gRPC 또는 C API를 통해 사용 가능한 Model Management API으로 Triton이 서브하는 모델에 쿼리를 보내고 컨트롤을 할 수 있음
Ensemble Model vs. BLS(Business Logic Scripting)
- Ensemble Model (🔗)
- 모델간의 입출력 텐서를 연결하는 파이프라인
- 여러 모델을 포함하는 과정을 캡슐화하기 위해 사용됨
(Data Preprocessing → Inferene → data Postprocessing) - 중간 텐서들의 전송 오버헤드를 피하고, Triton에 전송될 요청 갯수를 최소화함
- BLS(Business Logic Scripting) (🔗)
- 커스텀 로직과 모델 실행의 결합
- 반복문, 조건문, 데이터 의존적인 제어흐름과 커스텀로직을 모델 파이프라인에 포함하여, 모델 실행과 결합할 수 있음
- Examples (🔗)
- Ensemble 방식
- 전처리, 추론, 후처리가 각각의 모델로 구성
이미지 입력
→ 얼굴 인식을 위한 전처리 (Python Backend)
→ 얼굴 인식 추론 (ONNX)
→ 후처리 (Python Backend)
→ 결과 출력
- 전처리, 추론, 후처리가 각각의 모델로 구성
- BLS 방식
- 전처리, 추론, 후처리가 하나의 파일로 처리되며, 인식 결과가 bls 파일에서 요청되고 얻어짐
이미지 입력
→ Business Logic Script (Python Backend): 전처리 → 얼굴 인식 추론 → 후처리
→ 결과 출력
- 전처리, 추론, 후처리가 하나의 파일로 처리되며, 인식 결과가 bls 파일에서 요청되고 얻어짐
- Ensemble 방식
'Study > LLM' 카테고리의 다른 글
Triton Inference Server에서 Gemma2 모델 서빙하기 (0) | 2024.12.17 |
---|---|
Triton Inference Server에서 HuggingFace 모델 서빙하기 (3) | 2024.10.27 |
LLM 서빙 프레임워크 정리 (0) | 2024.10.27 |